TensorBoard-veiledning: TensorFlow-grafvisualisering [Eksempel]

Hva er TensorBoard?

TensorBoard er grensesnittet som brukes til รฅ visualisere grafen og andre verktรธy for รฅ forstรฅ, feilsรธke og optimalisere modellen. Det er et verktรธy som gir mรฅlinger og visualiseringer for arbeidsflyt for maskinlรฆring. Det hjelper รฅ spore beregninger som tap og nรธyaktighet, visualisering av modellgrafer, prosjektinnbygging ved lavere dimensjonale rom, etc.

TensorFlow-grafvisualisering ved hjelp av Tensorboard-eksempel

Bildet nedenfor kommer fra TensorBoard-grafen du vil generere i denne TensorBoard-veiledningen. Det er hovedpanelet:

TensorFlow grafvisualisering
TensorFlow grafvisualisering

Fra bildet nedenfor kan du se panelet med TensorBoard grafvisualisering. Panelet inneholder forskjellige faner, som er knyttet til informasjonsnivรฅet du legger til nรฅr du kjรธrer modellen.

TensorBoard-grafer

TensorBoard-grafer
  • Skalarer: Vis forskjellig nyttig informasjon under modellopplรฆringen
  • grafer: Vis modellen
  • histogram: Vis vekter med et histogram
  • Distribusjon: Vis fordelingen av vekten
  • Projektor: Vis hovedkomponentanalyse og T-SNE-algoritme. Teknikken som brukes for reduksjon av dimensjonalitet

I lรธpet av denne TensorBoard-veiledningen vil du trene en enkel dyplรฆringsmodell. Du vil lรฆre hvordan det fungerer i en fremtidig opplรฆring.

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

  1. Sett dataene i kรธ til modellen: Send en mengde data som tilsvarer batchstรธrrelsen til modellen, dvs. Antall datainnmatinger etter hver iterasjon
  2. Mate dataene til tensorene
  3. Tren modellen
  4. Vis antall partier under treningen. Lagre modellen pรฅ disken.

TensorFlow-grafvisualisering ved hjelp av Tensorboard-eksempel

Den grunnleggende ideen bak tensorboard er at nevrale nettverk kan vรฆre noe kjent som en svart boks, og vi trenger et verktรธy for รฅ inspisere hva som er inne i denne boksen. Du kan forestille deg tensorboard som en lommelykt for รฅ begynne รฅ dykke inn i det nevrale nettverket.

Det hjelper รฅ forstรฅ avhengighetene mellom operasjoner, hvordan vektene beregnes, viser tapsfunksjonen og mye annen nyttig informasjon. Nรฅr du samler all denne informasjonen, har du et flott verktรธy for รฅ feilsรธke og finne ut hvordan du kan forbedre modellen.

For รฅ gi deg en ide om hvor nyttig TensorBoard-grafen kan vรฆre, se pรฅ bildet nedenfor:

TensorBoard-grafer
TensorBoard-graf

Et nevralt nettverk bestemmer hvordan de forskjellige "nevronene" skal kobles sammen og hvor mange lag fรธr modellen kan forutsi et utfall. Nรฅr du har definert arkitekturen, trenger du ikke bare รฅ trene modellen, men ogsรฅ en metrikk for รฅ beregne nรธyaktigheten til prediksjonen. Denne metrikken omtales som en tapsfunksjon. Mรฅlet er รฅ minimere tapsfunksjonen. Med andre ord betyr det at modellen gjรธr fรฆrre feil. Alle maskinlรฆringsalgoritmer vil gjenta mange ganger beregningene til tapet nรฅr en flatere linje. For รฅ minimere denne tapsfunksjonen, mรฅ du definere en lรฆringshastighet. Det er hastigheten du vil at modellen skal lรฆre. Setter du en lรฆringsrate for hรธyt, rekker ikke modellen รฅ lรฆre noe. Dette er tilfellet pรฅ bildet til venstre. Linjen beveger seg opp og ned, noe som betyr at modellen forutsier med ren gjetning utfallet. Bildet til hรธyre viser at tapet avtar over iterasjon til kurven ble flate, noe som betyr at modellen fant en lรธsning.

