0
我想在這個page上tensorflow的入門示例。我想打印一下cross_entropy,但什麼也沒有。 這裏是代碼,它也可以從here引用。tensorflow,如何做tf.Print在mnist爲ml初學者
from tensorflow.examples.tutorials.mnist import input_data
import tensorflow as tf
import numpy as np
mnist = input_data.read_data_sets("MNIST_data/", one_hot=True)
x = tf.placeholder(tf.float32, [None, 784])
y_ = tf.placeholder(tf.float32, [None, 10])
W = tf.Variable(tf.zeros([784, 10]))
b = tf.Variable(tf.zeros([10]))
y = tf.matmul(x, W) + b
cross_entropy = tf.reduce_mean(tf.nn.softmax_cross_entropy_with_logits(logits=y, labels=y_))
cross_entropy = tf.Print(cross_entropy, [cross_entropy], "###")
train_step = tf.train.GradientDescentOptimizer(0.5).minimize(cross_entropy)
sess = tf.InteractiveSession()
tf.global_variables_initializer().run()
for _ in range(1000):
batch_xs, batch_ys = mnist.train.next_batch(100)
sess.run(train_step, feed_dict={x: batch_xs, y_: batch_ys})
correct_prediction = tf.equal(tf.argmax(y,1), tf.argmax(y_,1))
accuracy = tf.reduce_mean(tf.cast(correct_prediction, tf.float32))
print(sess.run(accuracy, feed_dict={x: mnist.test.images, y_: mnist.test.labels}))
我無法找出原因tf.Print
,這勢必會cross_entropy,印刷沒有在每個循環。
我想我已經綁定了tf.Print - > cross_entropy - > train_step並運行這個train_step。我的問題是什麼?
所以原因是tensorflow評估過程沒有正確由於錯誤的變量綁定執行? –
我並不完全確定評估執行不正確。我建議你在GitHub上打開一個鏈接這個線程的問題:也許TF開發人員可以理解並向我們解釋爲什麼沒有'tf.control_dependencies'' tf.Print'不起作用。我的猜測是'cross_entropy'成爲一個參考節點,而不是一個真正的節點,因此沒有任何東西流入參考,但這只是我對tensorflow如何工作的理解。打開這個問題,然後在這裏鏈接,我也很感興趣(也許這是一個錯誤!)。 – nessuno