在 PyTorch 中将 5D 张量转换为 4D 张量

Posted

技术标签:

【中文标题】在 PyTorch 中将 5D 张量转换为 4D 张量【英文标题】:Convert 5D tensor to 4D tensor in PyTorch 【发布时间】:2020-12-27 12:19:31 【问题描述】:

在 PyTorch 中,我有一个尺寸为 B x 9 x C x H x W 的 5D 张量 X。我想将其转换为尺寸为 B x 9C x H x W 的 4D 张量 Y,以便以通道方式进行连接。

为了说明let,

a = X[1,0,:,:,:]
b = X[1,1,:,:,:]
c = X[1,2,:,:,:]
...
i = X[1,8,:,:,:]

那么在张量 Y 中,a to i 应该是通道级连接的。

【问题讨论】:

【参考方案1】:

您可以使用torch.reshape 轻松广播到新形状:

b, n, c, h, w = X.shape
X = X.reshape(b, n*c, h, w)

【讨论】:

【参考方案2】:

试试:

import torch
x = torch.rand(3, 4, 3, 2, 6)
print(x.shape)
y=x.flatten(start_dim=1, end_dim=2)
print(y.shape)

torch.Size([3, 4, 3, 2, 6])
torch.Size([3, 12, 2, 6])

【讨论】:

以上是关于在 PyTorch 中将 5D 张量转换为 4D 张量的主要内容,如果未能解决你的问题,请参考以下文章

如何将PyTorch张量转换为Numpy ndarray

将 Pandas 数据帧转换为 PyTorch 张量?

将 PyTorch 张量转换为 python 列表

如何将 pytorch 张量转换为 numpy 数组?

如何将字符串列表转换为pytorch中的张量?

Tensorflowjs - 将 4d 张量重塑/切片成图像