TensorBoardi õpetus: TensorFlow graafiku visualiseerimine [näide]

Mis on TensorBoard?

Tensorboard on liides, mida kasutatakse graafiku ja muude tööriistade visualiseerimiseks mudeli mõistmiseks, silumiseks ja optimeerimiseks. See on tööriist, mis pakub masinõppe töövoo jaoks mõõtmisi ja visualiseerimisi. See aitab jälgida selliseid mõõdikuid nagu kadu ja täpsus, modelleerimisgraafiku visualiseerimine, projekti manustamine madalama mõõtmega ruumides jne.

TensorFlow graafiku visualiseerimine Tensorboardi näite abil

Allolev pilt pärineb TensorBoardi graafikust, mille loote selles TensorBoardi õpetuses. See on põhipaneel:

TensorFlow graafiku visualiseerimine
TensorFlow graafiku visualiseerimine

Alloleval pildil näete TensorBoardi graafiku visualiseerimise paneeli. Paneel sisaldab erinevaid vahekaarte, mis on lingitud mudeli käitamisel lisatava teabe tasemega.

Tensorboardi graafikud

Tensorboardi graafikud
  • Skalaarid: Näita modellikoolituse ajal erinevat kasulikku teavet
  • Graafikud: Näita mudelit
  • Histogramm: kaalude kuvamine histogrammiga
  • jaotus: kuvab raskuse jaotuse
  • projektor: Kuva põhikomponentide analüüs ja T-SNE algoritm. Mõõtmete vähendamiseks kasutatav tehnika

Selle TensorBoardi õpetuse käigus treenite lihtsat süvaõppe mudelit. Kuidas see töötab, saate teada tulevases õpetuses.

Kui vaatate graafikut, saate aru, kuidas mudel töötab.

  1. Andmete järjekorda seadmine mudelisse: sisestage mudelisse partii suurusega võrdne andmehulk, st andmevoo arv pärast iga iteratsiooni
  2. Andmete edastamine tensoritele
  3. Treeni modelli
  4. Näidake koolituse ajal partiide arvu. Salvestage mudel kettale.

TensorFlow graafiku visualiseerimine Tensorboardi näite abil

Tensorboardi põhiidee on see, et närvivõrk võib olla midagi tuntud kui must kast ja me vajame tööriista selle kasti sisu kontrollimiseks. Võite ette kujutada tensorboardi taskulambina, et alustada närvivõrku sukeldumist.

See aitab mõista tehtevahelisi sõltuvusi, kaalude arvutamist, kuvab kadufunktsiooni ja palju muud kasulikku teavet. Kui koondate kõik need andmed kokku, on teil suurepärane tööriist silumiseks ja mudeli täiustamiseks.

Et anda teile aimu, kui kasulik TensorBoardi graafik võib olla, vaadake allolevat pilti:

Tensorboardi graafikud
TensorBoardi graafik

Närvivõrk otsustab, kuidas ühendada erinevad "neuronid" ja mitu kihti, enne kui mudel suudab tulemust ennustada. Kui olete arhitektuuri määratlenud, ei pea te mitte ainult mudelit koolitama, vaid ka ennustuse täpsuse arvutamiseks mõõdikuid. Seda mõõdikut nimetatakse a kaotusfunktsioon. Eesmärk on minimeerida kahjufunktsiooni. Teiste sõnadega tähendab see, et mudel teeb vähem vigu. Kõik masinõppe algoritmid kordavad arvutusi mitu korda, kuni kadu jõuab lamedama jooneni. Selle kadufunktsiooni minimeerimiseks peate määratlema a õppimiskiirus. See on kiirus, mida soovite, et mudel õpiks. Kui määrate õppimismäära liiga kõrgeks, pole mudelil aega midagi õppida. Vasakpoolsel pildil on see nii. Joon liigub üles ja alla, mis tähendab, et mudel ennustab tulemust puhta oletusega. Parempoolsel pildil on näha, et kaotus väheneb iteratsiooni käigus, kuni kõver tasaneb, mis tähendab, et mudel leidis lahenduse.

