numpy - 由于形状错误,乘法在 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 是否像以前一样缓存形状?
解决方案
推荐阅读
- java - Drools:为多个请求重用相同的 Kiesession
- r - 如何消除另一个数据框中基于列名的数据框中的行
- c - 线的最大长度
- prolog - 如何在 Prolog 代码本身中编写“findall”?
- javascript - 根据子对象数组的字段对对象数组进行排序
- python - 为什么在这个对 iter 的调用中哨兵是强制性的?
- reactjs - Props 对象从 React 官方文档中传子给组件是什么意思
- reactjs - 我不能用钩子。我不能用对象设置用户。我应该怎么办?
- java - 带有内部枚举类的 Eclipse AST 的奇怪结果
- java - 如果绑定到 Container-Height,ScrollPane 不会立即调整 ViewPort-Height 的大小