gpt4 book ai didi

python - 如何在 tensorflow mnist_softmax.py 中打印张量的值

转载 作者:太空宇宙 更新时间:2023-11-04 10:13:04 25 4
gpt4 key购买 nike

我刚刚尝试在 TensorFlow 0.8 中运行 mnist_softmax.py。我想在模型测试步骤之前观察 yy_ 的值。

代码如下:

print(y)  # added by me
print(y_) # added by me

# Test trained model
correct_prediction = tf.equal(tf.argmax(y, 1), tf.argmax(y_, 1))

完整代码可在 GitHub 上获得.

下面是输出:

Tensor("Softmax:0", shape=(?, 10), dtype=float32)
Tensor("Placeholder_1:0", shape=(?, 10), dtype=float32)

我也尝试过使用 sess.run(y)y.eval(),但是当我尝试时出现这样的错误:

tensorflow.python.framework.errors.InvalidArgumentError: You must feed a value for placeholder tensor 'Placeholder' with dtype float
[[Node: Placeholder = Placeholder[dtype=DT_FLOAT, shape=[], _device="/job:localhost/replica:0/task:0/cpu:0"]()]]
Caused by op u'Placeholder', defined at: ...

最佳答案

TL;DRyy_ 张量都取决于 tf.placeholder()操作,因此它们要求您在评估它们时提供一个输入值。您可以像这样输入一批输入,在一批输入数据上打印 softmax 的输出:

batch_xs, _ = mnist.train.next_batch(100)
print(y.eval({x: batch_xs}))

MNIST 示例包含以下几行:

# Create the model
x = tf.placeholder(tf.float32, [None, 784])
W = tf.Variable(tf.zeros([784, 10]))
b = tf.Variable(tf.zeros([10]))
y = tf.nn.softmax(tf.matmul(x, W) + b)

请注意,您尝试打印的第一个张量 yx 的函数,它被定义为 tf.placeholder()tf.placeholder() op 是一种定义符号 argument 的方法计算:它本身没有任何值,而是表示 x 必须是具有 784 列的浮点值矩阵。

在不为 x 提供值的情况下运行/评估 y 就像编写以下 Python 函数并在没有所有参数的情况下调用它:

def y(x):
W = ...
b = ...
return softmax(matmul(x, W), b)

# This would fail with an error.
print(y())

如何为参数指定一个值?在 TensorFlow 中,您可以通过占位符输入一个值(如 training loopaccuracy calculation 中的值):

# Get a batch of input data to feed to the computation.
batch_xs, _ = mnist.train.next_batch(100)

print(sess.run(y, feed_dict={x: batch_xs}))
# or
print(y.eval({x: batch_xs}))

张量 y_ 定义为 tf.placeholder()。由于技术原因,您无法直接评估占位符,即使您为它提供了一个值。但是,这样做并不是特别有用!相反,您可以只打印您将输入的值。

关于python - 如何在 tensorflow mnist_softmax.py 中打印张量的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37063577/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com