TensorBoard Tutorial: TensorFlow grafvisualisering [Eksempel]

Hvad er TensorBoard?

TensorBoard er grรฆnsefladen, der bruges til at visualisere grafen og andre vรฆrktรธjer til at forstรฅ, fejlfinde og optimere modellen. Det er et vรฆrktรธj, der giver mรฅlinger og visualiseringer til workflow for maskinlรฆring. Det hjรฆlper med at spore mรฅlinger som tab og nรธjagtighed, visualisering af modelgrafer, projektindlejring ved lavere dimensionelle rum osv.

TensorFlow-grafvisualisering ved hjรฆlp af Tensorboard-eksempel

Billedet nedenfor kommer fra TensorBoard-grafen, du vil generere i denne TensorBoard-vejledning. Det er hovedpanelet:

TensorFlow grafvisualisering
TensorFlow grafvisualisering

Fra billedet nedenfor kan du se panelet med TensorBoard grafvisualisering. Panelet indeholder forskellige faner, som er knyttet til det informationsniveau, du tilfรธjer, nรฅr du kรธrer modellen.

TensorBoard-grafer

TensorBoard-grafer
  • Skalarer: Vis forskellige nyttige oplysninger under modeltrรฆningen
  • Grafer: Vis modellen
  • Histogram: Vis vรฆgte med et histogram
  • Distribution: Vis fordelingen af โ€‹โ€‹vรฆgten
  • projektor: Vis Principal komponentanalyse og T-SNE-algoritme. Teknikken, der bruges til dimensionalitetsreduktion

I lรธbet af denne TensorBoard Tutorial vil du trรฆne en simpel dyb lรฆringsmodel. Du vil lรฆre, hvordan det fungerer i en fremtidig tutorial.

Hvis du ser pรฅ grafen, kan du forstรฅ, hvordan modellen fungerer.

  1. Sรฆt dataene i kรธ til modellen: Skub en mรฆngde data svarende til batchstรธrrelsen til modellen, dvs. Antal datafeed efter hver iteration
  2. Fรธr dataene til tensorerne
  3. Trรฆn modellen
  4. Vis antallet af batches under trรฆningen. Gem modellen pรฅ disken.

TensorFlow-grafvisualisering ved hjรฆlp af Tensorboard-eksempel

Den grundlรฆggende idรฉ bag tensorboard er, at neurale netvรฆrk kan vรฆre noget kendt som en sort boks, og vi har brug for et vรฆrktรธj til at inspicere, hvad der er inde i denne boks. Du kan forestille dig tensorboard som en lommelygte til at begynde at dykke ind i det neurale netvรฆrk.

Det hjรฆlper med at forstรฅ afhรฆngighederne mellem operationer, hvordan vรฆgten beregnes, viser tabsfunktionen og meget anden nyttig information. Nรฅr du samler alle disse stykker information, har du et fantastisk vรฆrktรธj til at fejlfinde og finde ud af, hvordan du kan forbedre modellen.

For at give dig en idรฉ om, hvor nyttig TensorBoard-grafen kan vรฆre, kan du se pรฅ billedet nedenfor:

TensorBoard-grafer
TensorBoard graf

Et neuralt netvรฆrk bestemmer, hvordan de forskellige "neuroner" skal forbindes, og hvor mange lag, fรธr modellen kan forudsige et udfald. Nรฅr du har defineret arkitekturen, skal du ikke kun trรฆne modellen, men ogsรฅ en metrik til at beregne nรธjagtigheden af โ€‹โ€‹forudsigelsen. Denne metrik omtales som en tabsfunktion. Mรฅlet er at minimere tabsfunktionen. Med andre ord betyder det, at modellen laver fรฆrre fejl. Alle maskinlรฆringsalgoritmer vil gentage beregningerne mange gange, indtil tabet nรฅr en fladere linje. For at minimere denne tabsfunktion skal du definere en indlรฆringshastighed. Det er den hastighed, du รธnsker, at modellen skal lรฆre. Hvis du sรฆtter en indlรฆringshastighed for hรธjt, nรฅr modellen ikke tid til at lรฆre noget. Dette er tilfรฆldet pรฅ billedet til venstre. Linjen bevรฆger sig op og ned, hvilket betyder, at modellen forudsiger med rent gรฆt resultatet. Billedet til hรธjre viser, at tabet falder over iteration, indtil kurven blev flad, hvilket betyder, at modellen fandt en lรธsning.

TensorBoard er et fantastisk vรฆrktรธj til at visualisere sรฅdanne metrics og fremhรฆve potentielle problemer. Det neurale netvรฆrk kan tage timer til uger, fรธr de finder en lรธsning. TensorBoard opdaterer metrics meget ofte. I dette tilfรฆlde behรธver du ikke vente til slutningen for at se, om modellen trรฆner korrekt. Du kan รฅbne TensorBoard for at tjekke, hvordan trรฆningen forlรธber, og foretage de nรธdvendige รฆndringer, hvis det er nรธdvendigt.

Hvordan bruger man TensorBoard?

I denne vejledning lรฆrer du, hvordan du รฅbner TensorBoard fra terminalen til MacOS og kommandolinjen TensorBoard for Windows.

Koden vil blive forklaret i en fremtidig tutorial, fokus her er pรฅ TensorBoard.

Fรธrst skal du importere de biblioteker, du vil bruge under trรฆningen

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

Du opretter dataene. Det er en matrix med 10000 rรฆkker og 5 kolonner

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

Produktion

(10000, 5)

Koderne nedenfor transformerer dataene og skaber modellen.

Bemรฆrk, at indlรฆringshastigheden er lig med 0.1. Hvis du รฆndrer denne sats til en hรธjere vรฆrdi, vil modellen ikke finde en lรธsning. Dette er, hvad der skete i venstre side af ovenstรฅende billede.

I lรธbet af det meste af TensorFlow tutorials, vil du bruge TensorFlow-estimator. Dette er TensorFlow API, der indeholder alle de matematiske beregninger.

For at oprette logfilerne skal du angive stien. Dette gรธres med argumentet model_dir.

I TensorBoard-eksemplet nedenfor gemmer du modellen inde i arbejdsbiblioteket, dvs. hvor du gemmer notebook- eller pythonfilen. Inde i denne sti vil TensorFlow oprette en mappe kaldet train med et underordnet mappenavn 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    
      )
)

Produktion

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}

Det sidste trin i dette TensorFlow visualiseringsgrafeksempel bestรฅr i at trรฆne modellen. Under uddannelsen skriver TensorFlow information i modelkataloget.

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

Produktion

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>

Til MacOS-brugere

TensorBoard Tutorial til MacOS-bruger

Til Windows bruger

TensorBoard Tutorial til Windows Bruger

Du kan se disse oplysninger iPyTorch TensorBoard.

Nu hvor du har skrevet loghรฆndelser, kan du รฅbne Tensorboard. Tensorboard Keras kรธrer pรฅ port 6006 (Jupyter kรธrer pรฅ port 8888). Du kan bruge Terminal til MacOs-brugere eller Anaconda-prompt til Windows bruger.

Til MacOS-brugere

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

Notesbogen er gemt i stien /Users/Guru99/tuto_TF

Til Windows brugere

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

Notesbogen er gemt i stien C:\Users\Admin\Anaconda3

For at starte Tensorboard kan du bruge denne kode

Til MacOS-brugere

tensorboard --logdir=./train/linreg

Til Windows brugere

tensorboard --logdir=.\train\linreg

Tensorboard er placeret i denne URL: http://localhost:6006

Det kan ogsรฅ vรฆre placeret pรฅ fรธlgende sted.

Brug TensorBoard

Kopier og indsรฆt URL'en i din yndlingsbrowser. Du bรธr se dette:

Bemรฆrk, at vi lรฆrer, hvordan man lรฆser grafen i vejledningen dedikeret til dyb lรฆring.

Brug TensorBoard

Hvis du ser noget som dette:

Brug TensorBoard

Det betyder, at Tensorboard ikke kan finde logfilen. Sรธrg for at pege cd'en til den rigtige sti, eller dobbelttjek om loghรฆndelsen er blevet oprettet. Hvis ikke, kรธr koden igen.

Hvis du vil lukke TensorBoard Tryk CTRL+C

Hattip: Tjek din anaconda-prompt for den aktuelle arbejdsmappe,

Brug TensorBoard

Logfilen skal oprettes pรฅ C:\Users\Admin

Resumรฉ

TensorBoard er et fantastisk vรฆrktรธj til at visualisere din model. Desuden vises mange mรฅlinger under trรฆningen, sรฅsom tab, nรธjagtighed eller vรฆgte.

For at aktivere Tensorboard skal du indstille stien til din fil:

cd /Users/Guru99/tuto_TF

Aktiver Tensorflows miljรธ

activate hello-tf

Start Tensorboard

tensorboard --logdir=.+ PATH

Opsummer dette indlรฆg med: