TensorBoard oktatóanyag: TensorFlow diagram vizualizáció [példa]

Mi az a TensorBoard?

TensorBoard a grafikon és más eszközök megjelenítésére szolgáló felület a modell megértéséhez, hibakereséséhez és optimalizálásához. Ez egy olyan eszköz, amely méréseket és vizualizációkat biztosít a gépi tanulási munkafolyamatokhoz. Segít nyomon követni az olyan mutatókat, mint a veszteség és a pontosság, a grafikonok modellezése, a projektek beágyazása alacsonyabb dimenziós terekben stb.

TensorFlow grafikon megjelenítése Tensorboard példával

Az alábbi kép a TensorBoard grafikonból származik, amelyet ebben a TensorBoard oktatóanyagban fog generálni. Ez a fő panel:

TensorFlow Graph vizualizáció
TensorFlow Graph vizualizáció

Az alábbi képen a TensorBoard grafikon megjelenítési panelje látható. A panel különböző lapokat tartalmaz, amelyek a modell futtatásakor hozzáadott információk szintjéhez kapcsolódnak.

TensorBoard Graphs

TensorBoard Graphs
  • Skalárok: Különféle hasznos információk megjelenítése a modellképzés során
  • grafikonok: Mutassa meg a modellt
  • hisztogram: Súlyok megjelenítése hisztogrammal
  • Nemzetközi disztribúció: A súly eloszlásának megjelenítése
  • Projektor: Főkomponens-elemzés és T-SNE algoritmus megjelenítése. A méretcsökkentésre használt technika

A TensorBoard oktatóprogram során egy egyszerű mély tanulási modellt tanít meg. Egy jövőbeli oktatóanyagból megtudhatja, hogyan működik.

Ha megnézi a grafikont, megértheti a modell működését.

  1. Az adatok sorba állítása a modellbe: A köteg méretével megegyező mennyiségű adatot küldjön a modellnek, azaz az adatfolyamok számát minden iteráció után
  2. Adja meg az adatokat a tenzorokhoz
  3. Tanítsd meg a modellt
  4. A kötegek számának megjelenítése a képzés során. Mentse el a modellt a lemezre.

TensorFlow grafikon megjelenítése Tensorboard példával

A tenzortábla mögött meghúzódó alapötlet az, hogy a neurális hálózat lehet valami fekete doboz, és szükségünk van egy eszközre, amellyel megvizsgálhatjuk, mi van ebben a dobozban. Elképzelheti a tensorboardot zseblámpaként, amellyel elkezdhet merülni a neurális hálózatban.

Segít megérteni a műveletek közötti függőséget, a súlyok kiszámítását, megjeleníti a veszteségfüggvényt és sok más hasznos információt. Ha összegyűjti ezeket az információkat, akkor egy nagyszerű eszköz áll rendelkezésére a hibakereséshez és a modell tökéletesítésének megtalálásához.

Ha képet szeretne adni arról, mennyire hasznos lehet a TensorBoard grafikon, nézze meg az alábbi képet:

TensorBoard Graphs
TensorBoard grafikon

Egy neurális hálózat dönti el, hogyan kapcsolja össze a különböző „neuronokat”, és hány réteggel, mielőtt a modell előre jelezheti az eredményt. Miután meghatározta az architektúrát, nemcsak a modellt kell betanítania, hanem egy mérőszámot is az előrejelzés pontosságának kiszámításához. Ezt a mérőszámot a veszteségfüggvény. A cél a veszteségfüggvény minimalizálása. Más szavakkal ez azt jelenti, hogy a modell kevesebb hibát követ el. Minden gépi tanulási algoritmus többször meg fogja ismételni a számításokat, amíg a veszteség el nem ér egy laposabb vonalat. Ennek a veszteségi függvénynek a minimalizálásához meg kell határoznia a tanulási arány. Ezt a sebességet szeretné, hogy a modell megtanulja. Ha túl magasra állítja be a tanulási arányt, a modellnek nincs ideje megtanulni semmit. Ez a helyzet a bal oldali képen. A vonal felfelé és lefelé mozog, ami azt jelenti, hogy a modell tiszta sejtéssel jósolja meg az eredményt. A jobb oldali képen látható, hogy a veszteség az iteráció során csökken, amíg a görbe ellaposodik, vagyis a modell talált megoldást.

