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 |