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:

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.
- 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.
- Jonota tiedot malliin: Työnnä malliin eräkokoa vastaava määrä dataa, eli tietosyötteiden lukumäärä jokaisen iteraation jälkeen
- Syötä tiedot tensoreihin
- Harjoittele mallia
- Näytä erien lukumäärä koulutuksen aikana. Tallenna malli levylle.
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:
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
varten Windows lähettämä
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.
Kopioi ja liitä URL-osoite suosikkiselaimesi. Sinun pitäisi nähdä tämä:
Huomaa, että opimme lukemaan kaaviota opetusohjelmassa, joka on omistettu syvä oppiminen.
Jos näet jotain tällaista:
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,
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