CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutSign UpSign In
amanchadha

Real-time collaboration for Jupyter Notebooks, Linux Terminals, LaTeX, VS Code, R IDE, and more,
all in one place. Commercial Alternative to JupyterHub.

GitHub Repository: amanchadha/coursera-deep-learning-specialization
Path: blob/master/C5 - Sequence Models/Week 2/Emojify/test_utils.py
Views: 4819
1
from termcolor import colored
2
3
from tensorflow.keras.layers import Input
4
from tensorflow.keras.layers import Conv2D
5
from tensorflow.keras.layers import MaxPooling2D
6
from tensorflow.keras.layers import Dropout
7
from tensorflow.keras.layers import Conv2DTranspose
8
from tensorflow.keras.layers import concatenate
9
from tensorflow.keras.layers import ZeroPadding2D
10
from tensorflow.keras.layers import Dense
11
from tensorflow.keras.layers import LSTM
12
from tensorflow.keras.layers import RepeatVector
13
14
15
# Compare the two inputs
16
def comparator(learner, instructor):
17
for a, b in zip(learner, instructor):
18
if tuple(a) != tuple(b):
19
print(colored("Test failed", attrs=['bold']),
20
"\n Expected value \n\n", colored(f"{b}", "green"),
21
"\n\n does not match the input value: \n\n",
22
colored(f"{a}", "red"))
23
raise AssertionError("Error in test")
24
print(colored("All tests passed!", "green"))
25
26
# extracts the description of a given model
27
def summary(model):
28
model.compile(optimizer='adam',
29
loss='categorical_crossentropy',
30
metrics=['accuracy'])
31
result = []
32
for layer in model.layers:
33
descriptors = [layer.__class__.__name__, layer.output_shape, layer.count_params()]
34
if (type(layer) == Conv2D):
35
descriptors.append(layer.padding)
36
descriptors.append(layer.activation.__name__)
37
descriptors.append(layer.kernel_initializer.__class__.__name__)
38
if (type(layer) == MaxPooling2D):
39
descriptors.append(layer.pool_size)
40
descriptors.append(layer.strides)
41
descriptors.append(layer.padding)
42
if (type(layer) == Dropout):
43
descriptors.append(layer.rate)
44
if (type(layer) == ZeroPadding2D):
45
descriptors.append(layer.padding)
46
if (type(layer) == Dense):
47
descriptors.append(layer.activation.__name__)
48
if (type(layer) == LSTM):
49
descriptors.append(layer.input_shape)
50
descriptors.append(layer.activation.__name__)
51
descriptors.append(layer.return_sequences)
52
if (type(layer) == RepeatVector):
53
descriptors.append(layer.n)
54
result.append(descriptors)
55
return result
56
57