重塑 PyTorch 张量,使矩阵是水平的
我正在尝试将形状 (n, i, j)
的 3 维 PyTorch 张量中的 n
矩阵组合成形状 的单个二维矩阵(i,j*n)
。这是一个简单的例子,其中 n=2, i=2, j=2
:
m = torch.tensor([[[2, 3],
[5, 7]],
[[11, 13],
[17, 19]]])
m.reshape(2, 4)
我希望这会产生:
tensor([[ 2, 3, 11, 13],
[ 5, 7, 17, 19]])
但它却产生:
tensor([[ 2, 3, 5, 7],
[11, 13, 17, 19]])
我该怎么做?我尝试了 torch.cat
和 torch.stack
,但它们需要张量元组。我可以尝试创建元组,但这似乎效率低下。有更好的办法吗?
I'm trying to combine n
matrices in a 3-dimensional PyTorch tensor of shape (n, i, j)
into a single 2-dimensional matrix of shape (i, j*n)
. Here's a simple example where n=2, i=2, j=2
:
m = torch.tensor([[[2, 3],
[5, 7]],
[[11, 13],
[17, 19]]])
m.reshape(2, 4)
I was hoping this would produce:
tensor([[ 2, 3, 11, 13],
[ 5, 7, 17, 19]])
But instead it produced:
tensor([[ 2, 3, 5, 7],
[11, 13, 17, 19]])
How do I do this? I tried torch.cat
and torch.stack
, but they require tuples of tensors. I could try and create tuples, but that seems inefficient. Is there a better way?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
要将
n
+j
与reshape
结合起来,您需要它们在形状上是一致的。可以使用swapaxes
修复它:To combine
n
+j
withreshape
you need them consequent in shape. One can fix it withswapaxes
: