function createModel() {
  const model = tf.sequential();
  model.add(tf.layers.batchNormalization({
    inputShape: [28, 28, 1]
  }));
  model.add(tf.layers.conv2d({
    filters: 64,
    kernelSize: 4,
    padding: 'same',
    activation: 'relu',
  }));
  model.add(tf.layers.maxPooling2d({poolSize: 2}));
  model.add(tf.layers.dropout({rate: 0.1}));
  model.add(tf.layers.conv2d({
    filters: 64,
    kernelSize: 4,
    activation: 'relu',
  }));
  model.add(tf.layers.maxPooling2d({poolSize: 2}));
  model.add(tf.layers.dropout({rate: 0.3}));
  model.add(tf.layers.flatten());
  model.add(tf.layers.dense({units: 256, activation: 'relu'}));
  model.add(tf.layers.dropout({rate: 0.5}));
  model.add(tf.layers.dense({units: 64, activation: 'relu'}));
  model.add(tf.layers.batchNormalization());
  model.add(tf.layers.dense({units: 10, activation: 'softmax'}));

  compileModel(model);
  return model;
}
Create a model for the Fashion-MNIST image classification problem.

Based on:
  https://github.com/cmasch/zalando-fashion-mnist/blob/master/Simple_Convolutional_Neural_Network_Fashion-MNIST.ipynb