2017-09-14 46 views
2

我想在TensorBoard中記錄一些任意的字符串。如何構建TensorFlow中的任意文本摘要?

我知道如何做到這一點的任意標量:

from tensorflow.core.framework import summary_pb2 
value = summary_pb2.Summary.Value(tag='Accuracy', simple_value=0.95) 
my_summary = summary_pb2.Summary(value=[value]) 

summary_writer = tf.summary.FileWriter() 
summary_writer.add_summary(summary) 

但如何做同樣的事情,但對於任意文本摘要
喜歡的東西(不存在):

value = summary_pb2.Summary.Text(tag='MyTag', str='Arbitrary text come here') 

UPD:注意,我提供了一個例子,如何不調用session.run(...)創建任意標總結。我希望能夠做到這一點文本以及。

回答

3

我一直在尋找答案。在TensorFlow/Board的某些源代碼中查看,我發現了一種似乎可行的方法(我不知道是否存在更簡單的解決方案)。

value = "Random text" 
text_tensor = tf.make_tensor_proto(value, dtype=tf.string) 
meta = tf.SummaryMetadata() 
meta.plugin_data.plugin_name = "text" 
summary = tf.Summary() 
summary.value.add(tag="whatever", metadata=meta, tensor=text_tensor) 
summary_writer.add_summary(summary) 
+0

由於某種原因,這張圖不會出現在我的張力板上。 – Zuoanqh

2

您必須利用tf.summary.text模塊。檢查下面這個簡單的例子:

summary_op1 = tf.summary.text('tag1', tf.convert_to_tensor('Tag1: Random Text 1')) 
summary_op2 = tf.summary.text('tag2', tf.convert_to_tensor('Tag2: Random Text 2')) 
summary_op3 = tf.summary.text('tag3', tf.convert_to_tensor('Tag3: Random Text 3')) 

with tf.Session() as sess: 
    summary_writer = tf.summary.FileWriter('./Tensorboard', sess.graph) 
    for index, summary_op in enumerate([summary_op1, summary_op2, summary_op3]): 
     text = sess.run(summary_op) 
     summary_writer.add_summary(text, index) 
summary_writer.close() 

你會得到一個輸出這樣的事情在Tensorboard:

enter image description here

希望這個答案可以幫助你。

+0

這不是我要找的。我想創建一個任意的文本摘要而不用調用'session.run(...)'。看看我是如何爲標量值做的。 – Temak

相關問題