我正在使用PEP 8。我可以运行培训,并在开发集上看到困惑的输出。太棒了!
我只想在事件文件中添加摘要(特别是scalar_summary
,例如dev set的困惑),并在TensorBoard中监控它们。在Seq2Seq example in TensorFlow之后,我不明白如何使用摘要操作来注释reading the documentation。
任何人都可以用简单的伪代码帮助我吗?
答案 0 :(得分:3)
看起来translate.py
根本没有创建TensorBoard摘要日志。 (部分原因可能是大部分评估都发生在Python中,而不是TensorFlow图中。)让我们看看如何添加一个。
您需要创建tf.train.SummaryWriter
。在进入训练循环(here)之前添加以下内容:
summary_writer = tf.train.SummaryWriter("path/to/logs", sess.graph_def)
您需要为每个存储桶中的困惑创建摘要事件。这些值是用Python计算的,因此您无法使用通常的tf.scalar_summary()
操作。相反,您可以通过修改this loop:
tf.Summary
perplexity_summary = tf.Summary()
# Run evals on development set and print their perplexity.
for bucket_id in xrange(len(_buckets)):
encoder_inputs, decoder_inputs, target_weights = model.get_batch(
dev_set, bucket_id)
_, eval_loss, _ = model.step(sess, encoder_inputs, decoder_inputs,
target_weights, bucket_id, True)
eval_ppx = math.exp(eval_loss) if eval_loss < 300 else float('inf')
print(" eval: bucket %d perplexity %.2f" % (bucket_id, eval_ppx))
bucket_value = perplexity_summary.value.add()
bucket_value.tag = "peplexity_bucket)%d" % bucket_id
bucket_value.simple_value = eval_ppx
summary_writer.add_summary(perplexity_summary, model.global_step.eval())
您可以自行构建tf.Summary
值并调用summary_writer.add_summary()
来添加其他指标。