Ich versuche, eine TensorBoard-Protokollierung zu einem Modell hinzuzufügen, das die neue tf.estimator-API verwendet.
Ich habe einen Haken wie folgt eingerichtet:
%Vor% In meiner model_fn
erstelle ich auch eine summary
-
Wenn ich diesen Code ausführe, erhalte ich den folgenden Fehler von summary_hook
:
Exactly one of scaffold or summary_op must be provided.
Dies liegt wahrscheinlich daran, dass tf.summary.merge_all()
keine Zusammenfassungen findet und None
zurückgibt, trotz der tf.summary.scalar
, die ich in model_fn
deklariert habe.
Irgendwelche Ideen, warum das nicht funktionieren würde?
Nur für diejenigen, die diese Frage in der Zukunft haben, funktioniert die ausgewählte Lösung nicht für mich (siehe meine Kommentare in der ausgewählten Lösung).
Tatsächlich muss man mit der TF 1.2 Estimator API summary_hook nicht haben. Ich habe nur tf.summary.scalar("loss", loss)
in der model_fn, und führen Sie den Code ohne summary_hook. Der Verlust wird aufgezeichnet und im Tensorboard angezeigt. Ich bin nicht sicher, ob TF API nach diesen und ähnlichen Fragen geändert wurde.
Verwenden Sie tf.train.Scaffold()
und übergeben Sie tf.merge_all
wie folgt
mit Tensorflow ver-r1.3
Fügen Sie Ihre zusammenfassenden Ops in Ihren Schätzer model_fn
Beispiel:
%Vor% Wenn Sie das Gefühl haben, dass das Schreiben von Zusammenfassungen Zeit und Platz kostet, können Sie die Schreibhäufigkeit von Zusammenfassungen in Ihrem Schätzer run_config
Hinweis: Dies wirkt sich auf die gesamte summary writer-Häufigkeit für die TensorBoard-Protokollierung Ihres Schätzers () aus tf.estimator.Estimator )
Tags und Links python tensorflow