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 3/Machine Translation/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
16
17
# Compare the two inputs
18
def comparator(learner, instructor):
19
layer = 0
20
for a, b in zip(learner, instructor):
21
if tuple(a) != tuple(b):
22
print(colored("Test failed", attrs=['bold']),
23
f"at layer: {layer}",
24
"\n Expected value \n\n", colored(f"{b}", "green"),
25
"\n\n does not match the input value: \n\n",
26
colored(f"{a}", "red"))
27
raise AssertionError("Error in test")
28
layer += 1
29
print(colored("All tests passed!", "green"))
30
31
# extracts the description of a given model
32
def summary(model):
33
model.compile(optimizer='adam',
34
loss='categorical_crossentropy',
35
metrics=['accuracy'])
36
result = []
37
for layer in model.layers:
38
descriptors = [layer.__class__.__name__, layer.output_shape, layer.count_params()]
39
if (type(layer) == Conv2D):
40
descriptors.append(layer.padding)
41
descriptors.append(layer.activation.__name__)
42
descriptors.append(layer.kernel_initializer.__class__.__name__)
43
if (type(layer) == MaxPooling2D):
44
descriptors.append(layer.pool_size)
45
descriptors.append(layer.strides)
46
descriptors.append(layer.padding)
47
if (type(layer) == Dropout):
48
descriptors.append(layer.rate)
49
if (type(layer) == ZeroPadding2D):
50
descriptors.append(layer.padding)
51
if (type(layer) == Dense):
52
descriptors.append(layer.activation.__name__)
53
if (type(layer) == LSTM):
54
descriptors.append(layer.input_shape)
55
descriptors.append(layer.activation.__name__)
56
if (type(layer) == RepeatVector):
57
descriptors.append(layer.n)
58
result.append(descriptors)
59
return result
60