2017-10-09 2 views
4

Ich habe große Grafik mit zwei Teilen, ich laufe der Reihe nach. Beide haben Zusammenfassungen.Wie werden nicht alle Zusammenfassungen im Tensorflow zusammengeführt?

Ich rufe Zusammenfassungen mit Knoten

merged_summary = tf.summary.merge_all() 

aber bemerkt, dass es Tensoren in der zweiten Hälfte des Graphen verursacht evalueted bevor es Sinn hat.

Also, wie nur Zusammenfassungen der Hälfte meiner Grafik zusammenführen?

+0

Wenn eine der Antworten, die Sie geholfen haben, markieren Sie bitte eine korrekte, damit die Menschen wissen, was funktioniert hat, wenn Sie werden in Zukunft auf Ihre Frage stoßen. – Engineero

Antwort

5

vorausgesetzt, Sie zwei Listen von Zusammenfassungen der ersten und der zweiten Graphen haben, das heißt:

summaries_first = [tf.summary.image("my_first_graph_input", image), ...] 
summary_second = [tf.summary.scalar("my_second_graph_loss"), ..] 

merge jede Liste in eine einzige Zusammenfassung op:

first_graph_summary_op = tf.summary.merge(summaries_first) 
second_graph_summary_op = tf.summary.merge(summary_second) 

jetzt, wenn Sie ein ausführen sess.run() in jedem Diagramm, bewerten Sie es entsprechende Zusammenfassung op und schreiben Sie es.

3

Ich glaube, Sie können einfach tf.summary.merge verwenden und eine Liste der Zusammenfassungen übergeben, die Sie zusammenführen möchten. Zum Beispiel, wenn Sie die Zusammenfassungen haben:

cost_summary = tf.summary.scalar('cost_sum', cost) # for some 'cost' tensor 
grad_summary = tf.summary.scalar('grad_sum', grad) # for some 'grad' tensor 

Sie sie mit Namen mit fusionieren können:

merged = tf.summary.merge([cost_summary, grad_summary]) 
Verwandte Themen