2016-07-01 14 views
0

私はTensorBoardの最も簡単な1Dの例を作成しました(二次関数の最小化を追跡します)が、私には意味をなさないプロットが得られます。自分の実装ですか、TensorBoardバグですか?ここでTensorFlowで1Dの例のTensorBoardヒストグラムを読み取るにはどうすればよいですか?

はプロットである:

ヒストグラム:

enter image description here

通常、私は確率分布(または頻度カウント)をコードする棒グラフとしてヒストグラムを考えます。私は、y軸は値を表し、x軸は数を表していると仮定します。私の歩数は合理的な推測のように120だったので、

とスカラープロット:

enter image description here

なぜ私のプロットを通過する奇妙なラインはありますか?

(あなたがそれをコピー&ペーストし、それを実行することができるはずです)生成されたコード:

## run cmd to collect model: python playground.py --logdir=/tmp/playground_tmp 
## show board on browser run cmd: tensorboard --logdir=/tmp/playground_tmp 
## browser: http://localhost:6006/ 

import tensorflow as tf 

# x variable 
x = tf.Variable(10.0,name='x') 
# b placeholder (simualtes the "data" part of the training) 
b = tf.placeholder(tf.float32) 
# make model (1/2)(x-b)^2 
xx_b = 0.5*tf.pow(x-b,2) 
y=xx_b 

learning_rate = 1.0 
# get optimizer 
opt = tf.train.GradientDescentOptimizer(learning_rate) 
# gradient variable list = [ (gradient,variable) ] 
gv = opt.compute_gradients(y,[x]) 
# transformed gradient variable list = [ (T(gradient),variable) ] 
decay = 0.9 # decay the gradient for the sake of the example 
# apply transformed gradients 
tgv = [ (decay*g, v) for (g,v) in gv] #list [(grad,var)] 
apply_transform_op = opt.apply_gradients(tgv) 

# track value of x 
x_scalar_summary = tf.scalar_summary("x", x) 
x_histogram_sumarry = tf.histogram_summary('x_his', x) 
with tf.Session() as sess: 
    merged = tf.merge_all_summaries() 
    tensorboard_data_dump = '/tmp/playground_tmp' 
    writer = tf.train.SummaryWriter(tensorboard_data_dump, sess.graph) 

    sess.run(tf.initialize_all_variables()) 
    epochs = 120 
    for i in range(epochs): 
     b_val = 1.0 #fake data (in SGD it would be different on every epoch) 

     # applies the gradients 
     [summary_str_apply_transform,_] = sess.run([merged,apply_transform_op], feed_dict={b: b_val}) 
     writer.add_summary(summary_str_apply_transform, i) 
+0

私は、統計のオーバーフローに関して同様の味付けされた質問をしました:http://stats.stackexchange.com/questions/220491/how-does-one-interpret-histograms-given-by-tensorflow-in-tensorboard私は、私はバグを作ったと思っていますが、グラフは私にとって奇妙に見えます。 – Pinocchio

+1

複数のイベントファイルがあるようですが、最後の –

+0

@OlivierMoindrot興味のあるもの以外はすべて削除してください。それがうまくいくように見えます、あなたはその理由を知りますか? – Pinocchio

答えて

0

は、私はまた、複数の行がテンソルボードにインスタンス]タブで発生した同じ問題に会った(Iでもあなたのコードを試してみましたが、理事会のサービスが重複警告のみ存在1つの曲線、私よりも)

WARNING:tensorflow:Found more than one graph event per run. Overwriting the graph with the newest event. 

が、それにもかかわらず、解決策は、@Olivier Moindrotが述べたように、古いログを削除し、同じ保持を示し、時にはボードがかもしれないがいくつかの結果をキャッシュしてrにすることができますボードサービスをebootします。 TFバージョンr0.10で、完全なソースへ

if tf.gfile.Exists(FLAGS.summaries_dir): 
    tf.gfile.DeleteRecursively(FLAGS.summaries_dir) 
tf.gfile.MakeDirs(FLAGS.summaries_dir) 

リンク:

MINISTの例が示すように、我々は、最新の要約を提示してくださいする方法は、新しいフォルダにログインすることですhttps://github.com/tensorflow/tensorflow/blob/r0.10/tensorflow/examples/tutorials/mnist/mnist_with_summaries.py

関連する問題