Tutorial TensorBoard: Vizualizarea graficului TensorFlow

โšก Rezumat inteligent

TensorBoard este interfaศ›a vizualฤƒ pentru rulฤƒrile de antrenament TensorFlow, trasรขnd curbe de pierdere, grafice de model, histograme de ponderare ศ™i รฎncorporฤƒri. Aceastฤƒ demonstraศ›ie scrie fiศ™iere de evenimente cu un estimator, apoi deschide tabloul de bord pe portul 6006.

  • ๐Ÿ”˜ Cinci tablouri de bord: Scalarele, graficele, distribuศ›iile, histogramele ศ™i proiectorul citesc fiecare un tip diferit de rezumat.
  • โ˜‘๏ธ Directorul jurnalului: Argumentul model_dir decide unde TensorFlow scrie fiศ™ierele events.out.tfevents.
  • โœ… Comandฤƒ de lansare: Rulaศ›i tensorboard โ€“logdir=PATH, apoi deschideศ›i http://localhost:6006 รฎn orice browser.
  • ๐Ÿงช Rata de รฎnvฤƒศ›are: O curbฤƒ a pierderilor zimศ›atฤƒ semnaleazฤƒ o ratฤƒ prea mare pentru ca modelul sฤƒ convergฤƒ.
  • ๐Ÿ› ๏ธ TensorFlow 2: Repealul Keras TensorBoard รฎnlocuieศ™te jurnalul estimatorului prezentat รฎn exemplul original.
  • โš ๏ธ Depanare: Un tablou de bord gol รฎnseamnฤƒ aproape รฎntotdeauna cฤƒ calea directorului de jurnal nu se potriveศ™te cu rularea antrenamentului.

Tutorial TensorBoard: Vizualizarea graficului TensorFlow

Ce este TensorBoard?

TensorBoard este interfaศ›a utilizatฤƒ pentru vizualizarea graficului ศ™i alte instrumente pentru รฎnศ›elegerea, depanarea ศ™i optimizarea modelului. Este un instrument care oferฤƒ mฤƒsurฤƒtori ศ™i vizualizฤƒri pentru un flux de lucru de รฎnvฤƒศ›are automatฤƒ. Ajutฤƒ... track metrici, cum ar fi pierderea ศ™i precizia, vizualizarea graficului modelului ศ™i proiectarea รฎncorporฤƒrilor รฎn spaศ›ii de dimensiuni inferioare.

TensorBoard este livrat cu TensorFlow ศ™i ruleazฤƒ ca un mic server web local care citeศ™te fiศ™ierele de evenimente pe care un job de antrenament le scrie pe disc.

Exemplu de vizualizare a grafurilor TensorFlow folosind TensorBoard

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

Tabloul de bord TensorBoard Scalars care prezintฤƒ curba average_loss a regresorului DNN antrenat

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.

Bara de navigare TensorBoard cu filele Scalari, Grafice, Distribuศ›ii, Histograme ศ™i Proiector

  • Scalari: Afiศ™aศ›i diferite informaศ›ii utile รฎn timpul antrenamentului modelului
  • Grafice: Afiศ™aศ›i modelul
  • Histogramฤƒ: Afiศ™aศ›i ponderile cu o histogramฤƒ
  • Distribuศ›ie: Afiศ™aศ›i 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 simplu รฎnvฤƒศ›are profundฤƒ model, iar graficul pe care รฎl produce este citit de jos รฎn sus.

Dacฤƒ te uiศ›i la grafic, poศ›i รฎnศ›elege cum funcศ›ioneazฤƒ modelul. Insignele numerotate din captura de ecran de mai jos marcheazฤƒ aceste patru etape:

  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.

Grafic TensorFlow รฎn TensorBoard cu noduri numerotate pentru coada de intrare, blocul dnn ศ™i operaศ›ia de salvare

Ideea de bazฤƒ din spatele TensorBoard este cฤƒ o reศ›ea neuronalฤƒ se poate comporta ca o cutie neagrฤƒ ศ™i ai nevoie de un instrument pentru a inspecta ce se aflฤƒ รฎn interiorul acelei cutii. Gรขndeศ™te-te la TensorBoard ca la o lanternฤƒ pentru a te cufunda รฎn reศ›ea.

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, uitaศ›i-vฤƒ la cele douฤƒ curbe de pierdere de mai jos:

