Real-time collaboration for Jupyter Notebooks, Linux Terminals, LaTeX, VS Code, R IDE, and more,
all in one place. Commercial Alternative to JupyterHub.
Real-time collaboration for Jupyter Notebooks, Linux Terminals, LaTeX, VS Code, R IDE, and more,
all in one place. Commercial Alternative to JupyterHub.
Path: blob/master/C4 - Convolutional Neural Networks/Week 2/ResNets/test_utils.py
Views: 4818
from termcolor import colored12from tensorflow.keras.layers import Input3from tensorflow.keras.layers import Conv2D4from tensorflow.keras.layers import MaxPooling2D5from tensorflow.keras.layers import Dropout6from tensorflow.keras.layers import Conv2DTranspose7from tensorflow.keras.layers import concatenate8from tensorflow.keras.layers import ZeroPadding2D9from tensorflow.keras.layers import Dense101112# Compare the two inputs13def comparator(learner, instructor):14if len(learner) != len(instructor):15raise AssertionError(f'Models does not have the same number of layers {len(learner)} != {len(instructor)}')16for a, b in zip(learner, instructor):17if tuple(a) != tuple(b):18print(colored("Test failed", attrs=['bold']),19"\n Expected value \n\n", colored(f"{b}", "green"),20"\n\n does not match the input value: \n\n",21colored(f"{a}", "red"))22raise AssertionError("Error in test")23print(colored("All tests passed!", "green"))2425# extracts the description of a given model26def summary(model):27model.compile(optimizer='adam',28loss='categorical_crossentropy',29metrics=['accuracy'])30result = []31for layer in model.layers:32descriptors = [layer.__class__.__name__, layer.output_shape, layer.count_params()]33if (type(layer) == Conv2D):34descriptors.append(layer.padding)35descriptors.append(layer.activation.__name__)36descriptors.append(layer.kernel_initializer.__class__.__name__)37if (type(layer) == MaxPooling2D):38descriptors.append(layer.pool_size)39descriptors.append(layer.strides)40descriptors.append(layer.padding)41if (type(layer) == Dropout):42descriptors.append(layer.rate)43if (type(layer) == ZeroPadding2D):44descriptors.append(layer.padding)45if (type(layer) == Dense):46descriptors.append(layer.activation.__name__)47result.append(descriptors)48return result4950