TensorFlowでSeq2Seq の例を扱っています。トレーニングを実行して、開発セットで perplexity の出力を確認できます。それは素晴らしい!
イベント ファイルに要約 (特にscalar_summary
開発セットの困惑など) を追加し、TensorBoard で監視したいだけです。ドキュメントを読んだ後translate.py
、要約操作で注釈を付ける方法がわかりません。
誰でも簡単な疑似コードで私を助けることができますか?
TensorFlowでSeq2Seq の例を扱っています。トレーニングを実行して、開発セットで perplexity の出力を確認できます。それは素晴らしい!
イベント ファイルに要約 (特にscalar_summary
開発セットの困惑など) を追加し、TensorBoard で監視したいだけです。ドキュメントを読んだ後translate.py
、要約操作で注釈を付ける方法がわかりません。
誰でも簡単な疑似コードで私を助けることができますか?
translate.py
TensorBoard の要約ログをまったく作成していないようです。(理由の一部は、評価の多くが TensorFlow グラフではなく Python で行われるためかもしれません。) 追加する方法を見てみましょう。
を作成する必要がありますtf.train.SummaryWriter
。トレーニング ループに入る前に、次を追加します ( here )。
summary_writer = tf.train.SummaryWriter("path/to/logs", sess.graph_def)
各バケットで困惑の要約イベントを作成する必要があります。tf.scalar_summary()
これらの値は Python で計算されるため、通常のopは使用できません。代わりに、このループ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()
。