Dropout, Activation, Flatten from keras.layers import Convolution2D, MaxPooling2D def baseline_model(): model = Sequential() model.add(Conv2D(30, (5, 5), padding='valid', input_shape=(28,28,1), activation='relu')) model.add(MaxPooling2D(pool_size=(2, 2))) model.add(Conv2D(15, (3, 3), activation='relu')) model.add(MaxPooling2D(pool_size=(2, 2))) model.add(Dropout(0.2)) model.add(Flatten()) model.add(Dense(128, activation='relu')) model.add(Dense(50, activation='relu')) model.add(Dense(num_classes, activation='softmax')) # softmax # Compile model model.compile(loss='categorical_crossentropy', optimizer='adam', metrics=['accuracy']) return model