View difference between Paste ID: YreAXbq0 and rMG42VDa
SHOW: | | - or go back to the newest paste.
1-
#Добавьте в сеть ещё один свёрточный слой с 4 фильтрами размером 3x3. Сделайте так, чтобы размер изображения после первого слоя не поменялся, а после второго — уменьшился в два раза.
1+
#В модель из предыдущего урока добавьте MaxPooling размером 2x2 после свёрточных слоёв. Вызовите функцию summary(), чтобы посмотреть на изменение количества параметров сети.
2-
#Вызовите функцию summary() для просмотра устройства сети. Затем запустите обучение на одном объекте, чтобы убедиться в работоспособности кода (уже в прекоде).
2+
#Убедитесь, что код рабочий. Для этого запустите обучение на одном объекте (уже в прекоде).
3
4
from tensorflow.keras import Sequential
5-
from tensorflow.keras.layers import Conv2D, Flatten, Dense
5+
from tensorflow.keras.layers import Conv2D, Flatten, Dense, MaxPooling2D
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
features_train = features_train.reshape(-1, 28, 28, 1) / 255.0
16
features_test = features_test.reshape(-1, 28, 28, 1) / 255.0
17
18
model = Sequential()
19
model.add(Conv2D(filters=4, kernel_size=(3, 3), padding='same',
20-
model.add(Conv2D(filters=4, kernel_size=(3, 3), activation='relu', padding='same', input_shape=(28, 28, 1)))
20+
                 activation="relu", input_shape=(28, 28, 1)))
21-
model.add(Conv2D(filters=4, kernel_size=(3, 3), activation='relu', padding='same',strides = 2))
21+
model.add(Conv2D(filters=4, kernel_size=(3, 3), strides=2, padding='same',
22
                 activation="relu"))
23
24
model.add(MaxPooling2D(pool_size=(2, 2), strides=None, padding='valid'))
25
26
model.add(Flatten())
27-
model.fit(features_train, target_train, epochs=1, verbose=1,
27+
28-
          steps_per_epoch=1, batch_size=1)
28+
29
model.compile(loss='sparse_categorical_crossentropy', optimizer='sgd', metrics=['acc'])
30
model.summary()
31
model.fit(features_train, target_train, epochs=1, verbose=1, steps_per_epoch=1, batch_size=1)
32