Учебное пособие по TensorBoard: визуализация графа TensorFlow [Пример]

Что такое Тензорборд?

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

Визуализация графа TensorFlow с использованием примера Tensorboard

Изображение ниже взято из графика TensorBoard, который вы создадите в этом руководстве по TensorBoard. Это основная панель:

Визуализация графа TensorFlow
Визуализация графа TensorFlow

На картинке ниже вы можете увидеть панель визуализации графа TensorBoard. Панель содержит различные вкладки, связанные с уровнем информации, которую вы добавляете при запуске модели.

Графики TensorBoard

Графики TensorBoard
  • Скаляры: показывать различную полезную информацию во время обучения модели.
  • Графики: Показать модель
  • Гистограмма: Отображение весов с помощью гистограммы.
  • Распределение: Отображение распределения веса
  • Projector Institute : Показать анализ главных компонентов и алгоритм T-SNE. Метод, используемый для уменьшения размерности.

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

Если посмотреть на график, то можно понять, как работает модель.

  1. Поместите данные в модель: добавьте в модель объем данных, равный размеру пакета, т. е. количеству потоков данных после каждой итерации.
  2. Передайте данные в тензоры
  3. Тренируй модель
  4. Отображение количества пакетов во время обучения. Сохраните модель на диск.

Визуализация графа TensorFlow с использованием примера Tensorboard

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

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

Чтобы дать вам представление о том, насколько полезным может быть график TensorBoard, посмотрите на картинку ниже:

Графики TensorBoard
График TensorBoard

Нейронная сеть решает, как соединить разные «нейроны» и сколько слоев, прежде чем модель сможет предсказать результат. После того как вы определили архитектуру, вам нужно не только обучить модель, но и метрики для расчета точности прогноза. Эта метрика называется функция потерь. Цель состоит в том, чтобы минимизировать функцию потерь. Другими словами, это означает, что модель допускает меньше ошибок. Все алгоритмы машинного обучения будут многократно повторять вычисления, пока потери не достигнут более ровной линии. Чтобы минимизировать эту функцию потерь, вам необходимо определить скорость обучения. Это скорость, с которой вы хотите, чтобы модель обучилась. Если вы установите слишком высокую скорость обучения, модель не успеет ничему научиться. Именно такой случай изображен на левой картинке. Линия движется вверх и вниз, а это означает, что модель предсказывает результат с чистой догадкой. На рисунке справа показано, что потери уменьшаются с течением итерации, пока кривая не выровняется, что означает, что модель нашла решение.

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

Как использовать TensorBoard?

В этом уроке вы узнаете, как открыть TensorBoard из терминала для MacOS и из командной строки TensorBoard для Windows.

Код будет объяснен в следующем руководстве, здесь основное внимание уделяется TensorBoard.

Сначала вам необходимо импортировать библиотеки, которые вы будете использовать во время обучения.

## Import the library
import tensorflow as tf
import numpy as np

Вы создаете данные. Это массив из 10000 строк и 5 столбцов.

X_train = (np.random.sample((10000,5)))
y_train =  (np.random.sample((10000,1)))
X_train.shape

Результат

(10000, 5)

Коды ниже преобразуют данные и создают модель.

Обратите внимание, что скорость обучения равна 0.1. Если вы измените эту скорость на более высокое значение, модель не найдет решения. Вот что произошло в левой части изображения выше.

В течение большей части Учебники по TensorFlowвы будете использовать оценщик TensorFlow. Это API TensorFlow, который содержит все математические вычисления.

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

В приведенном ниже примере TensorBoard вы сохраняете модель внутри рабочего каталога, т. е. там, где вы храните блокнот или файл Python. Внутри этого пути TensorFlow создаст папку с именем train с именем дочерней папки linreg.

feature_columns = [
      tf.feature_column.numeric_column('x', shape=X_train.shape[1:])]
DNN_reg = tf.estimator.DNNRegressor(feature_columns=feature_columns,
# Indicate where to store the log file    
     model_dir='train/linreg',    
     hidden_units=[500, 300],    
     optimizer=tf.train.ProximalAdagradOptimizer(      
          learning_rate=0.1,      
          l1_regularization_strength=0.001    
      )
)

