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)的固定大小,而不考虑其原始维度。这在构建输入大小变化的模型或在卷积层和完全连接层之间转换时特别有用。

相关推荐
fanstuck2 小时前
1M 上下文能怎么用?我用 Seed Evolving 做了一个招标文件版本差异审查器
服务器·人工智能·数据分析·开源·aigc
墨舟的AI笔记4 小时前
React 组件库的 Tree Shaking:按需加载与副作用的工程化治理
人工智能
WoooChi5 小时前
DailyTech-20260724
人工智能·科技·业界资讯
zh路西法5 小时前
【CAM Grad-CAM Grad-CAM++】深度学习模型可解释性:从原理到YOLOv8部署实战
人工智能·深度学习·yolo·yolov8·grad-cam·cam
雨辰AI5 小时前
全集实战:企业级大模型服务化部署全栈指南|FastAPI 封装 + Nginx 负载均衡 + 高可用架构 从单机到生产一步到位
人工智能·ai·负载均衡·fastapi·ai编程
触底反弹5 小时前
Vibe Coding 不写 Git,等于悬崖边飙车
人工智能·git·面试
咖啡屋和酒吧5 小时前
健康管理:现代生活的科学守护
人工智能·生活·精选
星栈独行6 小时前
翻完 Pi 源码:它和 Codex、Claude Code 有何不同
开发语言·javascript·人工智能·程序人生
没有梦想的咸鱼185-1037-16636 小时前
AI-Python机器学习与深度学习技术:CNN/Transformer/扩散模型、SHAP可解释及Hermes智能体自动化
人工智能·python·深度学习·机器学习·chatgpt·cnn·transformer
船漏了就会沉6 小时前
Kimi K3 vs DeepSeek-V4:国产大模型的技术路线之争
人工智能