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/C5 - Sequence Models/Week 2/Emojify/test_utils.py
Views: 4819
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 Dense10from tensorflow.keras.layers import LSTM11from tensorflow.keras.layers import RepeatVector121314# Compare the two inputs15def comparator(learner, 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__)47if (type(layer) == LSTM):48descriptors.append(layer.input_shape)49descriptors.append(layer.activation.__name__)50descriptors.append(layer.return_sequences)51if (type(layer) == RepeatVector):52descriptors.append(layer.n)53result.append(descriptors)54return result555657