code: def create_mnist_model(hyper_params, input_shape=(H, W, 1), num_classes=NUM_CLASSES):
      '''
      Create simple convolutional model
      '''
      layers = [
          Conv2D(32, kernel_size=(3, 3), activation='relu', input_shape=input_shape),
          Conv2D(64, (3, 3), activation='relu'),
          MaxPooling2D(pool_size=(2, 2)),
          Flatten(),
          Dense(100, activation='relu'),
          Dense(num_classes, activation='softmax')
      ]
  
      model = Sequential(layers)
  
      if hyper_params['optimizer'] == 'Adam':
          optimizer = keras.optimizers.Adam(lr=hyper_params['learning_rate'])
      else:
          optimizer = keras.optimizers.SGD(lr=hyper_params['learning_rate'], momentum=0.9)
      model.compile(loss=keras.losses.categorical_crossentropy, optimizer=optimizer, metrics=['accuracy'])
  
      return modef create_mnist_model(hyper_params, input_shape=(H, W, 1), num_classes=NUM_CLASSES):
      '''
      Create simple convolutional model
      '''
      layers = [
          Conv2D(32, kernel_size=(3, 3), activation='relu', input_shape=input_shape),
          Conv2D(64, (3, 3), activation='relu'),
          MaxPooling2D(pool_size=(2, 2)),
          Flatten(),
          Dense(100, activation='relu'),
          Dense(num_classes, activation='softmax')
      ]
  
      model = Sequential(layers)
  
      if hyper_params['optimizer'] == 'Adam':
          optimizer = keras.optimizers.Adam(lr=hyper_params['learning_rate'])
      else:
          optimizer = keras.optimizers.SGD(lr=hyper_params['learning_rate'], momentum=0.9)
      model.compile(loss=keras.losses.categorical_crossentropy, optimizer=optimizer, metrics=['accuracy'])
  
      return model
docs: Create simple convolutional model