PyTorch----torch.nn.AdaptiveAvgPool2d()自适应平均池化函数

AdaptiveAvgPool2d是PyTorch中的一个模块,用于卷积神经网络(CNNs)中的自适应平均池化。它通常用于需要将输入张量的大小调整为固定大小,而不考虑其原始尺寸。

"自适应"方面是指输出大小是由用户指定的,而不是固定的。这为模型设计提供了更大的灵活性,因为池化操作可以适应不同的输入大小。

以下是AdaptiveAvgPool2d的工作原理:

**输入:**取一个形状为(N, C, H, W)的输入张量,其中N为批大小,C为通道数,H和W分别为输入特征映射的高度和宽度。

**输出大小:**与输出大小由内核大小和步数决定的传统池层不同,在AdaptiveAvgPool2d中,您可以直接指定所需的输出大小。可以将其指定为单个整数output_size(结果为正方形输出)或元组(output_height, output_width)。

**操作:**对于每个通道,AdaptiveAvgPool2d根据输出大小将输入划分为分段网格,然后计算每个分段的平均值。这个平均值成为相应的输出像素。

**输出:**输出张量具有形状(N, C, output_height, output_width)。

示例:

python 复制代码
import torch
import torch.nn as nn

# Input tensor with shape (N, C, H, W)
input_tensor = torch.randn(1, 3, 32, 32)

# Define AdaptiveAvgPool2d layer with output size (output_height, output_width)
adaptive_avg_pool = nn.AdaptiveAvgPool2d((5, 5))

# Apply AdaptiveAvgPool2d
output = adaptive_avg_pool(input_tensor)

print(output.shape)  # Output shape: (1, 3, 5, 5)

在这个例子中,AdaptiveAvgPool2d用于将输入张量的大小调整为(5,5)的固定大小,而不考虑其原始维度。这在构建输入大小变化的模型或在卷积层和完全连接层之间转换时特别有用。

相关推荐
AGV算法笔记3 分钟前
目标检测论文精读:Deformable DETR 为什么被认为是 DETR 真正走向实用的关键一步?
人工智能·深度学习·目标检测·机器学习·计算机视觉·目标跟踪
人工智能AI技术4 分钟前
卷积神经网络 CNN 基础:专为图像而生的模型
人工智能
model20057 分钟前
yolo26训练自己数据集
人工智能·深度学习
塔能物联运维7 分钟前
两相液冷:客户买的不是冷板,而是一套可稳定释放算力的系统能力
大数据·人工智能
极光代码工作室8 分钟前
基于机器学习的商品价格预测系统
人工智能·深度学习·机器学习·ai·系统设计
编程点滴20 分钟前
解锁 AI 编程新高度:GitNexus 代码图谱 + ClaudeCode 精准开发实战
人工智能
hnult21 分钟前
AI 在线考试全流程 :考试云七大核心 AI 功能深度解读
人工智能·笔记·重构·课程设计
fangzt201023 分钟前
从零搭建自动驾驶中间件(二):共享内存零拷贝通信的工程实践
人工智能·中间件·自动驾驶
moonsims25 分钟前
端侧YOLO + 端侧CLIP + 云端CLIP(AI Mission Cloud):云-边-端协同语义感知与任务系统架构
人工智能
古希腊掌管代码的神THU25 分钟前
【清华代码熊】DeepSeek V4多模态技术解析:以视觉基元思考
人工智能·深度学习·自然语言处理