我有数据向量(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)
答案 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