A TensorBoard nagyszerű eszköz az ilyen mutatók megjelenítésére és a lehetséges problémák kiemelésére. A neurális hálózat órákig vagy hetekig tarthat, mire megoldást talál. A TensorBoard nagyon gyakran frissíti a mutatókat. Ebben az esetben nem kell megvárnia a végét, hogy megnézze, megfelelően edz-e a modell. A TensorBoard megnyitásával ellenőrizheti, hogyan zajlik a képzés, és szükség esetén elvégezheti a megfelelő változtatásokat.

Hogyan kell használni a TensorBoard-ot?

Ebből az oktatóanyagból megtudhatja, hogyan kell megnyitni a TensorBoard-ot a terminálról MacOS rendszerhez és a TensorBoard parancssorból Windows.

A kódot egy jövőbeli oktatóanyagban magyarázzuk el, itt a hangsúly a TensorBoardon van.

Először is importálnia kell azokat a könyvtárakat, amelyeket a képzés során használni fog

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

Ön hozza létre az adatokat. Ez egy 10000 sorból és 5 oszlopból álló tömb

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

teljesítmény

(10000, 5)

Az alábbi kódok átalakítják az adatokat és létrehozzák a modellt.

Vegye figyelembe, hogy a tanulási arány 0.1. Ha ezt az arányt magasabb értékre módosítja, a modell nem talál megoldást. Ez történt a fenti kép bal oldalán.

A legtöbb ideje alatt TensorFlow oktatóanyagok, akkor TensorFlow becslést fog használni. Ez a TensorFlow API, amely tartalmazza az összes matematikai számítást.

A naplófájlok létrehozásához meg kell adnia az elérési utat. Ez a modell_könyvtár argumentumával történik.

Az alábbi TensorBoard példában a modellt a munkakönyvtárban tárolja, azaz ahol a jegyzetfüzetet vagy a python fájlt tárolja. Ezen az útvonalon belül a TensorFlow létrehoz egy train nevű mappát linreg gyermekmappanévvel.

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

teljesítmény

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}

A TensorFlow vizualizációs grafikon példájának utolsó lépése a modell betanítása. A képzés során a TensorFlow információkat ír a modellkönyvtárba.

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

teljesítmény

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 felhasználónak

TensorBoard oktatóanyag MacOS-felhasználók számára

Minden Windows használó

TensorBoard oktatóanyag Windows használó

Ezt az információt aPyTorch TensorBoard.

Most, hogy megírta a naplóeseményeket, megnyithatja a Tensorboardot. A Tensorboard Keras a 6006-os porton fut (Jupyter a 8888-as porton fut). Használhatja a Terminal for MacOs felhasználókat vagy az Anaconda promptot ehhez Windows felhasználó.

MacOS felhasználónak

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

A jegyzetfüzet a /Users/Guru99/tuto_TF útvonalon tárolódik

Minden Windows Felhasználók

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

A jegyzetfüzet a C:\Users\Admin\Anaconda3 útvonalon található

A Tensorboard elindításához használhatja ezt a kódot

MacOS felhasználónak

tensorboard --logdir=./train/linreg

Minden Windows Felhasználók

tensorboard --logdir=.\train\linreg

A Tensorboard ezen az URL-címen található: http://localhost:6006

A következő helyen is elhelyezhető.

Használja a TensorBoard-ot

Másolja ki és illessze be az URL-t kedvenc böngészőjébe. Ezt kellene látnod:

Ne feledje, hogy megtanuljuk, hogyan kell olvasni a grafikont az oktatóanyagból, amely a mély tanulás.

Használja a TensorBoard-ot

Ha ilyesmit lát:

Használja a TensorBoard-ot

Ez azt jelenti, hogy a Tensorboard nem találja a naplófájlt. Ügyeljen arra, hogy a CD-lemezt a megfelelő útvonalra mutassa, vagy ellenőrizze, hogy a naplóesemény létrejött-e. Ha nem, futtassa újra a kódot.

Ha be szeretné zárni a TensorBoardot, nyomja meg a CTRL+C billentyűkombinációt

Kalaptipp: Ellenőrizze az anaconda promptjában az aktuális munkakönyvtárat,

Használja a TensorBoard-ot

A naplófájlt a C:\Users\Admin helyen kell létrehozni

Összegzésként

A TensorBoard egy nagyszerű eszköz a modell megjelenítéséhez. Emellett számos mérőszám jelenik meg az edzés során, mint például a veszteség, a pontosság vagy a súlyok.

A Tensorboard aktiválásához be kell állítania a fájl elérési útját:

cd /Users/Guru99/tuto_TF

Aktiválja a Tensorflow környezetét

activate hello-tf

Indítsa el a Tensorboardot

tensorboard --logdir=.+ PATH