2017-02-15 57 views
3

我正在訓練一個簡單的TensorFlow模型。培訓方面工作正常,但沒有日誌正在寫入/tmp/tensorflow_logs,我不知道爲什麼。誰能提供一些見解?謝謝TensorFlow FileWriter未寫入文件

# import MNIST 
from tensorflow.examples.tutorials.mnist import input_data 
mnist = input_data.read_data_sets("MNIST_data/", one_hot=True) 

import tensorflow as tf 

# set parameters 
learning_rate = 0.01 
training_iteration = 30 
batch_size = 100 
display_step = 2 

# TF graph input 
x = tf.placeholder("float", [None, 784]) 
y = tf.placeholder("float", [None, 10]) 

# create a model 

# set model weights 
# 784 is the dimension of a flattened MNIST image 
W = tf.Variable(tf.zeros([784, 10])) 
b = tf.Variable(tf.zeros([10])) 

with tf.name_scope("Wx_b") as scope: 
    # construct linear model 
    model = tf.nn.softmax(tf.matmul(x, W) + b) #softmax 

# add summary ops to collect data 
w_h = tf.summary.histogram("weights", W) 
b_h = tf.summary.histogram("biases", b) 

with tf.name_scope("cost_function") as scope: 
    # minimize error using cross entropy 
    cost_function = -tf.reduce_sum(y*tf.log(model)) 
    # create a summary to monitor the cost function 
    tf.summary.scalar("cost_function", cost_function) 

with tf.name_scope("train") as scope: 
    # gradient descent 
    optimizer = tf.train.GradientDescentOptimizer(learning_rate).minimize(cost_function) 

init = tf.global_variables_initializer() 

# merge all summaries into a single operator 
merged_summary_op = tf.summary.merge_all() 

# launch the graph 
with tf.Session() as sess: 
    sess.run(init) 

    # set the logs writer to the folder /tmp/tensorflow_logs 
    summary_writer = tf.summary.FileWriter('/tmp/tensorflow_logs', graph=sess.graph) 

    # training cycle 
    for iteration in range(training_iteration): 
     avg_cost = 0. 
     total_batch = int(mnist.train.num_examples/batch_size) 
     # loop over all batches 
     for i in range(total_batch): 
      batch_xs, batch_ys = mnist.train.next_batch(batch_size) 
      # fit training using batch data 
      sess.run(optimizer, feed_dict={x: batch_xs, y: batch_ys}) 
      # compute the average loss 
      avg_cost += sess.run(cost_function, feed_dict={x: batch_xs, y: batch_ys})/total_batch 
      # write logs for each iteration 
      summary_str = sess.run(merged_summary_op, feed_dict={x: batch_xs, y: batch_ys}) 
      summary_writer.add_summary(summary_str, iteration*total_batch + i) 
     # display logs per iteration step 
     if iteration % display_step == 0: 
      print("Iteration:", '%04d' % (iteration + 1), "cost= ", "{:.9f}".format(avg_cost)) 

    print("Tuning completed!") 

    # test the model 
    predictions = tf.equal(tf.argmax(model, 1), tf.argmax(y, 1)) 
    # calculate accuracy 
    accuracy = tf.reduce_mean(tf.cast(predictions, "float")) 
    print("Accuracy:", accuracy.eval({x: mnist.test.images, y: mnist.test.labels})) 


print("Success!") 
+0

你可以在最後嘗試'summary_writer.close()'嗎? – drpng

+0

@drpng我改變了這一點,並添加了summary_writer.flush()以及將目標文件夾從/ tmp/...更改爲tmp/...,然後運行了 –

+0

你是在windows上嗎? –

回答

4

改變從/temp/...的文件路徑temp/...並添加summary_writer.flush()summary_writer.close()所做的日誌中成功寫入的組合。

+0

在開始爲我工作的路徑中刪除正斜槓'/'。謝謝! –

相關問題