Учебники

5) Tensorboard Tutorial

Что такое TensorBoard?

Tensorboard — это интерфейс, используемый для визуализации графика и других инструментов для понимания, отладки и оптимизации модели.

пример

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

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

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

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

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

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

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

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

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

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

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

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

В этом руководстве вы узнаете, как открыть TensorBoard из терминала для MacOS и из командной строки для 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. Это TensorFlow API, который содержит все математические вычисления.

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

В приведенном ниже примере вы храните модель в рабочем каталоге, то есть там, где вы храните записную книжку или файл 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 записывает информацию в каталог моделей.

# 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

Для пользователей Windows

Вы можете увидеть эту информацию в TensorBoard.

Теперь, когда у вас есть записанные события журнала, вы можете открыть Tensorboard. Tensorboad работает на порту 6006 (Jupyter работает на порту 8888). Вы можете использовать пользователя Terminal for 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

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

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

Резюме:

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

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

cd /Users/Guru99/tuto_TF			

Активировать среду Tensorflow

activate hello-tf			

Запустить Тензорборд

tensorboard --logdir=.+ PATH