Contents
Что такое Тензорборд?
TensorBoard — это интерфейс, используемый для визуализации графика и других инструментов для понимания, отладки и оптимизации модели. Это инструмент, который обеспечивает измерения и визуализацию рабочего процесса машинного обучения. Это помогает отслеживать такие показатели, как потери и точность, визуализацию графа модели, встраивание проекта в низкоразмерные пространства и т. д.
Визуализация графика TensorFlow на примере Tensorboard
Изображение ниже взято из графика TensorBoard, который вы создадите в этом учебнике по TensorBoard. Это основная панель:

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

- Скаляры : показ различной полезной информации во время обучения модели.
- Графики : Показать модель
- Гистограмма : отображение весов с помощью гистограммы.
- Распределение : отображение распределения веса
- Проектор : Показать анализ главных компонентов и алгоритм T-SNE. Техника, используемая для уменьшения размерности
В этом учебном пособии по TensorBoard вы обучите простую модель глубокого обучения. Вы узнаете, как это работает, в следующем уроке.
Если посмотреть на график, то можно понять, как работает модель.
- Поставьте данные в очередь в модель: поместите в модель количество данных, равное размеру пакета, т. е. число каналов данных после каждой итерации.
- Подача данных в тензоры
- Обучите модель
- Отображение количества партий во время обучения. Сохраните модель на диск.
Основная идея 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
Для пользователя Windows
Вы можете увидеть эту информацию в PyTorch TensorBoard.
Теперь, когда у вас записаны события журнала, вы можете открыть Tensorboard. Tensorboard Keras работает на порту 6006 (Jupyter работает на порту 8888). Вы можете использовать Terminal для пользователей MacOs или приглашение Anaconda для пользователей Windows.
Для пользователя MacOS
# Different for you cd /Users/Guru99/tuto_TF source activate hello-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
tensorboard --logdir=.+ PATH Статья является переводом guru99.com