torch.nn.AvgPool2d
时间: 2023-08-03 12:26:44 浏览: 59
`torch.nn.AvgPool2d` 是 PyTorch 中的一个二维平均池化层,它将输入张量按照给定的窗口大小进行划分,并计算每个窗口中元素的平均值作为输出。该层通常用于减少图像或特征图的空间大小,从而减少参数数量和计算量,并增强模型的鲁棒性。
`torch.nn.AvgPool2d` 的常用参数包括:
- `kernel_size`:池化窗口的大小,可以是一个整数或者一个元组,表示在两个维度上的大小;
- `stride`:池化窗口的滑动步长,可以是一个整数或者一个元组,表示在两个维度上的步长大小;
- `padding`:输入张量的填充大小,可以是一个整数或者一个元组,表示在两个维度上的填充大小;
- `ceil_mode`:如果为 True,将使用 ceil 而不是 floor 进行池化计算,可以避免池化后输出大小为小数的情况;
- `count_include_pad`:如果为 True,将包括填充的元素在内进行计算,否则不计算填充的元素。
例如,以下代码定义了一个 2x2 的 AvgPool2d 层:
``` python
import torch.nn as nn
avgpool = nn.AvgPool2d(kernel_size=2, stride=2)
```
该层的输入为一个四维张量,例如一个 1x3x4x4 的张量,其中第一个维度表示批次数量,第二个维度表示通道数量,后两个维度表示图像的高度和宽度。该层的输出为一个四维张量,与输入的第一个维度相同,第二个维度表示通道数量,后两个维度表示池化后的图像的高度和宽度。在上述示例中,该层的输入大小为 1x3x4x4,输出大小为 1x3x2x2。