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/C4 - Convolutional Neural Networks/Week 2/Transfer Learning with MobileNet/test_utils.py
Views: 4818
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
12
13
# Compare the two inputs
14
def comparator(learner, instructor):
15
for a, b in zip(learner, instructor):
16
if tuple(a) != tuple(b):
17
print(colored("Test failed", attrs=['bold']),
18
"\n Expected value \n\n", colored(f"{b}", "green"),
19
"\n\n does not match the input value: \n\n",
20
colored(f"{a}", "red"))
21
raise AssertionError("Error in test")
22
print(colored("All tests passed!", "green"))
23
24
# extracts the description of a given model
25
def summary(model):
26
model.compile(optimizer='adam',
27
loss='categorical_crossentropy',
28
metrics=['accuracy'])
29
result = []
30
for layer in model.layers:
31
descriptors = [layer.__class__.__name__, layer.output_shape, layer.count_params()]
32
if (type(layer) == Conv2D):
33
descriptors.append(layer.padding)
34
descriptors.append(layer.activation.__name__)
35
descriptors.append(layer.kernel_initializer.__class__.__name__)
36
if (type(layer) == MaxPooling2D):
37
descriptors.append(layer.pool_size)
38
descriptors.append(layer.strides)
39
descriptors.append(layer.padding)
40
if (type(layer) == Dropout):
41
descriptors.append(layer.rate)
42
if (type(layer) == ZeroPadding2D):
43
descriptors.append(layer.padding)
44
if (type(layer) == Dense):
45
descriptors.append(layer.activation.__name__)
46
result.append(descriptors)
47
return result
48