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