Výukový program TensorBoard: Vizualizace grafu TensorFlow [Příklad]

Co je TensorBoard?

TensorBoard je rozhraní používané k vizualizaci grafu a další nástroje pro pochopení, ladění a optimalizaci modelu. Je to nástroj, který poskytuje měření a vizualizace pro pracovní postup strojového učení. Pomáhá sledovat metriky, jako je ztráta a přesnost, vizualizace modelového grafu, vkládání projektu do prostorů s nižší dimenzí atd.

Vizualizace grafu TensorFlow pomocí příkladu Tensorboard

Obrázek níže pochází z grafu TensorBoard, který vygenerujete v tomto tutoriálu TensorBoard. Je to hlavní panel:

Vizualizace grafu TensorFlow
Vizualizace grafu TensorFlow

Z obrázku níže můžete vidět panel vizualizace grafu TensorBoard. Panel obsahuje různé karty, které jsou propojeny s úrovní informací, které přidáte při spuštění modelu.

Grafy TensorBoard

Grafy TensorBoard
  • Skaláry: Ukázat různé užitečné informace během tréninku modelu
  • Grafy: Ukaž model
  • Histogram: Zobrazení hmotností s histogramem
  • Distribuce: Zobrazení rozložení hmotnosti
  • Projektor: Zobrazit analýzu hlavních komponent a algoritmus T-SNE. Technika použitá pro redukci rozměrů

Během tohoto kurzu TensorBoard si natrénujete jednoduchý model hlubokého učení. Jak to funguje, se dozvíte v budoucím tutoriálu.

Když se podíváte na graf, můžete pochopit, jak model funguje.

  1. Zařadit data do modelu: Odeslat do modelu množství dat rovnající se velikosti dávky, tj. Počet datových zdrojů po každé iteraci
  2. Odešlete data do tenzorů
  3. Trénujte model
  4. Zobrazení počtu dávek během tréninku. Uložte model na disk.

Vizualizace grafu TensorFlow pomocí příkladu Tensorboard

Základní myšlenkou tensorboardu je, že neuronová síť může být něco známého jako černá skříňka a my potřebujeme nástroj pro kontrolu toho, co je uvnitř této skříňky. Můžete si představit tensorboard jako baterku, abyste se mohli ponořit do neuronové sítě.

Pomáhá pochopit závislosti mezi operacemi, jak se počítají váhy, zobrazuje ztrátovou funkci a mnoho dalších užitečných informací. Když spojíte všechny tyto informace dohromady, máte skvělý nástroj k ladění a hledání toho, jak model vylepšit.

Chcete-li si udělat představu o tom, jak užitečný může být graf TensorBoard, podívejte se na obrázek níže:

Grafy TensorBoard
Graf TensorBoard

Neuronová síť rozhoduje o tom, jak propojit různé „neurony“ a kolik vrstev může model předpovědět výsledek. Jakmile definujete architekturu, potřebujete nejen trénovat model, ale také metriku pro výpočet přesnosti predikce. Tato metrika se nazývá a ztrátová funkce. Cílem je minimalizovat ztrátovou funkci. Jinými slovy to znamená, že model dělá méně chyb. Všechny algoritmy strojového učení budou mnohokrát opakovat výpočty, dokud ztráta nedosáhne plošší čáry. Chcete-li minimalizovat tuto ztrátovou funkci, musíte definovat a rychlost učení. Je to rychlost, kterou chcete, aby se model naučil. Pokud nastavíte příliš vysokou rychlost učení, model se nestihne nic naučit. To je případ na levém obrázku. Čára se pohybuje nahoru a dolů, což znamená, že model předpovídá výsledek čistým odhadem. Obrázek vpravo ukazuje, že ztráta během iterace klesá, dokud se křivka nezplošťuje, což znamená, že model našel řešení.

TensorBoard je skvělý nástroj pro vizualizaci takových metrik a zvýraznění potenciálních problémů. Neuronové síti může trvat hodiny až týdny, než najdou řešení. TensorBoard velmi často aktualizuje metriky. V tomto případě nemusíte čekat až do konce, abyste viděli, zda model trénuje správně. Můžete otevřít TensorBoard a zkontrolovat, jak školení probíhá, a v případě potřeby provést příslušnou změnu.

Jak používat TensorBoard?

V tomto tutoriálu se naučíte, jak otevřít TensorBoard z terminálu pro MacOS a příkazového řádku TensorBoard pro Windows.

Kód bude vysvětlen v budoucím tutoriálu, zde se zaměřujeme na TensorBoard.

Nejprve je potřeba naimportovat knihovny, které budete během školení používat

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

Vy vytvoříte data. Jedná se o pole 10000 5 řádků a XNUMX sloupců

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

Výstup

(10000, 5)

Níže uvedené kódy transformují data a vytvoří model.

Všimněte si, že rychlost učení se rovná 0.1. Pokud tuto míru změníte na vyšší hodnotu, model nenajde řešení. To se stalo na levé straně výše uvedeného obrázku.

Během většiny Tutoriály TensorFlow, použijete TensorFlow estimator. Toto je TensorFlow API, které obsahuje všechny matematické výpočty.

Chcete-li vytvořit soubory protokolu, musíte zadat cestu. To se provádí pomocí argumentu model_dir.

V níže uvedeném příkladu TensorBoard ukládáte model do pracovního adresáře, tedy tam, kde ukládáte notebook nebo soubor python. Uvnitř této cesty TensorFlow vytvoří složku s názvem train s názvem podřízené složky 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ýstup

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}

Posledním krokem tohoto příkladu vizualizačního grafu TensorFlow je trénování modelu. Během školení TensorFlow zapisuje informace do adresáře modelu.

# 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ýstup

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>

Pro uživatele MacOS

Výukový program TensorBoard pro uživatele MacOS

Pro Windows uživatel

Výukový program TensorBoard pro Windows Uživatel

Tyto informace můžete vidět vPyTorch TensorBoard.

Nyní, když máte zapsané události protokolu, můžete otevřít Tensorboard. Tensorboard Keras běží na portu 6006 (Jupyter běží na portu 8888). Můžete použít terminál pro uživatele MacOs nebo výzvu Anaconda Windows uživatel.

Pro uživatele MacOS

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

Notebook je uložen v cestě /Users/Guru99/tuto_TF

Pro Windows uživatelé

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

Notebook je uložen v cestě C:\Users\Admin\Anaconda3

Chcete-li spustit Tensorboard, můžete použít tento kód

Pro uživatele MacOS

tensorboard --logdir=./train/linreg

Pro Windows uživatelé

tensorboard --logdir=.\train\linreg

Tensorboard se nachází na této adrese URL: http://localhost:6006

Může být také umístěn na následujícím místě.

Použijte TensorBoard

Zkopírujte a vložte adresu URL do svého oblíbeného prohlížeče. Měli byste vidět toto:

Všimněte si, že se naučíme, jak číst graf v tutoriálu věnovaném hluboké učení.

Použijte TensorBoard

Pokud vidíte něco takového:

Použijte TensorBoard

Znamená to, že Tensorboard nemůže najít soubor protokolu. Ujistěte se, že jste nasměrovali cd na správnou cestu, nebo dvakrát zkontrolujte, zda byla vytvořena událost protokolu. Pokud ne, spusťte kód znovu.

Pokud chcete zavřít TensorBoard Stiskněte CTRL+C

Tip pro klobouk: Zkontrolujte výzvu anakondy pro aktuální pracovní adresář,

Použijte TensorBoard

Soubor protokolu by měl být vytvořen v C:\Users\Admin

Shrnutí

TensorBoard je skvělý nástroj pro vizualizaci vašeho modelu. Kromě toho se během tréninku zobrazuje mnoho metrik, jako je ztráta, přesnost nebo váhy.

Chcete-li aktivovat Tensorboard, musíte nastavit cestu k souboru:

cd /Users/Guru99/tuto_TF

Aktivujte prostředí Tensorflow

activate hello-tf

Spusťte Tensorboard

tensorboard --logdir=.+ PATH

Shrňte tento příspěvek takto: