Найти в Дзене
Властелин машин

Нейросеть под рентгеном с TensorBoard

Сложная нейронная сеть работает как черный ящик, производящий результаты по ему одному известным законам. Вместе с тем в случае недостаточно эффективных результатов модель приходится настраивать и тогда на помощь приходит лучший инструмент для ее изучения - TensorBoard.
Он помогает визуализировать и исследовать процесс обучения нейронной сети посредством вывода промежуточных результатов,

Сложная нейронная сеть работает как черный ящик, производящий результаты по ему одному известным законам. Вместе с тем в случае недостаточно эффективных результатов модель приходится настраивать и тогда на помощь приходит лучший инструмент для ее изучения - TensorBoard.

Он помогает визуализировать и исследовать процесс обучения нейронной сети посредством вывода промежуточных результатов, различных метрик и картинок. В этой статье остановимся на простейшем способе использования TensorBoard - с использованием обратных вызовов в Keras.

В качестве примера рассмотрим работу одиночного нейрона, предсказывающего y по x, где x - последовательность действительных чисел, а y изменяется по закону 7x + 5 +noise (noise - набор случайных чисел со стандартным нормальным распределением). Ранее я подробно рассматривал процесс обучения такой сети с использованием низкоуровневых инструментов.

Теперь же зададим последовательную модель из одного нейрона высокоуровневыми средствами Keras, создадим экземпляр класса tf.keras.callbacks.TensorBoard и передадим его в метод fit модели.

Обратите внимание на параметр callbacks в методе fit, который и отвечает за сохранение параметров визуализации процесса обучения в папке logdir. Можно удостовериться, что модель нашла параметры для воссоздания y по x (аналогично ранее описанной модели предсказания):

-2

Для визуализации сохраненных параметров следует запустить TensorBoard (не забудьте активировать виртуальное окружение, если TensorFlow установлена там):

tensorboard --logdir имя_папки

, а затем обратиться к порту 6006 в браузере (впрочем при перезапуске номер порта может поменяться на следующий по порядку):

localhost:6006

На рисунке ниже отображен пошаговая ошибка в ходе процесса обучения на тренировочной и тестовой выборках:

-3