The model is using the following simple 2-layer CNN.
library(keras)
source('src/model.R') # run from app home directory
model <- keras_model_sequential() %>%
layer_conv_2d(filters=16, kernel_size=c(3,3), activation='relu') %>%
layer_max_pooling_2d(pool_size=c(2,2)) %>%
layer_conv_2d(filters=16, kernel_size=c(3,3), activation='relu') %>%
layer_max_pooling_2d(pool_size=c(2,2)) %>%
layer_flatten() %>%
layer_dense(units=128, activation='relu') %>%
layer_dense(units=10, activation='softmax')
train_model(model) # run with verbose=0
##
## Final epoch (plot to see history):
## loss: 0.01351
## accuracy: 0.9956
## val_loss: 0.05157
## val_accuracy: 0.9883