gpt4 book ai didi

python - Tensorflow,打印损失函数在没有feed_dictionary的情况下导致错误

转载 作者:行者123 更新时间:2023-11-30 22:30:23 25 4
gpt4 key购买 nike

我正在阅读 Tensorflow 文档。在下面的代码中,我只是更改了最后一行。我在迭代中推送了最后一行,看看到底发生了什么......

import tensorflow as tf

# linear_model = W*x+B

W = tf.Variable(.3, dtype=tf.float32)
B = tf.Variable(-3., dtype=tf.float32)
x = tf.placeholder(dtype=tf.float32) #data_X
linear_model = W*x+B

y = tf.placeholder(dtype=tf.float32) #data_Y

loss = tf.reduce_sum(tf.square(linear_model-y))

optimizer = tf.train.GradientDescentOptimizer(0.01)
train = optimizer.minimize(loss)

X_train = [1.0,2.0,3.0,4.0] #data_X
y_train = [0.0,-1.0,-2.0,-3.0] #data_y

with tf.Session() as sess:
sess.run(tf.global_variables_initializer())
for i in range(1000):
sess.run(train,{x:X_train, y:y_train})
print(sess.run([W,B,loss], {x:X_train, y:y_train}))

请检查最后一行:print(sess.run([W,B,loss], {x:X_train, y:y_train}))

为什么我需要包含

{x:X_train, y:y_train}

为了打印语句?如果您从最后一行排除这一点,您将收到错误。这是没有意义的,因为之前已经在行中计算了损失。谢谢

最佳答案

如果你打印出loss,你会发现它是一个张量,而不是一个变量。这是因为 TensorFlow 定义了一个计算图,然后在调用 sess.run 时执行它,它不像 python 那样执行顺序执行。

您可以将 loss 视为 x 和 y 的函数,以查看 sess.run 正在做什么。

execute loss()   # not enough information to calculate loss
execute loss(x, y) # this will run loss

关于python - Tensorflow,打印损失函数在没有feed_dictionary的情况下导致错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46080421/

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