Результат

INFO:tensorflow:Using default config.
INFO:tensorflow:Using config: {'_model_dir': 'train/linreg', '_tf_random_seed': None, '_save_summary_steps': 100, '_save_checkpoints_steps': None, '_save_checkpoints_secs': 600, '_session_config': None, '_keep_checkpoint_max': 5, '_keep_checkpoint_every_n_hours': 10000, '_log_step_count_steps': 100, '_train_distribute': None, '_service': None, '_cluster_spec': <tensorflow.python.training.server_lib.ClusterSpec object at 0x1818e63828>, '_task_type': 'worker', '_task_id': 0, '_global_id_in_cluster': 0, '_master': '', '_evaluation_master': '', '_is_chief': True, '_num_ps_replicas': 0, '_num_worker_replicas': 1}

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

# Train the estimator
train_input = tf.estimator.inputs.numpy_input_fn(    
     x={"x": X_train},    
     y=y_train, shuffle=False,num_epochs=None)
DNN_reg.train(train_input,steps=3000)

Результат

INFO:tensorflow:Calling model_fn.
INFO:tensorflow:Done calling model_fn.
INFO:tensorflow:Create CheckpointSaverHook.
INFO:tensorflow:Graph was finalized.
INFO:tensorflow:Running local_init_op.
INFO:tensorflow:Done running local_init_op.
INFO:tensorflow:Saving checkpoints for 1 into train/linreg/model.ckpt.
INFO:tensorflow:loss = 40.060104, step = 1
INFO:tensorflow:global_step/sec: 197.061
INFO:tensorflow:loss = 10.62989, step = 101 (0.508 sec)
INFO:tensorflow:global_step/sec: 172.487
INFO:tensorflow:loss = 11.255318, step = 201 (0.584 sec)
INFO:tensorflow:global_step/sec: 193.295
INFO:tensorflow:loss = 10.604872, step = 301 (0.513 sec)
INFO:tensorflow:global_step/sec: 175.378
INFO:tensorflow:loss = 10.090343, step = 401 (0.572 sec)
INFO:tensorflow:global_step/sec: 209.737
INFO:tensorflow:loss = 10.057928, step = 501 (0.476 sec)
INFO:tensorflow:global_step/sec: 171.646
INFO:tensorflow:loss = 10.460144, step = 601 (0.583 sec)
INFO:tensorflow:global_step/sec: 192.269
INFO:tensorflow:loss = 10.529617, step = 701 (0.519 sec)
INFO:tensorflow:global_step/sec: 198.264
INFO:tensorflow:loss = 9.100082, step = 801 (0.504 sec)
INFO:tensorflow:global_step/sec: 226.842
INFO:tensorflow:loss = 10.485607, step = 901 (0.441 sec)
INFO:tensorflow:global_step/sec: 152.929
INFO:tensorflow:loss = 10.052481, step = 1001 (0.655 sec)
INFO:tensorflow:global_step/sec: 166.745
INFO:tensorflow:loss = 11.320213, step = 1101 (0.600 sec)
INFO:tensorflow:global_step/sec: 161.854
INFO:tensorflow:loss = 9.603306, step = 1201 (0.619 sec)
INFO:tensorflow:global_step/sec: 179.074
INFO:tensorflow:loss = 11.110269, step = 1301 (0.556 sec)
INFO:tensorflow:global_step/sec: 202.776
INFO:tensorflow:loss = 11.929443, step = 1401 (0.494 sec)
INFO:tensorflow:global_step/sec: 144.161
INFO:tensorflow:loss = 11.951693, step = 1501 (0.694 sec)
INFO:tensorflow:global_step/sec: 154.144
INFO:tensorflow:loss = 8.620987, step = 1601 (0.649 sec)
INFO:tensorflow:global_step/sec: 151.094
INFO:tensorflow:loss = 10.666125, step = 1701 (0.663 sec)
INFO:tensorflow:global_step/sec: 193.644
INFO:tensorflow:loss = 11.0349865, step = 1801 (0.516 sec)
INFO:tensorflow:global_step/sec: 189.707
INFO:tensorflow:loss = 9.860596, step = 1901 (0.526 sec)
INFO:tensorflow:global_step/sec: 176.423
INFO:tensorflow:loss = 10.695, step = 2001 (0.567 sec)
INFO:tensorflow:global_step/sec: 213.066
INFO:tensorflow:loss = 10.426752, step = 2101 (0.471 sec)
INFO:tensorflow:global_step/sec: 220.975
INFO:tensorflow:loss = 10.594796, step = 2201 (0.452 sec)
INFO:tensorflow:global_step/sec: 219.289
INFO:tensorflow:loss = 10.4212265, step = 2301 (0.456 sec)
INFO:tensorflow:global_step/sec: 215.123
INFO:tensorflow:loss = 9.668612, step = 2401 (0.465 sec)
INFO:tensorflow:global_step/sec: 175.65
INFO:tensorflow:loss = 10.009649, step = 2501 (0.569 sec)
INFO:tensorflow:global_step/sec: 206.962
INFO:tensorflow:loss = 10.477722, step = 2601 (0.483 sec)
INFO:tensorflow:global_step/sec: 229.627
INFO:tensorflow:loss = 9.877638, step = 2701 (0.435 sec)
INFO:tensorflow:global_step/sec: 195.792
INFO:tensorflow:loss = 10.274586, step = 2801 (0.512 sec)
INFO:tensorflow:global_step/sec: 176.803
INFO:tensorflow:loss = 10.061047, step = 2901 (0.566 sec)
INFO:tensorflow:Saving checkpoints for 3000 into train/linreg/model.ckpt.
INFO:tensorflow:Loss for final step: 10.73032.

