nn.AdaptiveAvgPool2d——二维自适应平均池化运算

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.]]]])
# 输出大小指定为(2,3)
tensor([[[[ 3.5000,  5.5000,  7.5000],
          [15.5000, 17.5000, 19.5000]]]])
# 输出大小指定为(2,2)
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

你可能感兴趣的:(PyTorch学习笔记,pytorch,python,深度学习)