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