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:
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.
- 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.
- 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
- Transmite datele Tensorilor
- Antrenează modelul
- Afișați numărul de loturi în timpul antrenamentului. Salvați modelul pe disc.
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:
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
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.
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ă.
Daca vezi asa ceva:
Î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,
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