2016-01-02 9 views
5

Obecnie jest to tensorflow tensorboard is not compatible with python3. Dlatego też, ogólnie rzecz biorąc, szukam sposobu, aby wydrukować podsumowania raz w 100 epokach.Analizowanie ciągu `summary_str` ciąg bajtów obliczane na obiekcie podsumowania tensorflow

Czy istnieje funkcja do analizy ciągu bajtów summary_str utworzonego w poniższych wierszach w słowniku znaków pływających?

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

Odpowiedz

9

Można dostać tekstową reprezentację summary_str analizując je w buforze protokołu tf.Summary następująco:

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

można następnie przekształcić go w słowniku mapowania tagów ciąg do pływaków:

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

Próbowałem go, modyfikując trzecią linię do 'print (summary_str, summary_proto, sep =": \ t ")'. Otrzymuję: '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 Brak ". A zatem: Żaden nie ma atrybutu "wartość". –

+1

Ah, wystąpił błąd w mojej oryginalnej odpowiedzi na linii z 'ParseFromString()'. Powinien być teraz naprawiony. – mrry

+0

Czy istnieje opcja edytowania summary_proto po parsowaniu? Czy na przykład chciałbym zmienić tag, a następnie serializować z powrotem do napisu? – aarbelle