我不确定这是否是提出这个问题的合适地方。我在跟踪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。所以对于x= 1,2,3,4,y应该是0,0.3,0.6,0.9。还是我错过了什么?
发布于 2017-03-10 22:38:37
是的,你漏掉了一些东西。本练习的目标是展示您首先构建一个图(W*x+b=y),然后为占位符提供变量。为此,您需要提供x和y,并查看期望的wat (y变量)和得到的结果( linear_model变量)之间的差异。
你混淆了方程式的结果和本教程想从方程式中得到的东西。如果你继续学习本教程,他们可能会学习你如何训练你的权重来获得你期望的解。
祝好运!
发布于 2017-03-11 02:11:18
在这段代码中,'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
https://stackoverflow.com/questions/42720528
复制相似问题