<tensorflow.python.estimator.canned.dnn.DNNRegressor at 0x1818e63630>

Для пользователя MacOS

Учебное пособие по TensorBoard для пользователей MacOS

Что касается Windows пользователь

Учебное пособие по TensorBoard для Windows Информация о пользователе

Эту информацию вы можете увидеть вPyTorch ТензорБорд.

Теперь, когда у вас записаны события журнала, вы можете открыть Tensorboard. Tensorboard Keras работает на порту 6006 (Jupyter работает через порт 8888). Вы можете использовать Терминал для пользователей MacOs или приглашение Anaconda для Windows пользователь.

Для пользователя MacOS

# Different for you
cd /Users/Guru99/tuto_TF
source activate hello-tf!

Блокнот хранится по пути /Users/Guru99/tuto_TF.

Что касается Windows пользователей

cd C:\Users\Admin\Anaconda3
activate hello-tf

Записная книжка хранится по пути C:\Users\Admin\Anaconda3.

Чтобы запустить Tensorboard, вы можете использовать этот код

Для пользователя MacOS

tensorboard --logdir=./train/linreg

Что касается Windows пользователей

tensorboard --logdir=.\train\linreg

Tensorboard находится по этому URL: http://localhost:6006.

Он также может находиться в следующем месте.

Используйте Тензорборд

Скопируйте и вставьте URL-адрес в свой любимый браузер. Вы должны увидеть это:

Обратите внимание, что мы научимся читать график в уроке, посвященном глубокое обучение.

Используйте Тензорборд

Если вы видите что-то вроде этого:

Используйте Тензорборд

Это означает, что Tensorboard не может найти файл журнала. Убедитесь, что вы указали правильный путь для компакт-диска, или дважды проверьте, создавалось ли событие журнала. Если нет, перезапустите код.

Если вы хотите закрыть TensorBoard, нажмите CTRL+C.

Совет: проверьте подсказку anaconda на предмет текущего рабочего каталога.

Используйте Тензорборд

Файл журнала должен быть создан в C:\Users\Admin.

Резюме

TensorBoard — отличный инструмент для визуализации вашей модели. Кроме того, во время обучения отображаются многие метрики, такие как потеря, точность или веса.

Чтобы активировать Tensorboard, вам необходимо указать путь к вашему файлу:

cd /Users/Guru99/tuto_TF

Активируйте среду Tensorflow

activate hello-tf

Запустить тензорную доску

tensorboard --logdir=.+ PATH