TensorBoard-opetusohjelma: TensorFlow-kaavion visualisointi [esimerkki]

Mikä on TensorBoard?

Tensorboard on käyttöliittymä, jota käytetään visualisoimaan kaavio ja muut työkalut mallin ymmärtämiseen, virheenkorjaukseen ja optimointiin. Se on työkalu, joka tarjoaa mittauksia ja visualisointeja koneoppimisen työnkulkuun. Se auttaa seuraamaan mittareita, kuten häviötä ja tarkkuutta, mallin graafin visualisointia, projektin upottamista pienempiulotteisissa tiloissa jne.

TensorFlow-kaavion visualisointi Tensorboard-esimerkin avulla

Alla oleva kuva tulee TensorBoard-kaaviosta, jonka luot tässä TensorBoard-opetusohjelmassa. Se on pääpaneeli:

TensorFlow-kaavion visualisointi
TensorFlow-kaavion visualisointi

Alla olevasta kuvasta näet TensorBoard-graafin visualisoinnin paneelin. Paneeli sisältää erilaisia ​​välilehtiä, jotka on linkitetty mallin suorittamisen yhteydessä lisäämiesi tietojen tasoon.

TensorBoard-kaaviot

TensorBoard-kaaviot
  • skalaarit: Näytä erilaisia ​​hyödyllisiä tietoja mallikoulutuksen aikana
  • Kuvaajat: Näytä malli
  • histogrammi: Näytä painot histogrammin kanssa
  • Jakelu: Näytä painon jakautuminen
  • Projektori: Näytä pääkomponenttianalyysi ja T-SNE-algoritmi. Mittasuhteiden vähentämiseen käytetty tekniikka

Tämän TensorBoard-opetusohjelman aikana harjoittelet yksinkertaista syväoppimismallia. Opit kuinka se toimii tulevassa opetusohjelmassa.

Jos katsot kaaviota, voit ymmärtää, kuinka malli toimii.

  1. Jonota tiedot malliin: Työnnä malliin eräkokoa vastaava määrä dataa, eli tietosyötteiden lukumäärä jokaisen iteraation jälkeen
  2. Syötä tiedot tensoreihin
  3. Harjoittele mallia
  4. Näytä erien lukumäärä koulutuksen aikana. Tallenna malli levylle.

TensorFlow-kaavion visualisointi Tensorboard-esimerkin avulla

Tensorboardin perusideana on, että hermoverkko voi olla jotain, joka tunnetaan nimellä musta laatikko, ja tarvitsemme työkalun tarkastaaksemme, mitä tämän laatikon sisällä on. Voit kuvitella tensorboardin taskulampuksi aloittaaksesi sukeltamisen hermoverkkoon.

Se auttaa ymmärtämään operaatioiden välisiä riippuvuuksia, kuinka painot lasketaan, näyttää häviöfunktion ja paljon muuta hyödyllistä tietoa. Kun yhdistät kaikki nämä tiedot, sinulla on loistava työkalu virheenkorjaukseen ja mallin parantamiseen.

Alla olevasta kuvasta saat käsityksen siitä, kuinka hyödyllinen TensorBoard-kaavio voi olla:

TensorBoard-kaaviot
TensorBoard-kaavio

Neuraaliverkko päättää, kuinka eri "neuronit" yhdistetään ja kuinka monta kerrosta malli voi ennustaa lopputuloksen. Kun olet määrittänyt arkkitehtuurin, sinun ei tarvitse vain kouluttaa mallia, vaan myös mittareita ennusteen tarkkuuden laskemiseksi. Tätä mittaria kutsutaan a häviötoiminto. Tavoitteena on minimoida tappiofunktio. Toisin sanoen se tarkoittaa, että malli tekee vähemmän virheitä. Kaikki koneoppimisalgoritmit toistavat laskelmat monta kertaa, kunnes häviö saavuttaa tasaisemman viivan. Tämän häviöfunktion minimoimiseksi sinun on määritettävä a oppimisaste. Se on nopeus, jonka haluat mallin oppivan. Jos asetat oppimisnopeuden liian korkeaksi, mallilla ei ole aikaa oppia mitään. Näin on vasemmassa kuvassa. Viiva liikkuu ylös ja alas, mikä tarkoittaa, että malli ennustaa tuloksen puhtaalla arvauksella. Oikeanpuoleinen kuva osoittaa, että häviö pienenee iteraatiossa, kunnes käyrä litistyi, eli malli löysi ratkaisun.

TensorBoard on loistava työkalu tällaisten mittareiden visualisointiin ja mahdollisten ongelmien tuomiseen esiin. Hermoverkko voi kestää tunteja tai viikkoja, ennen kuin ne löytävät ratkaisun. TensorBoard päivittää mittareita hyvin usein. Tässä tapauksessa sinun ei tarvitse odottaa loppuun asti nähdäksesi, harjoitteleeko malli oikein. Voit avata TensorBoardin tarkistaaksesi koulutuksen etenemisen ja tehdä tarvittavat muutokset.

Kuinka käyttää TensorBoardia?

Tässä opetusohjelmassa opit avaamaan TensorBoardin MacOS-päätteestä ja komentoriviltä TensorBoard for MacOS Windows.

Koodi selitetään tulevassa opetusohjelmassa, painopiste on tässä TensorBoardissa.

Ensin sinun on tuotava koulutuksen aikana käyttämäsi kirjastot

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

Sinä luot tiedot. Se on 10000 5 rivin ja XNUMX sarakkeen joukko

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

ulostulo

(10000, 5)

Alla olevat koodit muuttavat tiedot ja luovat mallin.

Huomaa, että oppimisnopeus on 0.1. Jos muutat tämän koron suuremmaksi, malli ei löydä ratkaisua. Näin tapahtui yllä olevan kuvan vasemmalla puolella.

Suurimman osan ajan TensorFlow opetusohjelmat, käytät TensorFlow-estimaattoria. Tämä on TensorFlow API, joka sisältää kaikki matemaattiset laskelmat.

Lokitiedostojen luomiseksi sinun on määritettävä polku. Tämä tehdään argumentilla model_dir.

Alla olevassa TensorBoard-esimerkissä malli tallennetaan työhakemistoon, eli siihen, johon tallennat muistikirjan tai python-tiedoston. Tämän polun sisällä TensorFlow luo kansion nimeltä juna, jonka alikansionimi on 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    
      )
)

ulostulo

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}

Tämän TensorFlow-visualisointikaavioesimerkin viimeinen vaihe koostuu mallin kouluttamisesta. Koulutuksen aikana TensorFlow kirjoittaa tietoja mallihakemistoon.

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

ulostulo

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>

MacOS-käyttäjälle

TensorBoard-opetusohjelma MacOS-käyttäjälle

varten Windows lähettämä

TensorBoard opetusohjelma Windows käyttäjä

Näet nämä tiedot osoitteessaPyTorch TensorBoard.

Nyt kun lokitapahtumat on kirjoitettu, voit avata Tensorboardin. Tensorboard Keras toimii portissa 6006 (Jupyter toimii portissa 8888). Voit käyttää terminaalia MacOs-käyttäjille tai Anaconda-kehotetta Windows käyttäjälle.

MacOS-käyttäjälle

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

Muistikirja on tallennettu polkuun /Users/Guru99/tuto_TF

varten Windows Käyttäjät

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

Muistikirja on tallennettu polkuun C:\Users\Admin\Anaconda3

Tensorboardin käynnistämiseksi voit käyttää tätä koodia

MacOS-käyttäjälle

tensorboard --logdir=./train/linreg

varten Windows Käyttäjät

tensorboard --logdir=.\train\linreg

Tensorboard sijaitsee tässä URL-osoitteessa: http://localhost:6006

Se voisi sijaita myös seuraavassa paikassa.

Käytä TensorBoardia

Kopioi ja liitä URL-osoite suosikkiselaimesi. Sinun pitäisi nähdä tämä:

Huomaa, että opimme lukemaan kaaviota opetusohjelmassa, joka on omistettu syvä oppiminen.

Käytä TensorBoardia

Jos näet jotain tällaista:

Käytä TensorBoardia

Se tarkoittaa, että Tensorboard ei löydä lokitiedostoa. Varmista, että osoitat cd:n oikeaan polkuun tai tarkista, onko lokitapahtuma luotu. Jos ei, suorita koodi uudelleen.

Jos haluat sulkea TensorBoardin Paina CTRL+C

Hattuvinkki: Tarkista anaconda-kehotteesta nykyinen työhakemisto,

Käytä TensorBoardia

Lokitiedosto tulee luoda osoitteeseen C:\Users\Admin

Yhteenveto

TensorBoard on loistava työkalu mallin visualisointiin. Lisäksi harjoituksen aikana näytetään monia mittareita, kuten menetys, tarkkuus tai painot.

Aktivoidaksesi Tensorboardin, sinun on asetettava tiedostosi polku:

cd /Users/Guru99/tuto_TF

Aktivoi Tensorflow-ympäristö

activate hello-tf

Käynnistä Tensorboard

tensorboard --logdir=.+ PATH