TensorBoard er et flott verktรธy for รฅ visualisere slike beregninger og fremheve potensielle problemer. Det nevrale nettverket kan ta timer til uker fรธr de finner en lรธsning. TensorBoard oppdaterer beregningene veldig ofte. I dette tilfellet trenger du ikke vente til slutten for รฅ se om modellen trener riktig. Du kan รฅpne TensorBoard for รฅ sjekke hvordan treningen gรฅr og gjรธre den nรธdvendige endringen om nรธdvendig.

Hvordan bruke TensorBoard?

I denne opplรฆringen lรฆrer du hvordan du รฅpner TensorBoard fra terminalen for MacOS og kommandolinjen TensorBoard for Windows.

Koden vil bli forklart i en fremtidig opplรฆring, fokus her er pรฅ TensorBoard.

Fรธrst mรฅ du importere bibliotekene du skal bruke under opplรฆringen

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

Du lager dataene. Det er en matrise med 10000 5 rader og XNUMX kolonner

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

Produksjon

(10000, 5)

Kodene nedenfor transformerer dataene og lager modellen.

Merk at lรฆringsraten er lik 0.1. Hvis du endrer denne satsen til en hรธyere verdi, vil ikke modellen finne en lรธsning. Dette er hva som skjedde pรฅ venstre side av bildet over.

I lรธpet av det meste av TensorFlow-veiledninger, vil du bruke TensorFlow-estimator. Dette er TensorFlow API som inneholder alle de matematiske beregningene.

For รฅ lage loggfilene mรฅ du spesifisere banen. Dette gjรธres med argumentet model_dir.

I TensorBoard-eksemplet nedenfor lagrer du modellen inne i arbeidskatalogen, dvs. der du lagrer notatboken eller pythonfilen. Inne i denne banen vil TensorFlow opprette en mappe kalt tog med et undermappenavn 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    
      )
)

Produksjon

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 siste trinnet i dette TensorFlow-visualiseringsgrafeksemplet bestรฅr i รฅ trene modellen. Under opplรฆringen skriver TensorFlow informasjon i modellkatalogen.

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

Produksjon

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>

For MacOS-brukere

TensorBoard-opplรฆring for MacOS-brukere

Til Windows bruker

TensorBoard opplรฆring for Windows Bruker

Du kan se denne informasjonen iPyTorch TensorBoard.

Nรฅ som du har skrevet logghendelsene, kan du รฅpne Tensorboard. Tensorboard Keras kjรธrer pรฅ port 6006 (Jupyter kjรธrer pรฅ port 8888). Du kan bruke Terminal for MacOs-brukere eller Anaconda-ledeteksten for Windows bruker.

For MacOS-brukere

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

Notatboken er lagret i banen /Users/Guru99/tuto_TF

Til Windows Brukere

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

Notatboken er lagret i banen C:\Users\Admin\Anaconda3

For รฅ starte Tensorboard kan du bruke denne koden

For MacOS-brukere

tensorboard --logdir=./train/linreg

Til Windows Brukere

tensorboard --logdir=.\train\linreg

Tensorboard ligger i denne URLen: http://localhost:6006

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

Bruk TensorBoard

Kopier og lim inn URL-en i favorittnettleseren din. Du bรธr se dette:

Merk at vi vil lรฆre hvordan du leser grafen i opplรฆringen dedikert til dyp lรฆring.

Bruk TensorBoard

Hvis du ser noe slikt:

Bruk TensorBoard

Det betyr at Tensorboard ikke kan finne loggfilen. Pass pรฅ at du peker CD-en til riktig bane eller dobbeltsjekk om logghendelsen har opprettet. Hvis ikke, kjรธr koden pรฅ nytt.

Hvis du vil lukke TensorBoard, trykk CTRL+C

Hatttips: Sjekk anaconda-forespรธrselen din for gjeldende arbeidskatalog,

Bruk TensorBoard

Loggfilen skal opprettes pรฅ C:\Users\Admin

Sammendrag

TensorBoard er et flott verktรธy for รฅ visualisere modellen din. Dessuten vises mange beregninger under treningen, for eksempel tap, nรธyaktighet eller vekter.

For รฅ aktivere Tensorboard mรฅ du angi banen til filen din:

cd /Users/Guru99/tuto_TF

Aktiver Tensorflows miljรธ

activate hello-tf

Start Tensorboard

tensorboard --logdir=.+ PATH

Oppsummer dette innlegget med: