Найти тему
Властелин машин

Что следует знать о сохранении значений в новой TensorFlow

Второе поколение библиотеки глубокого обучения TensorFlow принесло много сюрпризов, одним из которых является способ записи значений переменных для последующей визуализации. В этой статье я внесу ясность в данный вопрос.

Рассмотрим, как происходит запись промежуточных результатов вычисления последовательности чисел Фибоначчи (подробнее скрипт рассмотрен ранее) в старой версии TensorFlow. Для каждой переменной с помощью команды из модуля tf.summary (например, для чисел это tf.summary.scalar) создается узел, отслеживающий ее значение. Сохранение осуществляет объект записывающего устройства, который создается путем вызова tf.summary.FileWriter(имя_папки). Затем уже в рамках сессии извлекается значение отслеживающего узла и оно отправляется в записывающий объект методом add_summary (также принимает номер шага, на котором получено текущее значение переменной). Ниже представлен итоговый код скрипта:

-2
-3

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

-4

В данном случае потребуется создать объект пишущего устройства с указанием имени папки, а также добавить узлы, отслеживающие значения переменных (также принимают номер шага, этот функционал мигрировал из add_summary). Запись буферизованных данных инициируется методом flush.