我經常想記錄python變量 - 與tf張量相反。如何手動創建tf.Summary()
在文檔中它說「你可以通過一個tf.Summary
協議緩衝區,你用你自己的數據填充」但沒有文檔tf.Summary
,我不知道如何使用它。
任何人都知道如何創建一個標量總結這種方式?
我經常想記錄python變量 - 與tf張量相反。如何手動創建tf.Summary()
在文檔中它說「你可以通過一個tf.Summary
協議緩衝區,你用你自己的數據填充」但沒有文檔tf.Summary
,我不知道如何使用它。
任何人都知道如何創建一個標量總結這種方式?
你可以在你的Python程序創建一個tf.Summary
對象,並將其寫入相同tf.train.SummaryWriter
對象使用SummaryWriter.add_summary()
方法需要你TensorFlow生產的摘要。
tf.Summary
等級爲the Summary
protocol buffer的Python protocol buffer wrapper。每個Summary
包含一個tf.Summary.Value
協議緩衝區列表,每個協議緩衝區都有一個標記和一個「簡單」(浮點標量)值,一個image,一個histogram或audio snippet。例如,您可以通過以下方式生成從Python對象的標摘要:
writer = tf.train.SummaryWriter(...)
value = 37.0
summary = tf.Summary(value=[
tf.Summary.Value(tag="summary_tag", simple_value=value),
])
writer.add_summary(summary)
如何創建圖像摘要? – Marco
我創建了一個顯示如何創建圖像摘要的要點: https://gist.github.com/gyglim/1f8dfb1b5c82627ae3efcfbbadb9f514#file-tensorboard_logging-py-L41 –
每個時代最後三行是否完成? (我正在從keras做這件事,並試圖找出在哪裏放什麼 - 我猜我的回調'__init__'第1行,其餘'on_epoch_end()'?) –
如果你想記錄一個python值,你必須創建一個佔位符,在運行tf.Summary
操作時必須被提供。
下面是一個代碼剪斷
value_ = tf.placeholder(tf.float32, [])
summary_op = tf.scalar_summary("value_log", value_)
my_python_variable = 10
# define everything else you need...
# ...
with tf.Session() as sess:
for i in range(0, 10):
sess.run(summary_op, feed_dict={value_: my_python_variable*i})
謝謝,但我明確要求一種方法來直接創建Summary protobuf,以便我可以避免這種繁瑣的方法。 –
我需要在訓練中做很多的更新定製摘要變量,這樣我實現了我的,像這樣:
之前循環:
writer = tf.summary.FileWriter(log_folder)
accuracy = None
accuracy_summary = tf.Summary()
accuracy_summary.value.add(tag='accuracy', simple_value=accuracy)
在循環中:
if i%20000 == 0:
accuracy = get_accuracy()
accuracy_summary.value[0].simple_value = accuracy
writer.add_summary(accuracy_summary, i)
我假設指數爲value
的順序是將變量添加到摘要中。
可能重複的[如何將一個任意值添加到TensorFlow摘要?](http://stackoverflow.com/questions/37530228/how-do-i-add-an-arbitrary-value-to-a -tensorflow-summary) – orome