我正在努力学习张量流,我已经用简单的感知器进行了一些练习,其中包括数据,一个特征,一个输出。
我现在尝试使用更多功能但是,我的变量/占位符形状有问题。 我以为我学会了它是如何工作的,但似乎我错了。 我想知道如何获得一般的好价值,所以我不会再遇到这种问题了。
这是我的代码:
[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,但我不知道它来自哪里。
感谢您的帮助!
答案 0 :(得分:1)
这里的问题,正如我所看到的,你正试图做错误的矩阵乘法。可以看到here
的基本规则如果您将最后一行更改为
Y = tf.nn.relu(tf.add(tf.matmul(tf.transpose(x), W),b))
然后它不会再给你与尺寸相关的错误了。