Keras — это компактная, простая в изучении высокоуровневая библиотека Python, работающая поверх фреймворка TensorFlow. Это сделано с акцентом на понимание методов глубокого обучения, таких как создание слоев для нейронных сетей, поддерживающих концепции форм и математических деталей. Создание freamework может быть следующих двух типов —
- Последовательный API
- Функциональный API
Рассмотрим следующие восемь шагов для создания модели глубокого обучения в Керасе:
- Загрузка данных
- Предварительная обработка загруженных данных
- Определение модели
- Компиляция модели
- Подходит указанная модель
- Оцените это
- Сделайте необходимые прогнозы
- Сохранить модель
Мы будем использовать блокнот Jupyter для выполнения и отображения вывода, как показано ниже —
Шаг 1 — Загрузка данных и предварительная обработка загруженных данных осуществляются первыми для выполнения модели глубокого обучения.
import warnings warnings.filterwarnings('ignore') import numpy as np np.random.seed(123) # for reproducibility from keras.models import Sequential from keras.layers import Flatten, MaxPool2D, Conv2D, Dense, Reshape, Dropout from keras.utils import np_utils Using TensorFlow backend. from keras.datasets import mnist # Load pre-shuffled MNIST data into train and test sets (X_train, y_train), (X_test, y_test) = mnist.load_data() X_train = X_train.reshape(X_train.shape[0], 28, 28, 1) X_test = X_test.reshape(X_test.shape[0], 28, 28, 1) X_train = X_train.astype('float32') X_test = X_test.astype('float32') X_train /= 255 X_test /= 255 Y_train = np_utils.to_categorical(y_train, 10) Y_test = np_utils.to_categorical(y_test, 10)
Этот шаг может быть определен как «Импорт библиотек и модулей», что означает, что все библиотеки и модули импортируются как начальный шаг.
Шаг 2 — На этом шаге мы определим архитектуру модели —
model = Sequential() model.add(Conv2D(32, 3, 3, activation = 'relu', input_shape = (28,28,1))) model.add(Conv2D(32, 3, 3, activation = 'relu')) model.add(MaxPool2D(pool_size = (2,2))) model.add(Dropout(0.25)) model.add(Flatten()) model.add(Dense(128, activation = 'relu')) model.add(Dropout(0.5)) model.add(Dense(10, activation = 'softmax'))
Шаг 3 — Давайте теперь скомпилируем указанную модель —
model.compile(loss = 'categorical_crossentropy', optimizer = 'adam', metrics = ['accuracy'])
Шаг 4 — Теперь мы подгоним модель, используя данные обучения —
model.fit(X_train, Y_train, batch_size = 32, epochs = 10, verbose = 1)
Вывод созданных итераций выглядит следующим образом: