Глубокое обучение с Керасом - Составление модели
Компиляция выполняется с использованием одного вызова метода, называемого 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с нулевым аргументом. Когда вы запустите код, вы увидите следующий результат -
Далее мы подготовим данные для подачи их в нашу сеть.