我不确定这是否适合提出这个问题。我关注https://www.tensorflow.org/get_started/get_started并遇到了以下示例代码:
W = tf.Variable([.3], tf.float32)
b = tf.Variable([-.3], tf.float32)
x = tf.placeholder(tf.float32)
linear_model = W * x + b
In the section on loss function it has the following:
y = tf.placeholder(tf.float32)
squared_deltas = tf.square(linear_model - y)
loss = tf.reduce_sum(squared_deltas)
print(sess.run(loss, {x:[1,2,3,4], y:[0,-1,-2,-3]}))
为什么值y [0,-1,-2,-3]
?基于
linear_model = W * x + b,
y将是0.3x - 0.3。因此对于[1,2,3,4]的x,y应为[0,0.3,0.6,0.9]。 或者我错过了什么?
答案 0 :(得分:0)
是的,你错过了一些东西。此练习的目的是显示您首先构建图形(W * x + b = y),然后提供占位符的变量。 要做到这一点,你需要提供x和y,看看你想要的wat(y变量)和你得到的(linear_model变量)之间的区别。
你将这个等式的结果与教程想要从这个等式中得出的结果混淆了。如果您继续学习本教程,他们可能会了解如何训练您的体重以获得您期望的解决方案。
祝你好运!答案 1 :(得分:0)
在此代码段中,'x'是输入,'y'用于标签的目的,因为您似乎已经理解。
'W'和'b'是程序应该'学习'的变量,这样当x = [1,2,3,4]时,y最终为[0,-1,-2,-3]
您看到的'W'和'b'的值是初始值。 此代码中不包含更新步骤,您将在根据损失函数计算梯度后更新权重。经过几次迭代后,你应该得到'W'和'b',这样当x = [1,2,3,4]时,你会得到y = [0,-1,-2,-3] < / p>