Підручник TensorBoard: Візуалізація графіка TensorFlow [Приклад]

Що таке TensorBoard?

TensorBoard це інтерфейс, який використовується для візуалізації графіка та інших інструментів для розуміння, налагодження та оптимізації моделі. Це інструмент, який забезпечує вимірювання та візуалізацію робочого процесу машинного навчання. Це допомагає відстежувати такі показники, як втрати та точність, візуалізація графа моделі, вбудовування проекту в простори нижчої розмірності тощо.

Візуалізація графіка 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

Нейронна мережа вирішує, як з’єднати різні «нейрони» та скільки рівнів, перш ніж модель зможе передбачити результат. Після того як ви визначили архітектуру, вам потрібно не лише навчити модель, але й метрику для обчислення точності прогнозу. Цей показник називається a функція втрат. Метою є мінімізація функції втрат. Іншими словами, це означає, що модель робить менше помилок. Усі алгоритми машинного навчання повторюватимуть обчислення багато разів, доки втрата не досягне більш рівної лінії. Щоб мінімізувати цю функцію втрат, вам потрібно визначити a швидкість навчання. Це швидкість, яку ви хочете, щоб модель навчила. Якщо встановити занадто високу швидкість навчання, модель не встигає нічого навчитися. Це випадок на лівому малюнку. Лінія рухається вгору та вниз, тобто модель передбачає чистий результат. На малюнку праворуч показано, що втрати зменшуються протягом ітерації, доки крива не стане гладкою, тобто модель знайшла рішення.

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. 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

Він також може бути розташований у наступному місці.

Використовуйте TensorBoard

Скопіюйте та вставте URL-адресу у свій улюблений браузер. Ви повинні побачити це:

Зауважте, що ми навчимося читати графік у підручнику, присвяченому глибоке навчання.

Використовуйте TensorBoard

Якщо ви бачите щось подібне:

Використовуйте TensorBoard

Це означає, що Tensorboard не може знайти файл журналу. Переконайтеся, що ви вказали компакт-диск на правильний шлях або ще раз перевірте, чи створювалася подія журналу. Якщо ні, повторно запустіть код.

Якщо ви хочете закрити TensorBoard, натисніть CTRL+C

Порада: перевірте запит анаконди на поточний робочий каталог,

Використовуйте TensorBoard

Файл журналу має бути створений у C:\Users\Admin

Підсумки

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

Щоб активувати Tensorboard, вам потрібно встановити шлях до вашого файлу:

cd /Users/Guru99/tuto_TF

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

activate hello-tf

Запустіть Tensorboard

tensorboard --logdir=.+ PATH