Підручник TensorBoard: Візуалізація графіка TensorFlow [Приклад]
Що таке TensorBoard?
TensorBoard це інтерфейс, який використовується для візуалізації графіка та інших інструментів для розуміння, налагодження та оптимізації моделі. Це інструмент, який забезпечує вимірювання та візуалізацію робочого процесу машинного навчання. Це допомагає відстежувати такі показники, як втрати та точність, візуалізація графа моделі, вбудовування проекту в простори нижчої розмірності тощо.
Візуалізація графіка TensorFlow за допомогою прикладу Tensorboard
Зображення нижче взято з графіка TensorBoard, який ви створите в цьому підручнику TensorBoard. Це основна панель:

На малюнку нижче ви можете побачити панель візуалізації графіка TensorBoard. Панель містить різні вкладки, які пов’язані з рівнем інформації, яку ви додаєте під час запуску моделі.
- Скалярів: Показувати різну корисну інформацію під час навчання моделі
- діаграми: Показати модель
- Гістограма: відображення ваги з гістограмою
- розподіл: відображення розподілу ваги
- Projector Institute : Показати аналіз головних компонентів і алгоритм T-SNE. Методика зменшення розмірності
Під час цього підручника 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
для 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
Він також може бути розташований у наступному місці.
Скопіюйте та вставте URL-адресу у свій улюблений браузер. Ви повинні побачити це:
Зауважте, що ми навчимося читати графік у підручнику, присвяченому глибоке навчання.
Якщо ви бачите щось подібне:
Це означає, що Tensorboard не може знайти файл журналу. Переконайтеся, що ви вказали компакт-диск на правильний шлях або ще раз перевірте, чи створювалася подія журналу. Якщо ні, повторно запустіть код.
Якщо ви хочете закрити TensorBoard, натисніть CTRL+C
Порада: перевірте запит анаконди на поточний робочий каталог,
Файл журналу має бути створений у C:\Users\Admin
Підсумки
TensorBoard — чудовий інструмент для візуалізації вашої моделі. Крім того, багато метрик відображаються під час навчання, такі як втрати, точність або ваги.
Щоб активувати Tensorboard, вам потрібно встановити шлях до вашого файлу:
cd /Users/Guru99/tuto_TF
Активуйте середовище Tensorflow
activate hello-tf
Запустіть Tensorboard
tensorboard --logdir=.+ PATH