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:

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.
- 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.
- 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
- Odešlete data do tenzorů
- Trénujte model
- Zobrazení počtu dávek během tréninku. Uložte model na disk.
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:

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
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ě.
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í.
Pokud vidíte něco takového:
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ář,
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







