Tutorial TensorBoard: Vizualizarea graficului TensorFlow [Exemplu]

Ce este TensorBoard?

TensorBoard este interfaศ›a folositฤƒ pentru a vizualiza graficul ศ™i alte instrumente pentru a รฎnศ›elege, depana ศ™i optimiza modelul. Este un instrument care oferฤƒ mฤƒsurฤƒtori ศ™i vizualizฤƒri pentru fluxul de lucru de รฎnvฤƒศ›are automatฤƒ. Ajutฤƒ la urmฤƒrirea unor valori precum pierderea ศ™i acurateศ›ea, vizualizarea graficului modelului, รฎncorporarea proiectelor รฎn spaศ›ii de dimensiuni inferioare etc.

Vizualizarea graficului TensorFlow utilizรขnd Exemplul Tensorboard

Imaginea de mai jos provine din graficul TensorBoard pe care รฎl veศ›i genera รฎn acest tutorial TensorBoard. Este panoul principal:

Vizualizare graficฤƒ TensorFlow
Vizualizare graficฤƒ TensorFlow

Din imaginea de mai jos, puteศ›i vedea panoul de vizualizare graficฤƒ TensorBoard. Panoul conศ›ine diferite file, care sunt legate de nivelul de informaศ›ii pe care รฎl adฤƒugaศ›i atunci cรขnd rulaศ›i modelul.

Grafice TensorBoard

Grafice TensorBoard
  • Scalari: Afiศ™aศ›i diferite informaศ›ii utile รฎn timpul antrenamentului de model
  • graficele: Aratฤƒ modelul
  • Histogramฤƒ: Afiศ™eazฤƒ greutฤƒศ›ile cu o histogramฤƒ
  • Distribuire: Afiศ™eazฤƒ distribuศ›ia greutฤƒศ›ii
  • Proiector: Afiศ™aศ›i analiza componentelor principale ศ™i algoritmul T-SNE. Tehnica utilizatฤƒ pentru reducerea dimensionalitฤƒศ›ii

รŽn timpul acestui tutorial TensorBoard, veศ›i antrena un model simplu de รฎnvฤƒศ›are profundฤƒ. Veศ›i afla cum funcศ›ioneazฤƒ รฎntr-un tutorial viitor.

Dacฤƒ te uiศ›i la grafic, poศ›i รฎnศ›elege cum funcศ›ioneazฤƒ modelul.

  1. Puneศ›i รฎn coadฤƒ datele รฎn model: trimiteศ›i o cantitate de date egalฤƒ cu dimensiunea lotului cฤƒtre model, adicฤƒ numฤƒrul de flux de date dupฤƒ fiecare iteraศ›ie
  2. Transmite datele Tensorilor
  3. Antreneazฤƒ modelul
  4. Afiศ™aศ›i numฤƒrul de loturi รฎn timpul antrenamentului. Salvaศ›i modelul pe disc.

Vizualizarea graficului TensorFlow utilizรขnd Exemplul Tensorboard

Ideea de bazฤƒ din spatele tensorboard-ului este cฤƒ reศ›eaua neuronalฤƒ poate fi ceva cunoscut sub numele de cutie neagrฤƒ ศ™i avem nevoie de un instrument pentru a inspecta ceea ce se aflฤƒ รฎn interiorul acestei cutii. Vฤƒ puteศ›i imagina placa tensoricฤƒ ca o lanternฤƒ pentru a รฎncepe scufundarea รฎn reศ›eaua neuronalฤƒ.

Ajutฤƒ la รฎnศ›elegerea dependenศ›elor dintre operaศ›iuni, modul รฎn care sunt calculate greutฤƒศ›ile, afiศ™eazฤƒ funcศ›ia de pierdere ศ™i multe alte informaศ›ii utile. Cรขnd aduceศ›i toate aceste informaศ›ii รฎmpreunฤƒ, aveศ›i un instrument grozav pentru a depana ศ™i a gฤƒsi cum sฤƒ รฎmbunฤƒtฤƒศ›iศ›i modelul.

Pentru a vฤƒ face o idee despre cรขt de util poate fi graficul TensorBoard, priviศ›i imaginea de mai jos:

Grafice TensorBoard
Graficul TensorBoard

