Нейронные сети простым языком. Часть 5. Основы Tensorflow.
В этой статье вы узнаете как программировать нейронные сети с помощью ML-библиотеки Tensorflow.
MNIST
Импортируем нужные модули: функция для моделирования сети, слои, функция для разделения данных, а так же функция для чтения файлов (.npz).
Первая и вторая строка отвечает за отключение лишних логов.
Загружаем тренировочный набор и разделяем данные на тренировочные и тестовые.
Далее инициализируем сеть и слои, указываем количество нейронов и функции активации.
Первый слой в сети (Flatten) преобразует формат изображений из 2d-массива (28 на 28 пикселей) в 1d-массив из 28 * 28 = 784 пикселей. У этого слоя нет параметров для изучения, он только переформатирует данные.
Следующие слои - Dense. Это полносвязные нейронные слои.
Каждый нейрон последнего слоя содержит оценку, которая указывает вероятность того, что текущее изображение принадлежит одному из 10 классов.
Компилируем сеть с заданными параметрами, а так же запускаем тренировку.
Если вам нужно указать количество батчей:
model.fit(x_train, y_train, epochs=n_epoch, batch_size=n_batch)
Для тестирования сети в момент тренировки:
model.fit(x_train, y_train, epochs=n_epoch, validation_data=(x_test, y_test))
Если вам требуется вычислить предсказание после тренировки:
Требуется импорт модуля NumPy argmax для полученияиндекса максимального элемента массива.
print(argmax(model.predict(var)))
MSC
Импортируем нужные модули.
Загружаем набор данных, а так же разделяем его на тренировочные и тестовые.
Инициализируем сеть и слои, указываем количество нейронов и функции активации.
LSTM – рекурентный слой, слой с долгой кратковременной памятью. return_sequences = True означает, что данные стоит прогонять несколько раз, что и называется подкреплением.
Компилируем сеть с заданными параметрами и запускаем тренировку.