TensorBoard-Tutorial: TensorFlow-Graph-Visualisierung [Beispiel]

Was ist TensorBoard?

TensorBoard ist die Schnittstelle zur Visualisierung des Diagramms und anderer Tools zum Verstehen, Debuggen und Optimieren des Modells. Es handelt sich um ein Tool, das Messungen und Visualisierungen fรผr den Workflow des maschinellen Lernens bereitstellt. Es hilft, Metriken wie Verlust und Genauigkeit, Modelldiagrammvisualisierung, Projekteinbettung in niedrigerdimensionalen Rรคumen usw. zu verfolgen.

TensorFlow-Diagrammvisualisierung anhand eines Tensorboard-Beispiels

Das Bild unten stammt aus dem TensorBoard-Diagramm, das Sie in diesem TensorBoard-Tutorial erstellen werden. Es ist das Hauptpanel:

Visualisierung von TensorFlow-Graphen
Visualisierung von TensorFlow-Graphen

Auf dem Bild unten sehen Sie das Panel der TensorBoard-Grafikvisualisierung. Das Bedienfeld enthรคlt verschiedene Registerkarten, die mit der Informationsebene verknรผpft sind, die Sie beim Ausfรผhren des Modells hinzufรผgen.

TensorBoard-Diagramme

TensorBoard-Diagramme
  • Skalare: Verschiedene nรผtzliche Informationen wรคhrend des Modelltrainings anzeigen
  • Graphs: Modell anzeigen
  • Histogramm: Gewichte mit einem Histogramm anzeigen
  • Vertrieb: Zeigt die Gewichtsverteilung an
  • Projektor: Hauptkomponentenanalyse und T-SNE-Algorithmus anzeigen. Die zur Dimensionsreduktion verwendete Technik

In diesem TensorBoard-Tutorial trainieren Sie ein einfaches Deep-Learning-Modell. Wie es funktioniert, erfahren Sie in einem zukรผnftigen Tutorial.

Wenn Sie sich die Grafik ansehen, kรถnnen Sie verstehen, wie das Modell funktioniert.

  1. Stellen Sie die Daten in die Warteschlange des Modells: รœbertragen Sie eine Datenmenge, die der StapelgrรถรŸe entspricht, in das Modell, d. h. die Anzahl der Datenfeeds nach jeder Iteration
  2. Geben Sie die Daten an die Tensoren weiter
  3. Trainiere das Modell
  4. Zeigen Sie die Anzahl der Chargen wรคhrend des Trainings an. Speichern Sie das Modell auf der Festplatte.

TensorFlow-Diagrammvisualisierung anhand eines Tensorboard-Beispiels

Die Grundidee hinter Tensorboard ist, dass ein neuronales Netzwerk eine Art Blackbox sein kann und wir ein Tool benรถtigen, um zu untersuchen, was sich in dieser Box befindet. Sie kรถnnen sich Tensorboard als Taschenlampe vorstellen, mit der Sie in das neuronale Netzwerk eintauchen kรถnnen.

Es hilft, die Abhรคngigkeiten zwischen Operationen zu verstehen, wie die Gewichte berechnet werden, zeigt die Verlustfunktion und viele andere nรผtzliche Informationen an. Wenn Sie all diese Informationen zusammenfรผhren, haben Sie ein groรŸartiges Tool zum Debuggen und Finden von Mรถglichkeiten zur Verbesserung des Modells.

Um Ihnen eine Vorstellung davon zu geben, wie nรผtzlich das TensorBoard-Diagramm sein kann, sehen Sie sich das Bild unten an:

TensorBoard-Diagramme
TensorBoard-Diagramm

Ein neuronales Netzwerk entscheidet, wie die verschiedenen โ€žNeuronenโ€œ verbunden werden und wie viele Schichten vorhanden sind, bevor das Modell ein Ergebnis vorhersagen kann. Sobald Sie die Architektur definiert haben, mรผssen Sie nicht nur das Modell trainieren, sondern auch eine Metrik festlegen, um die Genauigkeit der Vorhersage zu berechnen. Diese Metrik wird als verlustfunktion. Das Ziel besteht darin, die Verlustfunktion zu minimieren. Mit anderen Worten bedeutet dies, dass das Modell weniger Fehler macht. Alle Algorithmen des maschinellen Lernens wiederholen die Berechnungen so oft, bis der Verlust eine flachere Linie erreicht. Um diese Verlustfunktion zu minimieren, mรผssen Sie Folgendes definieren: Lernrate. Es ist die Geschwindigkeit, die das Modell lernen soll. Wenn Sie die Lernrate zu hoch einstellen, hat das Modell keine Zeit, etwas zu lernen. Dies ist im linken Bild der Fall. Die Linie bewegt sich nach oben und unten, was bedeutet, dass das Modell das Ergebnis anhand reiner Schรคtzungen vorhersagt. Das Bild rechts zeigt, dass der Verlust im Laufe der Iteration abnimmt, bis die Kurve flacher wird, was bedeutet, dass das Modell eine Lรถsung gefunden hat.

TensorBoard ist ein groรŸartiges Tool, um solche Metriken zu visualisieren und potenzielle Probleme hervorzuheben. Das neuronale Netzwerk kann Stunden bis Wochen brauchen, bis es eine Lรถsung findet. TensorBoard aktualisiert die Metriken sehr oft. In diesem Fall mรผssen Sie nicht bis zum Ende warten, um zu sehen, ob das Modell richtig trainiert wird. Sie kรถnnen TensorBoard รถffnen, um zu รผberprรผfen, wie das Training verlรคuft, und bei Bedarf die entsprechenden ร„nderungen vornehmen.

Wie verwende ich TensorBoard?

In diesem Tutorial erfahren Sie, wie Sie TensorBoard vom Terminal fรผr MacOS und die Befehlszeile TensorBoard fรผr รถffnen Windows.

Der Code wird in einem zukรผnftigen Tutorial erklรคrt, der Fokus liegt hier auf TensorBoard.

Zunรคchst mรผssen Sie die Bibliotheken importieren, die Sie wรคhrend des Trainings verwenden werden

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

Sie erstellen die Daten. Es handelt sich um ein Array mit 10000 Zeilen und 5 Spalten

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

Ausgang

(10000, 5)

Die folgenden Codes transformieren die Daten und erstellen das Modell.

Beachten Sie, dass die Lernrate 0.1 betrรคgt. Wenn Sie diese Rate auf einen hรถheren Wert รคndern, findet das Modell keine Lรถsung. Dies geschah auf der linken Seite des obigen Bildes.

Wรคhrend der meisten TensorFlow-Tutorials, verwenden Sie den TensorFlow-Schรคtzer. Dies ist die TensorFlow-API, die alle mathematischen Berechnungen enthรคlt.

Um die Protokolldateien zu erstellen, mรผssen Sie den Pfad angeben. Dies geschieht mit dem Argument model_dir.

Im TensorBoard-Beispiel unten speichern Sie das Modell im Arbeitsverzeichnis, also dort, wo Sie die Notebook- oder Python-Datei speichern. Innerhalb dieses Pfads erstellt TensorFlow einen Ordner namens train mit einem untergeordneten Ordner namens 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    
      )
)

Ausgang

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}

Der letzte Schritt dieses TensorFlow-Visualisierungsdiagrammbeispiels besteht darin, das Modell zu trainieren. Wรคhrend des Trainings schreibt TensorFlow Informationen in das Modellverzeichnis.

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

Ausgang

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>

Fรผr MacOS-Benutzer

TensorBoard-Tutorial fรผr MacOS-Benutzer

Fรผr Windows Benutzer

TensorBoard-Tutorial fรผr Windows Mitglied

Sie kรถnnen diese Informationen im einsehenPyTorch TensorBoard.

Nachdem Sie nun die Protokollereignisse geschrieben haben, kรถnnen Sie Tensorboard รถffnen. Tensorboard Keras lรคuft auf Port 6006 (Jupyter lรคuft auf Port 8888). Sie kรถnnen das Terminal fรผr MacOs-Benutzer oder die Anaconda-Eingabeaufforderung verwenden fรผr Windows Benutzer.

Fรผr MacOS-Benutzer

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

Das Notizbuch wird im Pfad /Users/Guru99/tuto_TF gespeichert

Fรผr Windows Nutzer

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

Das Notizbuch wird im Pfad C:\Users\Admin\Anaconda3 gespeichert

Um Tensorboard zu starten, kรถnnen Sie diesen Code verwenden

Fรผr MacOS-Benutzer

tensorboard --logdir=./train/linreg

Fรผr Windows Nutzer

tensorboard --logdir=.\train\linreg

Tensorboard befindet sich unter dieser URL: http://localhost:6006

Es kรถnnte sich auch an folgender Stelle befinden.

Verwenden Sie TensorBoard

Kopieren Sie die URL und fรผgen Sie sie in Ihren bevorzugten Browser ein. Sie sollten Folgendes sehen:

Beachten Sie, dass wir in dem entsprechenden Tutorial lernen werden, wie man die Grafik liest tiefe Lernen.

Verwenden Sie TensorBoard

Wenn Sie so etwas sehen:

Verwenden Sie TensorBoard

Das bedeutet, dass Tensorboard die Protokolldatei nicht finden kann. Stellen Sie sicher, dass Sie die CD auf den richtigen Pfad verweisen, oder รผberprรผfen Sie noch einmal, ob das Protokollereignis erstellt wurde. Wenn nicht, fรผhren Sie den Code erneut aus.

Wenn Sie TensorBoard schlieรŸen mรถchten, drรผcken Sie STRG+C

Tipp: รœberprรผfen Sie Ihre Anaconda-Eingabeaufforderung auf das aktuelle Arbeitsverzeichnis.

Verwenden Sie TensorBoard

Die Protokolldatei sollte unter C:\Benutzer\Admin erstellt werden

Zusammenfassung

TensorBoard ist ein groรŸartiges Tool zur Visualisierung Ihres Modells. AuรŸerdem werden wรคhrend des Trainings viele Metriken angezeigt, wie z. B. Verlust, Genauigkeit oder Gewichte.

Um Tensorboard zu aktivieren, mรผssen Sie den Pfad Ihrer Datei festlegen:

cd /Users/Guru99/tuto_TF

Aktivieren Sie die Tensorflow-Umgebung

activate hello-tf

Starten Sie Tensorboard

tensorboard --logdir=.+ PATH

Fassen Sie diesen Beitrag mit folgenden Worten zusammen: