2017-09-23 6 views
0

Tensorflow describesグラフの実行を視覚化するためのファイル概要を記述する。トレーニングとテストセットのTensorflow aucサマリーをスムーズに生成する方法は?

私は三つの段階思い描く:(!最適化なし)

  1. は、テストセットの精度を測定する訓練セット(最適化なし)
  2. 上の精度を測定する
  3. (最適化)データを訓練し

wide_and_deep tutorialの評価機能の場合と同じスクリプト内のすべての段階が低レベルAPIであることを希望します。私は損失やAUCのような統計のための3つの異なるグラフを、各段階に1つずつ欲しいと思います。

# define auc 
auc, auc_op = tf.metrics.auc(labels, predictions) 
# summary scalar to track it 
tf.summary.scalar("auc", auc_op, family=family_name) 
# merge all summaries for evaluation and later writing 
summary_op = tf.summary.merge_all() 
... 
summary_writer.add_summary(summary, step_num) 

は3つのグラフがあるが、最初のグラフは、その上にすべての3つのランを有し、第2のグラフがあります。私は1つのセッションを使用し、各段階で、私はAUC要約OPを定義

と仮定最後の2回の実行(下記参照)。さらに悪いことに、各段階は前の状態から始まります。前のステージのすべての変数がまだ周囲にあるので、これは理にかなっています。

ステージごとに異なるセッションを使用することもできますが、モデルを捨てることもできます。

これを処理するにはどうすればよいですか?

いくつかの要約変数をクリアしたいと思います。私はいくつかの変数を再初期化しようとしました。relatedの質問を見て、名前の範囲と変数の範囲について読んで、variablessharingについて読んでください。pruning nodesを見ました(私は理解しません)、など私はまだそれを動作させていない。

私は低レベルのAPIを使用しています。私は_eval_metric_opsの高レベルAPIでこれを見ましたが、私は彼らがどのように異なった段階を「はっきりしているか」理解していません。名前_スコープで?

このためにモデルを新しいセッションに保存してロードする必要がありますか、またはそれぞれのサマリーを別々にグラフ表示するためのきれいな方法がありますか?あなたのメトリックをすべてリセットされますされ、あなたのセッションでtf.local_variables_initializer()を実行することができるように

three graphs

答えて

0

メトリックOPSは、ローカル変数になります。もう少し分かりやすくしたいならば、名前の中に "auc"を持つ人のローカル変数コレクションを調べることもできます。これを行うための高度な方法は、メトリックを管理するEstimatorを使用することです。

+1

ありがとうございます!私は低レベルのAPIを使用する必要があります。私は新しいサマリー・ライターを作成してしまいました。* merge_allを使用していませんでした。これは古いメトリックへの書き込みを続けます。むしろ、最新の段階のメトリクスだけを書くようにしました。 – dfrankow

関連する問題