2016-01-02 4 views
5

Derzeit Tensorflow tensorboard is not compatible with python3. Deshalb und generell suche ich nach einer Möglichkeit, die zusammenfassenden Anzeigen einmal in 100 Epochen auszudrucken.Parsing `summary_str` Byte-Zeichenfolge ausgewertet auf Tensorflow-Übersichtsobjekt

Gibt es eine Funktion, die summary_str Byte-Zeichenfolge, die in den folgenden Zeilen erzeugt wird, in ein Wörterbuch von Gleitkommazahlen zu parsen?

summary_op = tf.merge_all_summaries() 
summary_str = sess.run(summary_op, feed_dict=feed_dict) 

Antwort

9

Sie können eine Textdarstellung von summary_str erhalten, indem es in ein tf.Summary Protokollpuffer Parsen wie folgt:

summary_proto = tf.Summary() 
summary_proto.ParseFromString(summary_str) 
print(summary_proto) 

Sie können es dann umwandeln in ein Wörterbuch-Mapping-String-Tags zu Schwimmern:

summaries = {} 
for val in summary_proto.value: 
    # Assuming all summaries are scalars. 
    summaries[val.tag] = val.simple_value 
+0

Ich habe es versucht, die dritte Zeile zu 'print (summary_str, summary_proto, sep =": \ t ")' zu ändern. Was ich bekomme ist 'b '\ n \ x0e \ n \ x07L2_loss \ x15 \ xd4J \ xcdA \ n \ x11 \ n \ nL1_penalty \ x15 \ xef \ xab \ xa6A \ n \ x0b \ n \ x04loss \ x15j \ xa0 \ xeeA \ n \ t \ n \ x02R2 \ x15 @ \ xd8Y \ xbf ': \t Keine. Und deshalb: Keiner hat kein Attribut "value". –

+1

Ah, es gab einen Fehler in meiner ursprünglichen Antwort in der Zeile mit 'ParseFromString()'. Sollte jetzt behoben werden. – mrry

+0

Gibt es eine Option zum Bearbeiten der summary_proto nach dem Parsen? Wenn ich zum Beispiel das Tag ändern und dann wieder in String serialisieren möchte? – aarbelle