TensorBoard on suurepärane tööriist selliste mõõdikute visualiseerimiseks ja võimalike probleemide esiletoomiseks. Närvivõrgul võib kuluda tunde kuni nädalaid, enne kui nad lahenduse leiavad. TensorBoard värskendab mõõdikuid väga sageli. Sel juhul ei pea te lõpuni ootama, et näha, kas mudel treenib õigesti. TensorBoardi saate avada, et kontrollida, kuidas koolitus läheb ja vajadusel teha vastavad muudatused.

Kuidas TensorBoardi kasutada?

Sellest õpetusest saate teada, kuidas avada TensorBoard MacOS-i terminalist ja käsurealt TensorBoard Windows.

Koodi selgitatakse tulevases õpetuses, siin keskendutakse TensorBoardile.

Esiteks peate importima teegid, mida koolituse ajal kasutate

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

Loote andmed. See on 10000 5 reast ja XNUMX veerust koosnev massiiv

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

Väljund

(10000, 5)

Allolevad koodid muudavad andmed ja loovad mudeli.

Pange tähele, et õppimise määr on 0.1. Kui muudate selle määra suuremaks, ei leia mudel lahendust. See juhtus ülaltoodud pildi vasakus servas.

Enamiku ajal TensorFlow õpetused, kasutate TensorFlow hindajat. See on TensorFlow API, mis sisaldab kõiki matemaatilisi arvutusi.

Logifailide loomiseks peate määrama tee. Seda tehakse argumendiga model_dir.

Allolevas TensorBoardi näites salvestate mudeli töökataloogi, st kuhu salvestate märkmiku või pythoni faili. Selle tee sees loob TensorFlow kausta nimega rong alamkausta nimega 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    
      )
)

Väljund

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}

Selle TensorFlow visualiseerimisgraafiku näite viimane samm seisneb mudeli treenimises. Koolituse käigus kirjutab TensorFlow info mudelikataloogi.

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

Väljund

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-i kasutajale

TensorBoardi õpetus MacOS-i kasutajale

eest Windows kasutaja

TensorBoardi õpetus Windows Kasutaja

Seda teavet näete jaotisesPyTorch TensorBoard.

Nüüd, kui logisündmused on kirjutatud, saate Tensorboardi avada. Tensorboard Keras töötab pordis 6006 (Jupyter töötab pordis 8888). Võite kasutada terminali MacOs kasutajatele või Anaconda viipa Windows kasutaja.

MacOS-i kasutajale

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

Märkmik on salvestatud teele /Users/Guru99/tuto_TF

eest Windows Kasutajad

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

Märkmik salvestatakse teele C:\Users\Admin\Anaconda3

Tensorboardi käivitamiseks saate seda koodi kasutada

MacOS-i kasutajale

tensorboard --logdir=./train/linreg

eest Windows Kasutajad

tensorboard --logdir=.\train\linreg

Tensorboard asub selles URL-is: http://localhost:6006

See võib asuda ka järgmises kohas.

Kasutage TensorBoardi

Kopeerige ja kleepige URL oma lemmikbrauserisse. Peaksite nägema seda:

Pange tähele, et me õpime graafikut lugema õpetusest, mis on pühendatud sügav õpe.

Kasutage TensorBoardi

Kui näete midagi sellist:

Kasutage TensorBoardi

See tähendab, et Tensorboard ei leia logifaili. Veenduge, et suunate CD õigele teele või kontrollige veel kord, kas logisündmus on loodud. Kui ei, siis käivitage kood uuesti.

Kui soovite TensorBoardi sulgeda, vajutage klahvikombinatsiooni CTRL+C

Mütsi näpunäide: kontrollige oma anaconda viipa praeguse töökataloogi jaoks,

Kasutage TensorBoardi

Logifail tuleks luua aadressil C:\Users\Admin

kokkuvõte

TensorBoard on suurepärane tööriist oma mudeli visualiseerimiseks. Pealegi kuvatakse treeningu ajal palju mõõdikuid, nagu kaotus, täpsus või kaalud.

Tensorboardi aktiveerimiseks peate määrama oma faili tee:

cd /Users/Guru99/tuto_TF

Aktiveerige Tensorflow keskkond

activate hello-tf

Käivitage Tensorboard

tensorboard --logdir=.+ PATH

Võta see postitus kokku järgmiselt: