AdaptiveMaxPool2d
时间: 2024-06-15 07:07:43 浏览: 22
AdaptiveMaxPool2d是PyTorch中的一个池化操作,它可以根据给定的输出大小自适应地对输入进行最大池化。具体来说,AdaptiveMaxPool2d将输入张量划分为固定大小的区域,并在每个区域内选择最大值作为输出。这个操作可以用来将输入张量的空间维度调整为固定大小,而不需要显式地指定池化核大小和步幅。
下面是AdaptiveMaxPool2d的调用方式和示例代码[^1][^2]:
调用方式:
```python
torch.nn.AdaptiveMaxPool2d(output_size)
```
示例:
```python
import torch
# 创建一个输入张量
input_tensor = torch.randn(1, 3, 32, 32) # 输入大小为[batch_size, channels, height, width]
# 创建AdaptiveMaxPool2d实例
adaptive_maxpool = torch.nn.AdaptiveMaxPool2d((16, 16)) # 输出大小为[16, 16]
# 对输入张量进行自适应最大池化
output_tensor = adaptive_maxpool(input_tensor)
print(output_tensor.size()) # 输出:torch.Size([1, 3, 16, 16])
```
在上面的示例中,我们首先创建了一个输入张量`input_tensor`,它的大小为[1, 3, 32, 32],表示一个batch中有1个样本,每个样本有3个通道,高度和宽度都是32。然后,我们创建了一个AdaptiveMaxPool2d实例`adaptive_maxpool`,并指定输出大小为[16, 16]。最后,我们将输入张量传递给`adaptive_maxpool`进行自适应最大池化,得到输出张量`output_tensor`,其大小为[1, 3, 16, 16]。