1

TensorFlowでSeq2Seq の例を扱っています。トレーニングを実行して、開発セットで perplexity の出力を確認できます。それは素晴らしい!

イベント ファイルに要約 (特にscalar_summary開発セットの困惑など) を追加し、TensorBoard で監視したいだけです。ドキュメントを読んだtranslate.py、要約操作で注釈を付ける方法がわかりません。

誰でも簡単な疑似コードで私を助けることができますか?

4

1 に答える 1

3

translate.pyTensorBoard の要約ログをまったく作成していないようです。(理由の一部は、評価の多くが TensorFlow グラフではなく Python で行われるためかもしれません。) 追加する方法を見てみましょう。

  1. を作成する必要がありますtf.train.SummaryWriter。トレーニング ループに入る前に、次を追加します ( here )。

    summary_writer = tf.train.SummaryWriter("path/to/logs", sess.graph_def)
    
  2. 各バケットで困惑の要約イベントを作成する必要があります。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())
    
  3. tf.Summary値を自分で作成して を呼び出すことで、他のメトリックを追加できますsummary_writer.add_summary()

于 2016-03-12T21:00:39.667 に答える