Урок за TensorBoard: Визуализация на графика на TensorFlow [Пример]
Какво е TensorBoard?
TensorBoard е интерфейсът, използван за визуализиране на графиката и други инструменти за разбиране, отстраняване на грешки и оптимизиране на модела. Това е инструмент, който осигурява измервания и визуализации за работния процес на машинно обучение. Помага за проследяване на показатели като загуба и точност, визуализация на графика на модела, вграждане на проект в пространства с по-ниско измерение и др.
Визуализация на графика на TensorFlow с помощта на пример за Tensorboard
Изображението по-долу идва от графиката на TensorBoard, която ще генерирате в този урок за TensorBoard. Това е основният панел:

От снимката по-долу можете да видите панела за визуализация на графиката на TensorBoard. Панелът съдържа различни раздели, които са свързани с нивото на информация, което добавяте, когато изпълнявате модела.
- Скалари: Покажете различна полезна информация по време на обучението на модела
- Графики: Покажете модела
- Хистограма: Показване на тегла с хистограма
- Разпределение: Показване на разпределението на теглото
- Проекционен апарат: Показване на анализ на главни компоненти и 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 реда и XNUMX колони
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
Oбобщение
TensorBoard е страхотен инструмент за визуализиране на вашия модел. Освен това по време на обучението се показват много показатели, като загуба, точност или тегла.
За да активирате Tensorboard, трябва да зададете пътя на вашия файл:
cd /Users/Guru99/tuto_TF
Активирайте средата на Tensorflow
activate hello-tf
Стартирайте Tensorboard
tensorboard --logdir=.+ PATH







