如何知道每次如何在Tensorflow中定义我的变量/占位符形状

时间:2017-06-08 10:01:27

标签: python machine-learning tensorflow deep-learning

我正在努力学习张量流,我已经用简单的感知器进行了一些练习,其中包括数据,一个特征,一个输出。

我现在尝试使用更多功能但是,我的变量/占位符形状有问题。 我以为我学会了它是如何工作的,但似乎我错了。 我想知道如何获得一般的好价值,所以我不会再遇到这种问题了。

这是我的代码:

[IN]:

print(inputX.shape)
print(inputY.shape)

[OUT]:

(50,9) (50,1)

[IN]:

x = tf.placeholder(tf.float32,[None, 9]) #features
y = tf.placeholder(tf.float32, [None, 1]) #labels
W = tf.Variable(tf.random_normal([1, 9])) #Weights, nb of labels[x,x]nb of features
b = tf.Variable(tf.zeros([1])) #[x]nb of features
Y = tf.nn.relu(tf.add(tf.matmul(x, W),b)) 

[OUT]:

尺寸必须相等,但“MatMul_21”(op:'MatMul')的尺寸必须为9和1,输入形状为:[?,9],[1,9]。

我认为问题是1,但我不知道它来自哪里。

感谢您的帮助!

1 个答案:

答案 0 :(得分:1)

这里的问题,正如我所看到的,你正试图做错误的矩阵乘法。可以看到here

的基本规则

如果您将最后一行更改为

Y = tf.nn.relu(tf.add(tf.matmul(tf.transpose(x), W),b))

然后它不会再给你与尺寸相关的错误了。