Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/344.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在python中乘法未对齐的numpy矩阵?_Python_Numpy_Sum_Np - Fatal编程技术网

如何在python中乘法未对齐的numpy矩阵?

如何在python中乘法未对齐的numpy矩阵?,python,numpy,sum,np,Python,Numpy,Sum,Np,我有两个numpy矩阵:第一个,indata的形状是2,0。我代码中的第二个self.Ws[0]的形状为100,0 这些矩阵可以相乘吗 def Evaluate(self, indata): sum = np.dot(self.Ws[0], indata) + self.bs[0] self.As[0] = self.sigmoid(sum) for i in range(1, len(self.numLayers)): sum = np.dot(self

我有两个numpy矩阵:第一个,indata的形状是2,0。我代码中的第二个self.Ws[0]的形状为100,0

这些矩阵可以相乘吗

def Evaluate(self, indata):
    sum = np.dot(self.Ws[0], indata) + self.bs[0]
    self.As[0] = self.sigmoid(sum)
    for i in range(1, len(self.numLayers)):
        sum = np.dot(self.Ws[i], self.As[i-1] + self.bs[i])
        self.As[i] = self.softmax(sum)
    return self.As[len(self.numLayers)-1]
运行此代码时出现的错误如下:

File "C:/Users/1/PycharmProjects/Assignment4PartC/Program.py", line 28, in main
    NN.Train(10000, 0.1)
  File "C:\Users\1\PycharmProjects\Assignment4PartC\Network.py", line 53, in Train
    self.Evaluate(self.X[i])
  File "C:\Users\1\PycharmProjects\Assignment4PartC\Network.py", line 38, in Evaluate
    sum = np.dot(self.Ws[0], indata) + self.bs[0]
ValueError: shapes (100,) and (2,) not aligned: 100 (dim 0) != 2 (dim 0)

希望有人能帮我解决这个问题-任何帮助都是感激的!如果有人需要更多关于我正在运行的内容的详细信息,请告诉我,我会更新我的帖子。

除非数组为空,否则数组中没有形状N,0。你所拥有的可能是形状2和100,。将这些对象相乘的一种方法是:

np.dot(self.Ws[0].reshape((-1, 1)), indata.reshape((1, -1)))
这将给你一个100,2的数组。
从数学的角度来看,这是否是你想要得到的,这真的很难说。

嘿,吉迪奥克,我不知道这些形状的矩阵是否可以彼此相乘。您希望得到什么输出?2 1d阵列的点积是内积。这两个数组的大小必须匹配。是否有任何方法可以转换为100,->100,1?您可以简单地使用arr.reforme-1,1将您的数组整形为N,1,其中N是数组的形状。我不确定你所做的在数学上是否合理。当然有可能有一个100,0形状的数组。但是错误表明Ws[i]是形状100,。所以Ws可能是n,100。但是我同意点的意图是不清楚的。这是可能的,但只适用于真正的空数组,即没有任何元素。这可能是因为我缺乏想象力,但我没有看到一个带有非空形状的空数组的用例。