首页 > 解决方案 > 由于形状错误,乘法在 numpy 中失败

问题描述

所以我试图将两个张量(deltasTimesWeights,self.weightedInputs)乘以两个形状(24,24,3,2),但由于某种原因,numpy 认为后者的形状是(24,24,3,10 )。具体来说,它给出了错误ValueError: could not broadcast input array from shape (24,24,2) into shape (24,24,10)

print(self.weightedInputs.shape , deltasTimesWeights.shape)
            
for index in range(c[2]):

                self.errors[:, :, index, :] = self.activationFuncs[index].prime( 
                         self.weightedInputs[:, :, index, :] ) * deltasTimesWeights[:, :, index, :]
                

请注意, self.activationFuncs[index].prime 只是返回相同的张量形状。这段代码是一个更大的循环的一部分,在这个循环中,之前的迭代,两个张量实际上都是 (24,24,3,10)。

发生这种情况是否有任何已知原因?numpy 是否像以前一样缓存形状?

标签: numpy

解决方案


推荐阅读