AvgPool2d

AvgPool2d 是 PyTorch 中用于实现二维平均池化的层,它对输入信号的每个通道应用 2D 平均池化。平均池化层通过计算池化窗口内元素的平均值来降低特征图的空间维度,从而减少计算量和参数数量,同时提高模型对输入变化的鲁棒性。AvgPool2d 层的输出值可以通过以下公式精确描述:out(Ni,Cj,h,w)=1kH∗kW∑m=0kH−1∑n=0kW−1input(Ni,Cj,stride[0]×h+m,stride[1]×w+n),其中 kernel_size 是窗口大小,stride 是窗口滑动步长,padding 是隐式零填充的数量
AvgPool2d 的关键参数包括:
  • kernel_size:池化窗口的大小。
  • stride:池化窗口滑动的步长,其默认值通常等于 kernel_size
  • padding:在输入特征图的边缘添加的零填充的大小。
  • ceil_mode:当为 True 时,使用 ceil 而不是 floor 来计算输出形状。
  • count_include_pad:当为 True 时,将在平均计算中包括零填充。
  • divisor_override:如果指定,它将用作除数,否则将使用池化区域的大小
在 PyTorch 中,你可以使用 nn.AvgPool2d 来创建一个平均池化层。下面是一个简单的例子:
Python复制
import torch
import torch.nn as nn

# 创建一个2x2的输入张量
input = torch.tensor([[[1.0, 2.0], [3.0, 4.0]]])

# 创建一个2x2的平均池化层
pool = nn.AvgPool2d(2)

# 对输入张量进行平均池化
output = pool(input)
print(output)
在这个例子中,nn.AvgPool2d(2) 创建了一个2x2的平均池化层。这个池化层会将输入张量中每2x2的区域内的元素取平均值,并作为输出
posted @ 2025-03-14 00:59  yinghualeihenmei  阅读(157)  评论(0)    收藏  举报