我从例如在学习TensorFlow:https://github.com/aymericdamien/TensorFlow-Examples/blob/master/notebooks/2_BasicModels/linear_regression.ipynbTensorFlow:功能reduce_sum输入
我在下面的代码有一个问题:
X = tf.placeholder("float")
Y = tf.placeholder("float")
# Set model weights
W = tf.Variable(rng.randn(), name="weight")
b = tf.Variable(rng.randn(), name="bias")
In [6]:
# Construct a linear model
pred = tf.add(tf.mul(X, W), b)
In [7]:
# Mean squared error
cost = tf.reduce_sum(tf.pow(pred-Y, 2))/(2*n_samples)
tf.reduce_sum的输入是tf.pow(预解码值-Y,2))这似乎是一个标量(或者我错了吗?)然后我想知道为什么我们想要在标量上做reduce_sum?我在这里错过了什么?谢谢!
我再次阅读代码。如果占位符X是一维数组。为什么不能pred = tf.add(tf.mul(X,W),b)是基于Numpy广播规则的一维数组?我的意思是在mul和add操作上应用广播规则?谢谢! – Edamame
如果'X'是一维数组,则'pred' *将是一维数组(如上面的日志记录情况)。然而,在'X'是标量的训练案例中,由于'W'和'b'也是标量,'pred'将是一个标量(因为适用于两个标量的广播规则是标量0。 – mrry