O reศ›ea neuronalฤƒ decide cum sฤƒ conecteze diferiศ›ii โ€žneuroniโ€ ศ™i cรขte straturi รฎnainte ca modelul sฤƒ poatฤƒ prezice un rezultat. Odatฤƒ ce aศ›i definit arhitectura, nu trebuie doar sฤƒ antrenaศ›i modelul, ci ศ™i o metricฤƒ pentru a calcula acurateศ›ea predicศ›iei. Aceastฤƒ mฤƒsurฤƒtoare este denumitฤƒ a funcศ›ia de pierdere. Obiectivul este de a minimiza funcศ›ia de pierdere. Cu alte cuvinte, รฎnseamnฤƒ cฤƒ modelul face mai puศ›ine erori. Toศ›i algoritmii de รฎnvฤƒศ›are automatฤƒ vor repeta de multe ori calculele pรขnฤƒ cรขnd pierderea ajunge la o linie mai platฤƒ. Pentru a minimiza aceastฤƒ funcศ›ie de pierdere, trebuie sฤƒ definiศ›i a rata de รฎnvฤƒศ›are. Este viteza pe care doriศ›i sฤƒ o รฎnveศ›e modelul. Dacฤƒ setaศ›i o ratฤƒ de รฎnvฤƒศ›are prea mare, modelul nu are timp sฤƒ รฎnveศ›e nimic. Acesta este cazul din imaginea din stรขnga. Linia se miศ™cฤƒ รฎn sus ศ™i รฎn jos, ceea ce รฎnseamnฤƒ cฤƒ modelul prezice cu o ghicire purฤƒ rezultatul. Imaginea din dreapta aratฤƒ cฤƒ pierderea scade รฎn timpul iteraศ›iei pรขnฤƒ cรขnd curba s-a aplatizat, ceea ce รฎnseamnฤƒ cฤƒ modelul a gฤƒsit o soluศ›ie.

TensorBoard este un instrument excelent pentru a vizualiza astfel de valori ศ™i a evidenศ›ia problemele potenศ›iale. Reศ›eaua neuronalฤƒ poate dura ore pรขnฤƒ la sฤƒptฤƒmรขni pรขnฤƒ sฤƒ gฤƒseascฤƒ o soluศ›ie. TensorBoard actualizeazฤƒ valorile foarte des. รŽn acest caz, nu trebuie sฤƒ aศ™teptaศ›i pรขnฤƒ la sfรขrศ™it pentru a vedea dacฤƒ modelul se antreneazฤƒ corect. Puteศ›i deschide TensorBoard pentru a verifica cum decurge antrenamentul ศ™i pentru a face modificarea corespunzฤƒtoare, dacฤƒ este necesar.

Cum se utilizeazฤƒ TensorBoard?

รŽn acest tutorial, veศ›i รฎnvฤƒศ›a cum sฤƒ deschideศ›i TensorBoard din terminalul pentru MacOS ศ™i din linia de comandฤƒ TensorBoard pentru Windows.

Codul va fi explicat รฎntr-un tutorial viitor, accentul aici fiind pe TensorBoard.

Mai รฎntรขi, trebuie sฤƒ importaศ›i bibliotecile pe care le veศ›i folosi รฎn timpul instruirii

## Import the library
import tensorflow as tf
import numpy as np

Tu creezi datele. Este o matrice de 10000 de rรขnduri ศ™i 5 coloane

X_train = (np.random.sample((10000,5)))
y_train =  (np.random.sample((10000,1)))
X_train.shape

producศ›ie

(10000, 5)

Codurile de mai jos transformฤƒ datele ศ™i creeazฤƒ modelul.

Reศ›ineศ›i cฤƒ rata de รฎnvฤƒศ›are este egalฤƒ cu 0.1. Dacฤƒ modificaศ›i aceastฤƒ ratฤƒ la o valoare mai mare, modelul nu va gฤƒsi o soluศ›ie. Acesta este ceea ce s-a รฎntรขmplat รฎn partea stรขngฤƒ a imaginii de mai sus.

รŽn cea mai mare parte a Tutoriale TensorFlow, veศ›i folosi estimatorul TensorFlow. Acesta este API-ul TensorFlow care conศ›ine toate calculele matematice.