Douฤƒ curbe de pierdere TensorBoard una lรขngฤƒ alta, comparรขnd un model care nu รฎnvaศ›ฤƒ cu un model care converge

O reศ›ea neuronalฤƒ decide cum sฤƒ conecteze diferiศ›ii neuroni ศ™i cรขte straturi sunt necesare รฎnainte ca modelul sฤƒ poatฤƒ prezice un rezultat. Odatฤƒ ce arhitectura este definitฤƒ, nu trebuie doar sฤƒ antrenaศ›i modelul, ci ศ™i o metricฤƒ care mฤƒsoarฤƒ acurateศ›ea predicศ›iei. Aceastฤƒ metricฤƒ se numeศ™te funcศ›ie de pierdere, iar obiectivul este de a o minimiza, ceea ce รฎnseamnฤƒ pur ศ™i simplu cฤƒ modelul face mai puศ›ine erori.

Fiecare algoritm de antrenament repetฤƒ calculul de mai multe ori pรขnฤƒ cรขnd pierderea atinge o linie mai platฤƒ. Minimizarea pierderii necesitฤƒ ศ™i o ratฤƒ de รฎnvฤƒศ›are, care este viteza cu care modelul รฎnvaศ›ฤƒ. Dacฤƒ se seteazฤƒ rata de รฎnvฤƒศ›are la o valoare prea mare, modelul nu va avea niciodatฤƒ timp sฤƒ รฎnveศ›e nimic: acesta este graficul din stรขnga, unde linia se miศ™cฤƒ รฎn sus ศ™i รฎn jos, deoarece modelul practic ghiceศ™te. Graficul din dreapta aratฤƒ cum pierderea scade de-a lungul iteraศ›iilor pรขnฤƒ cรขnd curba se aplatizeazฤƒ, ceea ce รฎnseamnฤƒ cฤƒ modelul a gฤƒsit o soluศ›ie.

TensorBoard este un instrument excelent pentru vizualizarea unor astfel de metrici ศ™i evidenศ›ierea potenศ›ialelor probleme. O reศ›ea neuronalฤƒ poate dura ore sau sฤƒptฤƒmรขni รฎnainte de a gฤƒsi o soluศ›ie, iar TensorBoard reรฎmprospฤƒteazฤƒ metricile รฎn timp ce jobul este รฎncฤƒ รฎn execuศ›ie. Prin urmare, nu trebuie sฤƒ aศ™teptaศ›i pรขnฤƒ la sfรขrศ™it pentru a vedea dacฤƒ modelul se antreneazฤƒ corect: deschideศ›i TensorBoard, verificaศ›i cum decurge antrenamentul ศ™i faceศ›i modificฤƒrile corespunzฤƒtoare, dacฤƒ este necesar.

Cum se foloseศ™te TensorBoard?

รŽn aceastฤƒ secศ›iune, veศ›i รฎnvฤƒศ›a cum sฤƒ deschideศ›i TensorBoard din terminal pe macOS ศ™i din linia de comandฤƒ WindowsAccentul aici este pus pe instrument ศ™i nu pe model, aศ™a cฤƒ codul de antrenament este menศ›inut รฎn mod deliberat scurt.

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

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

Codul 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. Acest lucru s-a รฎntรขmplat รฎn partea stรขngฤƒ a imaginii de mai sus.

