Pytorch学习之AdaptiveAvgPool2d函数

news/2024/7/8 2:46:17 标签: pytorch, 学习, 人工智能

Pytorch学习之AdaptiveAvgPool2d函数

一、简介

torch.nn.AdaptiveAvgPool2d 是 PyTorch 中用于实现自适应平均池化(Adaptive Average Pooling)的模块。

该层将输入特征图的高度和宽度调整到指定的输出尺寸,通过对输入特征图的不同区域取平均值来生成输出特征图。

与固定大小的池化层(如AvgPool2d)不同,自适应池化可以处理任意大小的输入特征图,并将其调整为固定的输出尺寸。

二、语法和参数

torch.nn.AdaptiveAvgPool2d(output_size)
参数
  • output_size (int 或 tuple或None): 指定输出特征图的高度和宽度。
    • 如果是一个整数,则输出特征图的高度和宽度相等;
    • 如果是一个元组,则分别指定高度和宽度。
    • 如果为None,则输出特征图尺寸和输入保持一致

三、实例

例子1: 将输入特征图调整为 1x1 尺寸
import torch
import torch.nn as nn

# 定义自适应平均池化层,输出尺寸为 1x1
adaptive_pool = nn.AdaptiveAvgPool2d((1, 1))

# 创建一个示例输入特征图,尺寸为 1x3x4x4
input_tensor = torch.randn(1, 3, 4, 4)

# 进行自适应平均池化
output_tensor = adaptive_pool(input_tensor)

print("输出:", output_tensor)

输出:

输出: tensor([[[[-0.4230]],

         [[-0.1645]],

         [[ 0.2068]]]])
例子2: 将输入特征图调整为 2x2 尺寸
import torch
import torch.nn as nn

# 定义自适应平均池化层,输出尺寸为 2x2
adaptive_pool = nn.AdaptiveAvgPool2d((2, 2))

# 创建一个示例输入特征图,尺寸为 1x3x4x4
input_tensor = torch.randn(1, 3, 4, 4)

# 进行自适应平均池化
output_tensor = adaptive_pool(input_tensor)

print("输出:", output_tensor)

输出:

输出: tensor([[[[ 0.1580, -0.1175],
          [ 0.0783, -0.0728]],

         [[-0.2235,  0.1540],
          [ 0.8765, -0.3074]],

         [[ 0.0404,  0.5360],
          [ 0.0769,  1.0124]]]])
例子3: 将输入特征图调整为不同的宽和高
import torch
import torch.nn as nn

# 定义自适应平均池化层,输出尺寸为 3x2
adaptive_pool = nn.AdaptiveAvgPool2d((3, 2))

# 创建一个示例输入特征图,尺寸为 1x3x4x4
input_tensor = torch.randn(1, 3, 4, 4)

# 进行自适应平均池化
output_tensor = adaptive_pool(input_tensor)

print("输出:", output_tensor)

输出:

输出: tensor([[[[ 0.6717, -0.1523],
          [ 0.7000, -0.3135],
          [-0.0811, -0.2327]],

         [[-0.7094,  0.7487],
          [-0.2777,  0.4406],
          [-0.1335,  0.7731]],

         [[ 0.2006, -0.2842],
          [-0.5824, -0.1561],
          [-0.6107, -0.1758]]]])

四、注意事项

  1. AdaptiveAvgPool2d 可以处理任意大小的输入特征图,并将其调整为指定的输出尺寸。
  2. 该层对输入特征图的每个区域进行平均池化,因此输出特征图的值是输入特征图对应区域的平均值。
  3. 在使用该层时,确保【输入特征图的尺寸 ≥ \geq 输出尺寸】,以避免出现错误。

http://www.niftyadmin.cn/n/5536142.html

相关文章

【AIGC自动化编程技巧笔记】一、起步

本专栏参考了CSDN高级讲师李宁的《AIGC自动化编程技巧》,是学习过程中记录的笔记。 一、ChatGPT的实质 尽管ChatGPT的功能非常强大,看似无所不能,但是ChatGPT毕竟只是基于很多算法和 数据并运行在强大GPU上的大量代码而已。ChatGPT甚至并不…

【bug报错已解决】ERROR: Could not find a version that satisfies the requirement

🎬 鸽芷咕:个人主页 🔥 个人专栏: 《C干货基地》《粉丝福利》 ⛺️生活的理想,就是为了理想的生活! 文章目录 引言一、问题描述1.1 报错示例1.2 报错分析 二、解决方法2.1 方法一2.2 方法二 三、总结 引言 有没有遇到过那种让人…

uniapp/Android App上架三星市场需要下载所需要的SDK

只需添加以下一个权限在AndroidManifest.xml <uses-permission android:name"com.samsung.android.providers.context.permission.WRITE_USE_APP_FEATURE_SURVEY"/>uniapp开发的&#xff0c;需要在App权限配置中加入以上的额外权限&#xff1a;

“论单元测试方法及应用”精选范文,软考高级论文,系统架构设计师论文

论文真题 1、概要叙述你参与管理和开发的软件项目,以吸你所担的主要工作。 2、结给你参与管理和开发的软件项目&#xff0c;简要叙述单元测试中静态测试和动态测试方法的基本内容。 3、结给你惨与管理和研发的软件项目,体阐述在玩测试过程中,如何确定白盒测试的覆盖标准,及如…

ThreeJS-3D教学十二:ShaderMaterial

一、首先 Shader 是做什么的 Shader 可以自定义每个顶点、每个片元/像素如何显示&#xff0c;而控制顶点和片元显示是通过设置 vertexShader 顶点着色器和 fragmentShader 片元着色器&#xff0c;这两个着色器用在 ShaderMaterial 和 RawShaderMaterial 材质上。 我们先看一个例…

全面教程:在Ubuntu上快速部署ZeroTier,实现Windows与VSCode的局域网无缝访问

文章目录 1 背景介绍2 Windows上的操作3 Ubuntu上的操作4 连接 1 背景介绍 在现代工作环境中&#xff0c;远程访问公司内网的Ubuntu主机对于开发者来说是一项基本需求。然而&#xff0c;由于内网的限制&#xff0c;传统的远程控制软件如向日葵和todesk往往无法满足这一需求。作…

将 build.gradle 配置从 Groovy 迁移到 Kotlin

目录 时间轴 常用术语 脚本文件命名 转换语法 为方法调用添加圆括号 为分配调用添加 转换字符串 重命名文件扩展名 将 def 替换为 val 或 var 为布尔值属性添加 is 前缀 转换列表和映射 配置 build 类型 从 buildscript 迁移到插件块 查找插件 ID 执行重构 转…

vue通过后台返回的数字显示不同的文字内容,多个内容用、隔开

后台返回的数据 显示效果&#xff1a; html&#xff1a; <el-table-columnalign"center"label"使用过的小程序"width"124"v-if"activeTab 0"><template #default"scope"><divv-for"(item, index) in s…