Beim Schreiben von Prüfpunktdateien mit tf.train.MonitoredTrainingSession
schreibt es irgendwie mehrere Metagraphen. Was mache ich falsch?
Ich habe es auf den folgenden Code reduziert:
%Vor%Wenn Sie dies ausführen, erhalten Sie doppelte Metagraphen, wie die Tensorboard-Warnung zeigt:
%Vor%WARNUNG: Tensorflow: Mehr als ein Graphenereignis pro Lauf oder dort gefunden war ein Metagraph mit einem graph_def, sowie einem oder mehreren Graphen Veranstaltungen. Überschreiben der Grafik mit dem neuesten Ereignis. Beginnend TensorBoard 54 bei local: 6006 (Drücken Sie STRG + C, um zu beenden)
Dies ist in tensorflow 1.2.0 (ich kann nicht upgraden).
Wenn Sie dasselbe ohne eine überwachte Sitzung ausführen, erhalten Sie die richtige Prüfpunktausgabe:
%Vor%Ergebnisse ohne Tensorboard-Fehler:
%Vor%Starten von TensorBoard 54 bei local: 6006 (Drücken Sie STRG + C, um zu beenden)
Ich möchte das beheben, da ich vermute, dass ich etwas Grundlegendes vermisse, und dieser Fehler hat möglicherweise eine Verbindung zu anderen Problemen, die ich im verteilten Modus habe. Ich muss Tensorboard immer neu starten, wenn ich die Daten aktualisieren möchte. Darüber hinaus scheint TensorBoard im Laufe der Zeit sehr langsam zu werden, wenn es viele dieser Warnungen ausgibt.
Es gibt eine verwandte Frage: tensorflow Find mehr als eine Graph-Ereignis pro Lauf In diesem Fall waren die Fehler auf mehrere Läufe (mit unterschiedlichen Parametern) zurückzuführen, die in dasselbe Ausgabeverzeichnis geschrieben wurden. Hier handelt es sich um einen einzelnen Lauf zu einem sauberen Ausgabeverzeichnis.
Das Ausführen der MonitoredTrainingSession-Version im verteilten Modus führt zu denselben Fehlern.
Update Oktober-12
@Nikhil Kothari schlug vor, tf.train.MonitoredSession
anstelle des größeren tf.train.MonitoredTrainSession
-Wrappers wie folgt zu verwenden:
Leider gibt es immer noch die gleichen Tensorboard-Fehler:
%Vor%WARNUNG: Tensorflow: Mehr als ein Graphenereignis pro Lauf oder dort gefunden war ein Metagraph mit einem graph_def, sowie einem oder mehreren Graphen Veranstaltungen. Überschreiben der Grafik mit dem neuesten Ereignis. Beginnend TensorBoard 54 bei local: 6006 (Drücken Sie STRG + C, um zu beenden)
Übrigens ist jeder Codeblock eigenständig, copy = füge ihn in ein Jupyter-Notizbuch ein und du wirst das Problem replizieren.
Ich frage mich, ob dies daran liegt, dass jeder Knoten in Ihrem Cluster den gleichen Code ausführt, sich als Chef deklariert und Diagramme und Kontrollpunkte speichert.
Ich tue nicht, wenn das is_chief = True ist nur illustrativ in der Post hier auf Stack Overflow oder das ist genau das, was Sie verwenden ... also raten ein bisschen hier.
Ich persönlich habe MonitoredSession anstelle von MonitoredTrainingSession verwendet und eine Liste von Hooks erstellt, basierend darauf, ob der Code auf dem Master / Chief ausgeführt wird oder nicht. Beispiel: Ссылка
Tags und Links python tensorflow google-cloud-ml