Pytorch - 在特定维度上应用池化

3
我有一个三维向量。我想在第二个维度上执行一维最大池化操作。
根据PyTorch文档,池化操作总是在最后一个维度上执行。

https://pytorch.org/docs/stable/nn.html#maxpool1d

例如:

>>> x = torch.rand(5, 64, 32)
>>> pool = nn.MaxPool1d(2, 2)
>>> pool(x).shape
torch.Size([5, 64, 16])

我想要的输出:

torch.Size([5, 32, 32])

我该怎么做?


1
这个回答解决了你的问题吗?Pytorch沿通道维度进行最大池化 - GoodDeeds
1个回答

6
您可以简单地对维度进行排列:
x = torch.rand(5, 128, 32)
pool = nn.MaxPool1d(2, 2)
pool(x.permute(0,2,1)).permute(0,2,1)  # shape (5, 128, 32) -> (5, 64, 32)

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接