Добавьте в сеть ещё один свёрточный слой с 4 фильтрами размером 3x3. Сделайте так, чтобы размер изображения после первого слоя не поменялся, а после второго — уменьшился в два раза.

Вызовите функцию summary() для просмотра устройства сети. Затем запустите обучение на одном объекте, чтобы убедиться в работоспособности кода (уже в прекоде).

Подсказка

Измените тип паддинга с 'valid' на 'same': padding='same'.

from tensorflow.keras import Sequential
from tensorflow.keras.layers import Conv2D, Flatten, Dense
import matplotlib.pyplot as plt
import numpy as np


features_train = np.load('/datasets/fashion_mnist/train_features.npy')
target_train = np.load('/datasets/fashion_mnist/train_target.npy')
features_test = np.load('/datasets/fashion_mnist/test_features.npy')
target_test = np.load('/datasets/fashion_mnist/test_target.npy')

features_train = features_train.reshape(-1, 28, 28, 1) / 255.0
features_test = features_test.reshape(-1, 28, 28, 1) / 255.0

model = Sequential()

# < напишите код здесь >
model.add(Conv2D(filters=4, kernel_size=(3, 3), activation='relu', padding='same', input_shape=(28, 28, 1)))
model.add(Conv2D(filters=4, kernel_size=(3, 3), activation='relu', padding='same', strides = 2))
model.add(Flatten())
model.add(Dense(units=10, activation='softmax'))

model.compile(loss='sparse_categorical_crossentropy', optimizer='sgd', metrics=['acc'])
model.summary()
model.fit(features_train, target_train, epochs=1, verbose=1, steps_per_epoch=1, batch_size=1)

Результат