Exemplul foloseศ™te un estimator TensorFlow, API-ul de nivel รฎnalt care รฎncorporeazฤƒ calculele matematice. Estimatorii aparศ›in API-ului TensorFlow 1.x, aศ™adar cele douฤƒ fragmente de mai jos ruleazฤƒ sub o instalare 1.x sau prin intermediul tf.compat.v1 spaศ›iu de nume.

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 Python fiศ™ier. รŽn interiorul acestei cฤƒi, TensorFlow va crea un folder numit train cu un folder copil numit 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: {&#x27;_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 vizualizare graficฤƒ TensorFlow constฤƒ รฎn antrenarea 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>

Pe TensorFlow 2, aceeaศ™i sarcinฤƒ este รฎndeplinitฤƒ de apelul invers Keras TensorBoard, care scrie graficul ศ™i metricile per epocฤƒ fฤƒrฤƒ niciun cod de estimare:

logdir = "logs/fit/" + datetime.now().strftime("%Y%m%d-%H%M%S")
tensorboard_callback = keras.callbacks.TensorBoard(log_dir=logdir)

model.fit(train_images, train_labels, epochs=5,
          callbacks=[tensorboard_callback])

Odatฤƒ ce rularea se terminฤƒ, directorul jurnal conศ›ine un fiศ™ier punct de control, un graph.pbtxt fiศ™ier ศ™i unul sau mai multe events.out.tfevents fiศ™iere โ€” exact ceea ce citeศ™te TensorBoard.

Pentru macOS utilizatorii

Vizualizarea Finder de mai jos aratฤƒ noul folder train/linreg creat รฎn directorul de lucru.

macOS listฤƒ de fiศ™iere care aratฤƒ folderele de jurnal train ศ™i linreg cu fiศ™ierele checkpoint, events ศ™i graph.pbtxt

Pentru Windows utilizatorii

On Windows Aceleaศ™i fiศ™iere apar sub calea pe care aศ›i trecut-o cฤƒtre model_dir, aศ™a cum este evidenศ›iat รฎn bara de adrese.

Windows Vizualizare Explorer a folderului linreg al trenului care conศ›ine fiศ™ierele de evenimente ศ™i puncte de control TensorFlow

Acelaศ™i format de fiศ™ier eveniment este produs de PyTorch, deci tabloul de bord nu este limitat la rularea TensorFlow.

Acum cฤƒ aศ›i scris evenimentele din jurnal, puteศ›i deschide TensorBoard. TensorBoard funcศ›ioneazฤƒ implicit pe portul 6006 (Jupyter foloseศ™te portul 8888). Foloseศ™te Terminalul pe macOS sau promptul Anaconda de pe Windows.

Pentru macOS utilizatorii

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

Blocnotesul este stocat รฎn calea /Utilizatori/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, executaศ›i urmฤƒtoarea comandฤƒ din directorul respectiv.

Pentru macOS utilizatorii

tensorboard --logdir=./train/linreg

Pentru Windows utilizatorii

tensorboard --logdir=.\train\linreg

TensorBoard este apoi servit la http://localhost:6006

Pavilion Ceea ce controleazฤƒ
--logdir Directorul care conศ›ine fiศ™ierele evenimentului. Acesta este singurul indicator necesar.
--port Port pe care se va deservi. Implicit este 6006; modificaศ›i-l cรขnd o sesiune anterioarฤƒ รฎncฤƒ deศ›ine acel port.
--bind_all Servi pe fiecare interfaศ›ฤƒ de reศ›ea. TensorBoard se leagฤƒ la localhost doar รฎn mod implicit, deci accesul la distanศ›ฤƒ necesitฤƒ acest flag ศ™i nu poate fi combinat cu --host.
--reload_interval Cรขt de des, รฎn secunde, este rescanat directorul de jurnal pentru date noi.
--logdir_spec Soluศ›ie alternativฤƒ moศ™tenitฤƒ care acceptฤƒ mai multe cฤƒi separate prin virgulฤƒ; --logdir nu mai suportฤƒ acel formular.

tensorboard dev Subcomanda nu mai funcศ›ioneazฤƒ: serviciul gฤƒzduit TensorBoard.dev s-a รฎnchis pe 1 ianuarie 2024. Utilizarea localฤƒ nu este afectatฤƒ.

Pe unele maศ™ini, consola afiศ™eazฤƒ numele gazdei รฎn loc de localhost, ca รฎn promptul Anaconda de mai jos. Ambele adrese deschid acelaศ™i tablou de bord.

Promptul Anaconda executฤƒ comanda tensorboard ศ™i afiศ™eazฤƒ adresa serverului pe portul 6006

Copiaศ›i ศ™i lipiศ›i adresa รฎn browserul dvs. preferat. Ar trebui sฤƒ vedeศ›i tabloul de bord Scalars afiศ™at mai jos.

Tabloul de bord TensorBoard Scalars se deschide รฎntr-un browser dupฤƒ ce directorul de jurnal se รฎncarcฤƒ corect

Dacฤƒ vedeศ›i รฎn schimb ceva de genul acesta:

Eroare la citirea paginii TensorBoard Nu au fost gฤƒsite fiศ™iere de definiศ›ie a graficului

รŽnseamnฤƒ cฤƒ TensorBoard nu poate gฤƒsi fiศ™ierul jurnal. Asiguraศ›i-vฤƒ cฤƒ indicaศ›i cd pe calea corectฤƒ sau verificaศ›i de douฤƒ ori dacฤƒ evenimentul din jurnal a fost creat efectiv. Dacฤƒ nu a fost creat, rulaศ›i din nou codul de antrenament.

Dacฤƒ vrei sฤƒ รฎnchizi TensorBoard, apasฤƒ CTRL+C รฎn fereastra terminalului.

Sfat: verificaศ›i promptul Anaconda pentru directorul de lucru curent.

Prompt Anaconda care aratฤƒ mediul hello-tf activ ศ™i directorul de lucru curent

รŽn captura de ecran de mai sus, promptul se aflฤƒ รฎn C:\Users\Admin, deci fiศ™ierul jurnal ar trebui creat รฎn acel folder.

รŽntrebฤƒri frecvente

O rulare finalizatฤƒ lasฤƒ un index de puncte de control, unul sau mai multe fiศ™iere model.ckpt, un fiศ™ier graph.pbtxt ศ™i cel puศ›in un fiศ™ier events.out.tfevents. TensorBoard citeศ™te doar fiศ™ierele de evenimente; punctele de control existฤƒ, astfel รฎncรขt antrenamentul poate fi reluat de unde s-a oprit.

Da. PyTorch expediazฤƒ un rezumatWriter care emite acelaศ™i format de fiศ™ier de evenimente, deci comanda identicฤƒ tensorboard โ€“logdir randeazฤƒ tabloul de bord. Nimic la server nu se schimbฤƒ - doar biblioteca care produce rezumatele.

Nu. Serviciul gฤƒzduit s-a รฎnchis pe 1 ianuarie 2024, iar subcomanda tensorboard dev returneazฤƒ acum o eroare. Partajaศ›i rezultatele rulรขnd TensorBoard รฎntr-un blocnotes, cum ar fi Google Colab sau exportรขnd diagramele ca CSV sau JSON.

Daศ›i fiecฤƒrei rulฤƒri propriul subfolder sub un pฤƒrinte partajat, apoi indicaศ›i โ€“logdir spre pฤƒrinte. Fiecare subfolder apare ca o rulare separatฤƒ รฎn panoul din stรขnga, iar curbele sunt desenate pe aceleaศ™i axe cu o casetฤƒ de selectare fiecare.

Graficul de nivel de operare este vizualizarea implicitฤƒ ศ™i aratฤƒ cum รฎnศ›elege TensorFlow programul, desenat de jos รฎn sus. Selectarea etichetei keras comutฤƒ la graficul conceptual, care aratฤƒ doar straturile modelului ศ™i este mai uศ™or de verificat รฎn raport cu designul.

Analizele automate produc zeci de rulฤƒri simultan, astfel รฎncรขt tabloul de bord devine un instrument de comparaศ›ie, mai degrabฤƒ decรขt un monitor pentru o singurฤƒ rulare. Pluginul HParams รฎnregistreazฤƒ fiecare configuraศ›ie รฎmpreunฤƒ cu valorile sale, permiศ›รขndu-vฤƒ sฤƒ sortaศ›i testele รฎn loc sฤƒ citiศ›i curbele una cรขte una.

Copilotul GitHub redacteazฤƒ rapid schemele de apel invers ศ™i de rezumat. Trataศ›i rezultatul ca pe o schiศ›ฤƒ: adesea combinฤƒ API-urile TensorFlow 1.x ศ™i 2.x, aศ™a cฤƒ verificaศ›i fiecare nume รฎn raport cu documentaศ›ia actualฤƒ รฎnainte de a rula codul.

Fie nu a fost scris niciun fiศ™ier de evenimente, fie calea transmisฤƒ cฤƒtre โ€“logdir nu se potriveศ™te cu cea utilizatฤƒ de jobul de antrenament. Confirmaศ›i cฤƒ existฤƒ un fiศ™ier events.out.tfevents รฎn acel folder ศ™i pe Windows porneศ™te TensorBoard de la aceeaศ™i literฤƒ de unitate.

Rezumaศ›i aceastฤƒ postare cu: