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