input_shape = (224, 224, 1)
model = Sequential()
model.add(Conv2D(16, kernel_size=(5, 5), strides=2, padding='same', activation='relu', input_shape=input_shape))
model.add(MaxPooling2D(pool_size=(2, 2)))
model.add(Conv2D(32, kernel_size=(5, 5), strides=1, padding='same', activation='relu'))
model.add(MaxPooling2D(pool_size=(4, 4)))
model.add(Conv2D(64, kernel_size=(5, 5), strides=1, padding='same', activation='relu'))
model.add(MaxPooling2D(pool_size=(4, 4)))
model.add(Flatten())
model.add(Dense(1024, activation='relu'))
model.add(Dense(activation='linear'))
model.compile(loss='mse',
optimizer='adam')
model.summary()