python numpy ValueError:shapes(171,)和(784,500)未对齐:171

时间:2017-12-12 03:29:33

标签: python python-3.x numpy

我有数据向量(1 coloumn),我正在使用

def propup(self, vis):
   pre_sigmoid_activation = numpy.dot(vis, self.W) + self.hbias
   return sigmoid(pre_sigmoid_activation)

但我收到错误

  

ValueError:形状(171,)和(784,500)未对齐:171(暗淡0)!=   784(暗淡0)

1 个答案:

答案 0 :(得分:0)

矩阵和矢量之间的点积定义为so

这意味着矩阵的宽度和矢量的高度应该相同。

在您的情况下ves.shape = [,171],它是向量的高度,但self.W.shape = [784, 500]表示矩阵self.W的宽度为784。 要使numpy.dot正常工作,您需要确保ves.shape = [x, 784]其中x是某个整数。

如果没有更多代码,我只能猜测你正在尝试训练神经网络以解决MNIST问题(784维度非常具体)。 因此,请确保将正确的向量发送到propup()。 无论如何,这里有一些关于矩阵乘法的好消息: 矩阵乘法:https://www.mathsisfun.com/algebra/matrix-multiplying.html