Глубокое обучение с Керасом - Составление модели

Компиляция выполняется с использованием одного вызова метода, называемого compile.

model.compile(loss='categorical_crossentropy', metrics=['accuracy'], optimizer='adam')

В compileМетод требует нескольких параметров. Параметр потерь указывается иметь тип'categorical_crossentropy'. Параметр метрики установлен на'accuracy' и, наконец, мы используем adamоптимизатор для обучения сети. Результат на этом этапе показан ниже -

Теперь мы готовы передать данные в нашу сеть.

Загрузка данных

Как было сказано ранее, мы будем использовать mnistнабор данных предоставлен Керасом. Когда мы загружаем данные в нашу систему, мы разделим их на обучающие и тестовые данные. Данные загружаются путем вызоваload_data метод следующим образом -

(X_train, y_train), (X_test, y_test) = mnist.load_data()

Результат на этом этапе выглядит следующим образом -

Теперь мы изучим структуру загруженного набора данных.

Предоставляемые нам данные представляют собой графические изображения размером 28 x 28 пикселей, каждое из которых содержит одну цифру от 0 до 9. Мы отобразим первые десять изображений на консоли. Код для этого приведен ниже -

# printing first 10 images
for i in range(10):

plot.subplot(3,5,i+1)
plot.tight_layout()
plot.imshow(X_train[i], cmap='gray', interpolation='none')
plot.title("Digit: {}".format(y_train[i]))
plot.xticks([])
plot.yticks([])

В итеративном цикле из 10 отсчетов мы создаем подзаголовок на каждой итерации и показываем изображение из X_trainвектор в нем. Назовем каждое изображение из соответствующегоy_trainвектор. Обратите внимание, чтоy_train вектор содержит фактические значения для соответствующего изображения в X_trainвектор. Мы удаляем маркировку осей x и y, вызывая два методаxticks а также yticksс нулевым аргументом. Когда вы запустите код, вы увидите следующий результат -

Далее мы подготовим данные для подачи их в нашу сеть.