PyTorch学习笔记:nn.AdaptiveAvgPool2d——二维自适应平均池化运算
torch.nn.AdaptiveAvgPool2d(output_size)
功能:该函数与二维平均池化运算类似,区别主要体现在自适应上,对于任何输入大小,输出大小均为指定的H×W大小。
输入:
output_size :指定的输出大小,可以是元组(H,W),或者是单个的数,如果是单个的数,则表示输出的高和宽尺寸一样,output_size 大小可以大于输入的图片尺寸大小。
代码案例
一般用法
import torch
from torch import nn
img=torch.arange(24,dtype=torch.float).reshape(1,1,4,6)
pool_1=nn.AdaptiveAvgPool2d((2,3))
pool_2=nn.AdaptiveAvgPool2d(2)
img_1=pool_1(img)
img_2=pool_2(img)
print(img)
print(img_1)
print(img_2)
输出
tensor([[[[ 0., 1., 2., 3., 4., 5.],
[ 6., 7., 8., 9., 10., 11.],
[12., 13., 14., 15., 16., 17.],
[18., 19., 20., 21., 22., 23.]]]])
tensor([[[[ 3.5000, 5.5000, 7.5000],
[15.5000, 17.5000, 19.5000]]]])
tensor([[[[ 4., 7.],
[16., 19.]]]])
当output_size 指定为1时,相当于全局平均池化
import torch
from torch import nn
img=torch.arange(48,dtype=torch.float).reshape(1,2,4,6)
pool=nn.AdaptiveAvgPool2d(1)
img_1=pool(img)
print(img_1)
输出
tensor([[[[11.5000]],
[[35.5000]]]])
官方文档
nn.AdaptiveAvgPool2d():https://pytorch.org/docs/stable/generated/torch.nn.AdaptiveAvgPool2d.html?highlight=avgpool2d#torch.nn.AdaptiveAvgPool2d
|