张量流中的线性模型

时间:2017-09-26 04:09:20

标签: python tensorflow linear-algebra

我试图在Tensorflow中生成一个简单的线性模型。这是代码......

N        = 400
features = 100
nSteps   = 1000

data = (np.random.randn(N, features), np.random.randint(0, 2, N))

W = tf.placeholder(tf.float32, shape=(features,1), name='W')
b = tf.placeholder(tf.float32, shape=(features,1), name='b')
d = tf.constant(data[0], dtype=tf.float32)

result = tf.add( tf.matmul(d, W), b)

事实证明b的尺寸可能存在一些问题,但出于某种原因,据我所知,它们都可以......

不确定为什么这会引发错误。有人可以帮忙吗?

注意:

result = tf.matmul(d, W)

这没关系。

我检查了结果的形状,与b的形状相同。不确定可能是什么问题。

1 个答案:

答案 0 :(得分:3)

在线性模型(即输出层中的一个单元)中,b应为标量。

数学上,对于单个观察,您有:result = WX + b,其中维W [1 x要素],X [要素x 1]。然后,WX是标量。因此b应该是标量。

因此,您应该将b更改为以下内容,以获得正确的线性模型并使维度成为现实:

b = tf.placeholder(tf.float32, shape=(1,1), name='b')