2017-09-14 1 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

関連する問題