PyTorch库学习之nn.AdaptiveAvgPool2d函数

PyTorch库学习之nn.AdaptiveAvgPool2d函数

一、简介

torch.nn.AdaptiveAvgPool2d 是 PyTorch 中用于实现自适应平均池化操作的模块。这个模块将输入特征图调整到指定的输出尺寸,通过对特征图中的区域进行平均池化操作来实现。与固定大小的池化操作不同,自适应平均池化可以动态调整特征图的尺寸,使得输出具有指定的高度和宽度。

二、语法和参数

语法
torch.nn.AdaptiveAvgPool2d(output_size)
参数
  • output_size:目标输出的大小,可以是一个整数或者一个包含两个整数的元组。如果是一个整数,则输出的高度和宽度都将等于该值。如果是一个元组,则分别指定输出的高度和宽度。
返回值
  • 返回一个新的 AdaptiveAvgPool2d 对象,对输入张量进行自适应平均池化操作。

三、实例

3.1 创建一个自适应平均池化层,并将输入张量池化到指定大小
import torch
import torch.nn as nn

# 创建一个 AdaptiveAvgPool2d 层,将输出大小设为 (2, 2)
adaptive_avg_pool = nn.AdaptiveAvgPool2d((2, 2))

# 创建一个随机的输入张量,形状为 (1, 1, 4, 4)
input_tensor = torch.randn(1, 1, 4, 4)

# 对输入张量应用自适应平均池化
output_tensor = adaptive_avg_pool(input_tensor)

# 打印输出张量
print("输出:")
print(output_tensor)
输出:
tensor([[[[-0.3259,  0.1984],
          [-0.7914,  0.2474]]]])
3.2 将输入张量池化到一个单一的输出值
import torch
import torch.nn as nn

# 创建一个 AdaptiveAvgPool2d 层,将输出大小设为 1
adaptive_avg_pool = nn.AdaptiveAvgPool2d(1)

# 创建一个随机的输入张量,形状为 (1, 1, 4, 4)
input_tensor = torch.randn(1, 1, 4, 4)

# 对输入张量应用自适应平均池化
output_tensor = adaptive_avg_pool(input_tensor)

# 打印输出张量
print("输出:")
print(output_tensor)
输出:
tensor([[[[-0.1633]]]])

四、注意事项

  1. AdaptiveAvgPool2d 的输出尺寸是根据 output_size 参数自动调整的,因此它非常适合用于处理不同尺寸的输入图像。
  2. 与其他池化操作不同,自适应平均池化不会受到输入图像尺寸的限制,可以灵活地生成特定大小的输出。
  3. 该模块常用于卷积神经网络的最后一层,以便将特征图的尺寸调整为固定大小,通常在全连接层之前使用。
  • 3
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值