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:

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.
- 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.
- 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
- Adja meg az adatokat a tenzorokhoz
- Tanítsd meg a modellt
- A kötegek számának megjelenítése a képzés során. Mentse el a modellt a lemezre.
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:
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
Minden 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ő.
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.
Ha ilyesmit lát:
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,
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