Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- '''Постройте и обучите нейронную сеть на наборе данных с предметами одежды. Для этого создайте в коде три функции:
- загрузки обучающей выборки load_train(),
- создания модели create_model(),
- запуска модели train_model().
- Добейтесь того, чтобы значение accuracy на тестовой выборке было не меньше 85%.
- Отправьте ваш код в файле с расширением .py .
- Подсказка
- Приведите значения пикселей к диапазону [0, 1].
- Попробуйте:
- Построить полносвязную сеть с 2 или 3 слоями;
- Применить активацию ReLU.
- '''
- import numpy as np
- from tensorflow.keras import layers
- from tensorflow.keras.layers import Conv2D, Flatten, Dense, AvgPool2D, MaxPooling2D
- from tensorflow.keras.models import Sequential
- from tensorflow.keras.optimizers import Adam
- from tensorflow.keras.datasets import fashion_mnist
- def load_train(path):
- features_train = np.load(path + 'train_features.npy')
- target_train = np.load(path + 'train_target.npy')
- features_train = features_train.reshape(features_train.shape[0], 28 * 28) / 255.
- return features_train, target_train
- def create_model(input_shape):
- model = Sequential()
- model.add(Dense(units=500, input_shape=input_shape, activation="relu"))
- model.add(Dense(units=300, activation="relu"))
- model.add(Dense(units=10, activation='softmax'))
- return model
- def train_model(model, train_data, test_data, batch_size=48, epochs=50,
- steps_per_epoch=None, validation_steps=None):
- optimizer = Adam(lr=0.01)
- model.compile(optimizer=optimizer, loss='sparse_categorical_crossentropy',
- metrics=['acc'])
- features_train, target_train = train_data
- features_test, target_test = test_data
- model.fit(features_train, target_train,
- validation_data=(features_test, target_test),
- batch_size=batch_size, epochs=epochs,
- steps_per_epoch=steps_per_epoch,
- validation_steps=validation_steps,
- verbose=2, shuffle=True)
- return model
- '''Epoch 50/50
- 60000/60000 - 4s - loss: 0.3248 - acc: 0.8857 - val_loss: 0.4960 - val_acc: 0.8511
- 10000/10000 - 1s - loss: 0.4960 - acc: 0.8511
- '''
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement