我正在尝试使用numpy构建矩阵列表,但是当我尝试将矩阵附加到空张量时,我得到错误:
ValueError:所有输入数组必须具有相同的维数
连接和追加两者似乎都失败了。我试着打电话:
tensor = np.concatenate((tensor, matrix), axis=0)
和
tensor = np.append(tensor, matrix, axis=0)
但无论如何我都会得到同样的错误。
张量以[0,h,w]的大小开始,矩阵的大小为[h,w]。矩阵在我想要追加的方向上是正确的形状,但它似乎不会附着。
答案 0 :(得分:1)
似乎matrix
代表传入的那些,而你将它们累积到tensor
。因此,要解决此问题,请添加一个新None/np.newaxis
轴作为matrix
的前导轴,然后与tensor
连接 -
np.concatenate((tensor, matrix[None]),axis=0)
如果您正在累积,请将其存储回tensor
。
或使用np.vstack((tensor, matrix[None]))
。
示例运行 -
In [16]: h,w = 3,4
...: a = np.random.rand(0,h,w)
...: b = np.random.rand(h,w)
In [17]: np.concatenate((a, b[None]),axis=0).shape
Out[17]: (1, 3, 4)