2016-06-24 3 views
0

、コードの抜粋:Tensorflowでトレーニング中にエラーの値を取得するにはどうすればよいですか?ここTensorFlow MNIST初心者チュートリアル

cross_entropy = tf.reduce_mean(-tf.reduce_sum(y_ * tf.log(y), reduction_indices=[1])) 
train_step = tf.train.GradientDescentOptimizer(0.5).minimize(cross_entropy) 
sess = tf.Session() 
sess.run(init) 

#-----training loop starts here----- 
for i in range(1000): 
    batch_xs, batch_ys = mnist.train.next_batch(100) 
    sess.run(train_step, feed_dict={x: batch_xs, y_: batch_ys}) 

は、それがアクセスすることが可能である/ whileループ内cross_entropyエラー、ウェイト、およびバイアスの値を取得しますか?私は誤差をプロットしたいと思います。

ありがとうございます!

+0

は[TensorBoard](https://www.tensorflow.org/versions/r0.9/how_tos/summaries_and_tensorboard/index.html#tensorboard-visualizing-learning)を見てください。 – hbaderts

答えて

3

は、TensorBoardはそのためのものです。

ここではどのようにすることができます。

まず、テンソルのmin、max、mean、std-devを記録する関数を定義しましょう。

def variable_summaries(var, name): 

    with tf.name_scope("summaries"): 
    mean = tf.reduce_mean(var) 
    tf.scalar_summary('mean/' + name, mean) 

    with tf.name_scope('stddev'): 
     stddev = tf.sqrt(tf.reduce_sum(tf.square(var - mean))) 

    tf.scalar_summary('stddev/' + name, stddev) 
    tf.scalar_summary('max/' + name, tf.reduce_max(var)) 
    tf.scalar_summary('min/' + name, tf.reduce_min(var)) 
    tf.histogram_summary(name, var) 

次に、以下のようなグラフを作成した後に要約操作を作成します。 このコードは、 "mnist_tf_log"ディレクトリにクロスエントロピーを持つ第1層の重みとバイアスを保存します。

variable_summaries(W_fc1, "W_fc1") 
variable_summaries(b_fc1, "b_fc1") 
tf.scalar_summary("cross_entropy:", cross_entropy) 

summary_op = tf.merge_all_summaries() 
summary_writer = tf.train.SummaryWriter("mnist_tf_log", graph_def=sess.graph) 

これですべての設定が完了しました。 summary_opを返してこれらのデータを記録し、summary_writerに渡すことができます。

ここでは、10回のトレーニングステップごとにログを記録する例を示します。

for i in range(1000): 
    batch_xs, batch_ys = mnist.train.next_batch(100) 
    if i % 10 == 0: 
     _, summary_str = sess.run([train_step, summary_op], feed_dict={x: batch_xs, y_: batch_ys}) 
     summary_writer.add_summary(summary_str, i) 
     summary_writer.flush() 
    else: 
     sess.run(train_step, feed_dict={x: batch_xs, y_: batch_ys}) 

コードを実行した後にTensorBoardを実行します。

python /path/to/tensorboard/tensorboard.py --logdir=mnist_tf_log 

あなたのウェブブラウザでhttp://localhost:6006を開いて結果を見ることができます。

enter image description here

関連する問題