TensorFlow文档入门

时间:2017-03-10 14:18:12

标签: tensorflow

我不确定这是否适合提出这个问题。我关注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]。 或者我错过了什么?

2 个答案:

答案 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>