40. Code Example in Keras
https://github.com/mas-dse-greina/dse999/blob/master/chapter_19/MNIST%20CNN%20Large%20Notebook.ipynb
# define the convolutional model
def conv_model():
model = Sequential()
# input_shape tells Keras/Tensorflow to
# expect a tensor input of 1 x 28 x 28
model.add(Conv2D(30, (5, 5), input_shape=(1, 28, 28), 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'))
# Compile model
model.compile(loss='categorical_crossentropy',
optimizer='adam', metrics=['accuracy'])
return model