Урок за TensorBoard: Визуализация на графика на TensorFlow [Пример]

Какво е TensorBoard?

TensorBoard е интерфейсът, използван за визуализиране на графиката и други инструменти за разбиране, отстраняване на грешки и оптимизиране на модела. Това е инструмент, който осигурява измервания и визуализации за работния процес на машинно обучение. Помага за проследяване на показатели като загуба и точност, визуализация на графика на модела, вграждане на проект в пространства с по-ниско измерение и др.

Визуализация на графика на TensorFlow с помощта на пример за Tensorboard

Изображението по-долу идва от графиката на TensorBoard, която ще генерирате в този урок за TensorBoard. Това е основният панел:

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

От снимката по-долу можете да видите панела за визуализация на графиката на TensorBoard. Панелът съдържа различни раздели, които са свързани с нивото на информация, което добавяте, когато изпълнявате модела.

Графики на TensorBoard

Графики на TensorBoard
  • Скалари: Покажете различна полезна информация по време на обучението на модела
  • Графики: Покажете модела
  • Хистограма: Показване на тегла с хистограма
  • Разпределение: Показване на разпределението на теглото
  • Проекционен апарат: Показване на анализ на главни компоненти и 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 реда и 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

Урок за 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

Oбобщение

TensorBoard е страхотен инструмент за визуализиране на вашия модел. Освен това по време на обучението се показват много показатели, като загуба, точност или тегла.

За да активирате Tensorboard, трябва да зададете пътя на вашия файл:

cd /Users/Guru99/tuto_TF

Активирайте средата на Tensorflow

activate hello-tf

Стартирайте Tensorboard

tensorboard --logdir=.+ PATH

Обобщете тази публикация с: