def model2(learning_rate=0.01, momentum=0.9, decay=1e-6): model = Sequential() model.add(Conv2D(32, kernel_size=(3, 3), input_shape=(28, 28, 1))) model.add( MaxPooling2D(pool_size=(2, 2), strides=None, padding='valid', data_format=None)) model.add(Conv2D(16, kernel_size=(2, 2))) model.add( MaxPooling2D(pool_size=(2, 2), strides=None, padding='valid', data_format=None)) model.add(Conv2D(16, kernel_size=(2, 2))) model.add(Flatten()) model.add(Dense(128, activation='relu')) model.add(Dropout(0.2)) model.add( Dense(num_classes, activation='softmax', kernel_regularizer=tf.keras.regularizers.l2(0.01))) model.custom_name = 'model2' sgd = tf.keras.optimizers.SGD(lr=learning_rate, momentum=momentum, decay=decay, nesterov=False) model.compile(optimizer=sgd, loss='categorical_crossentropy', metrics=['accuracy']) print("Compiled model {} with lr={} momentum={}, decay={}".format( model.custom_name, learning_rate, momentum, decay)) return model
def model3(learning_rate=0.01, momentum=0.9, decay=1e-6): model = Sequential() model.add( Dense(128, activation='relu', input_shape=(features_train.shape[1], ))) model.add(Dropout(0.2)) model.add(Dense(64, activation='relu')) model.add(Dense(num_classes, activation='softmax')) model.custom_name = "model3" sgd = tf.keras.optimizers.SGD(lr=learning_rate, momentum=momentum, decay=decay, nesterov=False) model.compile(optimizer=sgd, loss='categorical_crossentropy', metrics=['accuracy']) print("Compiled model {} with lr={} momentum={}, decay={}".format( model.custom_name, learning_rate, momentum, decay)) return model