Pentru a crea fiศ™ierele jurnal, trebuie sฤƒ specificaศ›i calea. Acest lucru se face cu argumentul model_dir.

รŽn exemplul TensorBoard de mai jos, stocaศ›i modelul รฎn directorul de lucru, adicฤƒ unde stocaศ›i blocnotesul sau fiศ™ierul python. รŽn aceastฤƒ cale, TensorFlow va crea un folder numit train cu un nume de folder copil 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    
      )
)

producศ›ie

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}

Ultimul pas al acestui exemplu de grafic de vizualizare TensorFlow constฤƒ รฎn antrenamentul modelului. รŽn timpul antrenamentului, TensorFlow scrie informaศ›ii รฎn directorul modelului.

# 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)

producศ›ie

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>

Pentru utilizatorul MacOS

Tutorial TensorBoard pentru utilizatorul MacOS

Pentru Windows utilizator

Tutorial TensorBoard Pentru Windows Utilizator

Puteศ›i vedea aceste informaศ›ii รฎnPyTorch TensorBoard.

Acum cฤƒ aveศ›i jurnalele scrise, puteศ›i deschide Tensorboard. Tensorboard Keras ruleazฤƒ pe portul 6006 (Jupyter ruleazฤƒ pe portul 8888). Puteศ›i utiliza terminalul pentru utilizatorii MacOs sau promptul Anaconda pentru Windows utilizator.

Pentru utilizatorul MacOS

# Different for you
cd /Users/Guru99/tuto_TF
source activate hello-tf!

Notebook-ul este stocat รฎn calea /Users/Guru99/tuto_TF

Pentru Windows utilizatorii

cd C:\Users\Admin\Anaconda3
activate hello-tf

Notebook-ul este stocat รฎn calea C:\Users\Admin\Anaconda3

Pentru a lansa Tensorboard, puteศ›i folosi acest cod

Pentru utilizatorul MacOS

tensorboard --logdir=./train/linreg

Pentru Windows utilizatorii

tensorboard --logdir=.\train\linreg

Tensorboard se aflฤƒ รฎn aceastฤƒ adresฤƒ URL: http://localhost:6006

Ar putea fi amplasat ศ™i รฎn urmฤƒtoarea locaศ›ie.

Utilizaศ›i TensorBoard

Copiaศ›i ศ™i inseraศ›i adresa URL รฎn browserul dvs. preferat. Ar trebui sฤƒ vezi asta:

Reศ›ineศ›i cฤƒ, vom รฎnvฤƒศ›a cum sฤƒ citim graficul รฎn tutorialul dedicat รฎnvฤƒศ›are profundฤƒ.

Utilizaศ›i TensorBoard

Daca vezi asa ceva:

Utilizaศ›i TensorBoard

รŽnseamnฤƒ cฤƒ Tensorboard nu poate gฤƒsi fiศ™ierul jurnal. Asiguraศ›i-vฤƒ cฤƒ รฎndreptaศ›i cd-ul cฤƒtre calea corectฤƒ sau verificaศ›i dacฤƒ evenimentul de jurnal a fost creat. Dacฤƒ nu, rulaศ›i din nou codul.

Dacฤƒ doriศ›i sฤƒ รฎnchideศ›i TensorBoard Apฤƒsaศ›i CTRL+C

Sfat pentru pฤƒlฤƒrie: verificaศ›i promptul anaconda pentru directorul de lucru curent,

Utilizaศ›i TensorBoard

Fiศ™ierul jurnal trebuie creat la C:\Users\Admin

Rezumat

TensorBoard este un instrument excelent pentru a vฤƒ vizualiza modelul. รŽn plus, รฎn timpul antrenamentului sunt afiศ™ate multe valori, cum ar fi pierderea, precizia sau greutฤƒศ›ile.

Pentru a activa Tensorboard, trebuie sฤƒ setaศ›i calea fiศ™ierului:

cd /Users/Guru99/tuto_TF

Activaศ›i mediul Tensorflow

activate hello-tf

Lansaศ›i Tensorboard

tensorboard --logdir=.+ PATH

Rezumaศ›i aceastฤƒ postare cu: