Ich habe mit Keras ein neuronales Netzwerk aufgebaut. Ich würde seine Daten mit Tensorboard visualisieren, daher habe ich verwendet:
keras.callbacks.TensorBoard(log_dir='/Graph', histogram_freq=0,
write_graph=True, write_images=True)
wie in keras.io erklärt . Wenn ich den Rückruf starte, erhalte ich <keras.callbacks.TensorBoard at 0x7f9abb3898>
, aber ich bekomme keine Datei in meinem Ordner "Graph". Stimmt etwas nicht, wie ich diesen Rückruf verwendet habe?
keras
tensorboard
Simone
quelle
quelle
histogram_freq
zu1
. "histogram_freq: Häufigkeit (in Epochen), mit der Aktivierungshistogramme für die Ebenen des Modells berechnet werden. Wenn der Wert auf 0 gesetzt ist, werden Histogramme nicht berechnet."Antworten:
Diese Zeile erstellt ein Callback Tensorboard-Objekt. Sie sollten dieses Objekt erfassen und der
fit
Funktion Ihres Modells zuweisen .Auf diese Weise haben Sie der Funktion Ihr Rückrufobjekt übergeben. Es wird während des Trainings ausgeführt und gibt Dateien aus, die mit Tensorboard verwendet werden können.
Wenn Sie die während des Trainings erstellten Dateien visualisieren möchten, führen Sie sie in Ihrem Terminal aus
Hoffe das hilft !
quelle
So verwenden Sie den TensorBoard-Rückruf :
quelle
histogram_freq=0
ist, wenn Tensorboard kein Histogramm von protokollierttf.summary.histogram
- andernfalls isthistogram_freq
es NICHT gleich 0!Veränderung
zu
und stellen Sie Ihr Modell ein
Führen Sie in Ihrem Terminal
quelle
AttributeError: 'TensorBoard' object has no attribute 'set_model'
.Wenn Sie mit der Keras-Bibliothek arbeiten und Tensorboard zum Drucken Ihrer Genauigkeitsdiagramme und anderer Variablen verwenden möchten, gehen Sie wie folgt vor.
Schritt 1: Initialisieren Sie die Keras-Rückrufbibliothek mit dem folgenden Befehl, um Tensorboard zu importieren
Schritt 2: Fügen Sie den folgenden Befehl direkt vor dem Befehl "model.fit ()" in Ihr Programm ein.
Hinweis: Verwenden Sie "./graph". Der Diagrammordner wird in Ihrem aktuellen Arbeitsverzeichnis generiert. Vermeiden Sie die Verwendung von "/ graph".
Schritt 3: Fügen Sie einen Tensorboard-Rückruf in "model.fit ()" ein. Das Beispiel ist unten angegeben.
Schritt 4: Führen Sie Ihren Code aus und prüfen Sie, ob sich Ihr Diagrammordner in Ihrem Arbeitsverzeichnis befindet. Wenn die oben genannten Codes korrekt funktionieren, befindet sich in Ihrem Arbeitsverzeichnis der Ordner "Graph".
Schritt 5: Öffnen Sie Terminal in Ihrem Arbeitsverzeichnis und geben Sie den folgenden Befehl ein.
Schritt 6: Öffnen Sie nun Ihren Webbrowser und geben Sie die folgende Adresse ein.
Nach der Eingabe wird die Tensorbaord-Seite geöffnet, auf der Sie Ihre Diagramme verschiedener Variablen sehen können.
quelle
histogram_freq=0
ist, wenn Tensorboard kein Histogramm von protokollierttf.summary.histogram
- andernfalls isthistogram_freq
es NICHT gleich 0!Hier ist ein Code:
Grundsätzlich
histogram_freq=2
ist dies der wichtigste Parameter, der beim Aufrufen dieses Rückrufs optimiert werden muss: Er legt ein Intervall von Epochen fest, in denen der Rückruf aufgerufen wird, mit dem Ziel, weniger Dateien auf Datenträgern zu generieren.Hier ist eine beispielhafte Visualisierung der Entwicklung der Werte für die letzte Faltung während des Trainings, die einmal in TensorBoard unter der Registerkarte "Histogramme" angezeigt wurde (und ich fand, dass die Registerkarte "Verteilungen" sehr ähnliche Diagramme enthielt, aber auf der Seite umgedreht war):
Wenn Sie ein vollständiges Beispiel im Kontext sehen möchten, können Sie auf dieses Open-Source-Projekt verweisen: https://github.com/Vooban/Hyperopt-Keras-CNN-CIFAR-100
quelle
Wenn Sie Google-Colab verwenden, wäre eine einfache Visualisierung des Diagramms:
quelle
Du hast geschrieben,
log_dir='/Graph'
meintest du./Graph
stattdessen? Du hast es/home/user/Graph
im Moment an geschickt.quelle
/Graph
ein Ordner im Home-Verzeichnis des Benutzers erstellt werden, anstatt nur/Graph
direkt zu verwenden?Sie sollten sich Losswise ( https://losswise.com ) ansehen . Es enthält ein Plugin für Keras, das einfacher zu verwenden ist als Tensorboard und einige nette zusätzliche Funktionen bietet. Mit Losswise würden Sie nur
from losswise.libs import LosswiseKerasCallback
und dann verwendencallback = LosswiseKerasCallback(tag='my fancy convnet 1')
und los geht's (siehe https://docs.losswise.com/#keras-plugin ).quelle
Es gibt wenige Dinge.
Erstens nicht
/Graph
aber./Graph
Zweitens, wenn Sie den TensorBoard-Rückruf verwenden, übergeben Sie immer Validierungsdaten, da diese ohne sie nicht starten würden.
Drittens, wenn Sie etwas anderes als skalare Zusammenfassungen verwenden möchten, sollten Sie nur die
fit
Methode verwenden, da diesfit_generator
nicht funktioniert. Oder Sie können den Rückruf neu schreiben, um damit zu arbeitenfit_generator
.Um Rückrufe hinzuzufügen, fügen Sie sie einfach hinzu
model.fit(..., callbacks=your_list_of_callbacks)
quelle
Erstellen Sie den Tensorboard-Rückruf:
Übergeben Sie den Tensorboard-Rückruf an den Fit-Aufruf:
Wenn Sie beim Ausführen des Modells einen Keras-Fehler von erhalten
Versuchen Sie, die Keras-Sitzung vor der Modellerstellung zurückzusetzen, indem Sie Folgendes tun:
quelle
You must feed a value for placeholder tensor
. Irgendeine Idee warum?