SHOW:
|
|
- or go back to the newest paste.
1 | - | #В конце прошлой темы вы обучили полносвязную сеть для решения задачи классификации одежды. Замените эту сеть на свёрточную со слоями: Conv2D + relu + Flatten + Dense. Примените в свёрточном слое 4 фильтра размером 3x3. |
1 | + | #Добавьте в сеть ещё один свёрточный слой с 4 фильтрами размером 3x3. Сделайте так, чтобы размер изображения после первого слоя не поменялся, а после второго — уменьшился в два раза. |
2 | - | #Обучать свёрточную сеть не нужно. Вызовите у модели функцию summary(): она напечатает на экране информацию об устройстве сети. |
2 | + | #Вызовите функцию summary() для просмотра устройства сети. Затем запустите обучение на одном объекте, чтобы убедиться в работоспособности кода (уже в прекоде). |
3 | ||
4 | from tensorflow.keras import Sequential | |
5 | from tensorflow.keras.layers import Conv2D, Flatten, Dense | |
6 | import matplotlib.pyplot as plt | |
7 | import numpy as np | |
8 | ||
9 | ||
10 | features_train = np.load('/datasets/fashion_mnist/train_features.npy') | |
11 | target_train = np.load('/datasets/fashion_mnist/train_target.npy') | |
12 | features_test = np.load('/datasets/fashion_mnist/test_features.npy') | |
13 | target_test = np.load('/datasets/fashion_mnist/test_target.npy') | |
14 | ||
15 | - | # Меняем размерности изображений и приводим числа к диапазону [0, 1]. |
15 | + | |
16 | - | # При изменении размера одну из размерностей можно указать равной -1, |
16 | + | |
17 | - | # чтобы она вычислялась автоматически |
17 | + | |
18 | model = Sequential() | |
19 | ||
20 | model.add(Conv2D(filters=4, kernel_size=(3, 3), activation='relu', padding='same', input_shape=(28, 28, 1))) | |
21 | model.add(Conv2D(filters=4, kernel_size=(3, 3), activation='relu', padding='same',strides = 2)) | |
22 | model.add(Flatten()) | |
23 | - | model.add(Conv2D(filters=4, kernel_size=(3, 3), activation='relu', input_shape=(28, 28, 1))) |
23 | + | model.add(Dense(units=10, activation='softmax')) |
24 | ||
25 | model.compile(loss='sparse_categorical_crossentropy', optimizer='sgd', metrics=['acc']) | |
26 | model.summary() | |
27 | model.fit(features_train, target_train, epochs=1, verbose=1, | |
28 | steps_per_epoch=1, batch_size=1) | |
29 | - | model.add(Dense(10, activation='softmax',input_dim=features_train.shape[1])) |
29 | + |