Постройте и обучите нейронную сеть. Начните с простого — создайте модель логистической регрессии с десятью классами в Keras.

Вам понадобится:

  • Функция активации 'softmax';
  • Функция потерь 'sparse_categorical_crossentropy' (англ. «разрежённая категориальная кросс-энтропия»).

Слово sparse говорит о способе кодирования ответов. В задаче требуется просто номер класса, поэтому выбор пал на эту функцию потерь.

Когда ответы кодируются One-Hot-Encoding и классу 9 соответствует целый вектор [0, 0, 0, 0, 0, 0, 0, 0, 1], применяют categorical_crossentropy().

Обучите сеть на одной эпохе. Напечатайте прогресс обучения и значения точности на обучающей и тестовой выборках.

Подсказка

Допишите код:

model = keras.models.Sequential()
model.add(keras.layers.Dense(# < напишите код здесь >)
model.compile(loss='sparse_categorical_crossentropy', # < напишите код здесь >)
model.fit(features_train, target_train, epochs=1, verbose=2, validation_data=(features_test, target_test))

from tensorflow import keras
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(features_train.shape[0], 28 * 28)
features_test = features_test.reshape(features_test.shape[0], 28 * 28)

model = keras.models.Sequential()
model.add(keras.layers.Dense(units=10, activation='softmax', input_dim=features_train.shape[1]))
model.compile(loss='sparse_categorical_crossentropy', optimizer='sgd', metrics=['acc'])

model.fit(features_train, target_train, epochs=1, verbose=2, validation_data=(features_test, target_test)) 

Результат