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







