Обзор TensorBoard

TensorBoard - это структура визуализации тензорного потока для понимания и проверки потока алгоритма машинного обучения.

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

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

Установка

Чтобы установить тензорную доску с помощью pip, выполните следующую команду:

pip install tensorboard

Кроме того, он может быть установлен с помощью команды conda,

Conda install tensorboard

использование

Использование тензорной доски с моделью Keras:

Keras - это библиотека с открытым исходным кодом для моделей глубокого обучения. Это высокоуровневая библиотека, которую можно запустить поверх tenorflow, theano и т. Д.

Чтобы установить tenorflow и библиотеку Keras с помощью pip:

pip install tensorflow pip install Keras

Давайте рассмотрим простой пример классификации с использованием набора данных MNIST. MNIST - это английский набор цифровых данных, содержащий изображения чисел от 0 до 9. Он доступен с библиотекой Keras.

  • Импортируйте тензор потока библиотеки, так как мы будем использовать Keras с бэкэндом тензор потока.

import tensorflow as tf

  • Сначала загрузите набор данных MNIST из Keras в набор обучающих и тестовых данных.

mnist = tf.keras.datasets.mnist

  • Последовательная модель создается с использованием,

tf.keras.models.Sequential

  • Для обучения используется модель Model.fit (). Журналы могут быть созданы и сохранены с использованием,

tf.keras.callback.TensorBoard

  • Чтобы включить вычисление гистограммы,

histogram_freq=1.

По умолчанию он выключен.

Код для вышеупомянутой классификации набора данных MNIST выглядит следующим образом:

# Simple NN to classify handwritten digits from MNIST dataset
import tensorflow as tf
import datetime
mnist = tf.keras.datasets.mnist
(x_train, y_train), (x_test, y_test) = mnist.load_data() x_train, x_test = x_train / 255.0, x_test / 255.0
def create_model(): return tf.keras.models.Sequential(( tf.keras.layers.Flatten(input_shape=(28, 28)), tf.keras.layers.Dense(512, activation='relu'), tf.keras.layers.Dropout(0.2),
tf.keras.layers.Dense(10, activation='softmax')
))
model = create_model() model.compile(optimizer='adam',
loss='sparse_categorical_crossentropy',
metrics=('accuracy'))
log_dir="logs/fit/" + datetime.datetime.now().strftime("%Y%m%d-%H%M%S")
tensorboard_callback = tf.keras.callbacks.TensorBoard(log_dir=log_dir, histogram_freq=1)
model.fit(x=x_train, y=y_train, epochs=5, validation_data=(x_test, y_test),
callbacks=(tensorboard_callback))

Чтобы запустить тензорную доску на локальном сервере, перейдите в каталог, где установлен тензорный поток, а затем выполните следующую команду:

tensorboard --logdir=/path/to/logs/files

  • Скаляры

Скаляры показывают изменения с каждой эпохой. На приведенном выше рисунке показан график точности и потерь после каждой эпохи. Epoch_acc и epoch_loss - это точность обучения и потеря обучения. Тогда как epoch_val_acc и epoch_val_loss - это точность и потеря данных проверки.

Более светлые оранжевые линии показывают точную точность или потерю, а более темные - сглаженные значения. Сглаживание помогает визуализировать общую тенденцию в данных.

  • диаграммы

Страница График помогает вам визуализировать график вашей модели. Это поможет вам проверить, правильно ли построена модель или нет.

Чтобы визуализировать график, нам нужно создать сеанс, а затем объект TensorFLow FileWriter. Чтобы создать объект записи, нам нужно передать путь, где хранится сводка, и sess.graph в качестве аргумента.

writer = tf.summary.FileWriter(STORE_PATH, sess.graph)

tf.placeholder () и tf.Variable () используются для заполнителей и переменных в коде тензорного потока.

Это показывает графическую визуализацию модели, которую мы построили. Все прямоугольники со скругленными углами являются пространствами имен. А овалы показывают математические операции.

Константы показаны в виде маленьких кружков. Чтобы уменьшить беспорядок в графике, тензорная доска делает некоторые упрощения, используя пунктирные овалы или скругленные прямоугольники с пунктирными линиями. Это узлы, которые связаны со многими другими узлами или со всеми узлами. Таким образом, они хранятся в виде точек на графике, а их детали можно увидеть в правом верхнем углу. В верхнем правом углу указана связь с градиентами, градиентными спусками или узлами инициализации.

Чтобы узнать количество тензоров, входящих и выходящих из каждого узла, вы можете увидеть ребра на графике. Ребра графа описывают количество тензоров, протекающих в графе. Это помогает идентифицировать входные и выходные размеры каждого узла. Это помогает в отладке любой проблемы.

  • Распределения и гистограммы

Это показывает тензорные распределения во времени, а также мы можем видеть веса и смещения. Это показывает прогресс входов и выходов с течением времени для каждой эпохи. Есть два варианта просмотра:

Смещение и наложение.

Смещение гистограммы будет следующим:

Вид наложения гистограммы:

Страница Распределение показывает статистические распределения. График показывает среднее значение и стандартные отклонения.

Преимущества

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

Вывод - TensorBoard

TensorBoards предоставляет визуализацию для модели глубокого заработка, которая обучается и помогает в их понимании. Может использоваться как с TensorFlow, так и с Keras. Он в основном обеспечивает визуализацию поведения скаляров, метрик с помощью гистограмм и графа модели в целом.

Рекомендуемые статьи

Это руководство по TensorBoard. Здесь мы обсуждаем установку и использование Tensboard, используя его с моделью Keras с преимуществами. Вы также можете взглянуть на следующие статьи, чтобы узнать больше -

  1. Введение в Tensorflow
  2. Как установить TensorFlow
  3. Что такое TensorFlow?
  4. TensorFlow Playground
  5. Основы тензорного потока