我的编程空间,编程开发者的网络收藏夹
学习永远不晚

Pytorch平均池化nn.AvgPool2d()如何使用

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

Pytorch平均池化nn.AvgPool2d()如何使用

这篇文章主要介绍了Pytorch平均池化nn.AvgPool2d()如何使用的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇Pytorch平均池化nn.AvgPool2d()如何使用文章都会有所收获,下面我们一起来看看吧。

torch.nn.AvgPool2d()

作用

在由多通道组成的输入特征中进行2D平均池化计算

函数

torch.nn.AvgPool2d(kernel_size, stride=None, padding=0, ceil_mode=False, count_include_pad=True, divisor_override=None)

参数

Args:
    kernel_size: 滑窗(池化核)大小
    stride: 滑窗的移动步长, 默认值为kernel_size
    padding: 在输入信号两侧的隐式零填充数量
    ceil_mode: 决定计算输出的形状时是向上取整还是向下取整, 默认为False(向下取整)
    count_include_pad: 在平均池化计算中是否包含零填充, 默认为True(包含零填充)
    divisor_override: 如果指定了, 它将被作为平均池化计算中的除数, 否则将使用池化区域的大小作为平均池化计算的除数

公式

Pytorch平均池化nn.AvgPool2d()如何使用

代码实例

假设输入特征为S,输出特征为D

情况一

ceil_mode=False, count_include_pad=True(计算时包含零填充)

import torchimport torch.nn as nnimport numpy as np  # 生成一个形状为1*1*3*3的张量x1 = np.array([              [1,2,3],              [4,5,6],              [7,8,9]            ])x1 = torch.from_numpy(x1).float()x1 = x1.unsqueeze(0).unsqueeze(0) # 实例化二维平均池化avgpool1 = nn.AvgPool2d(kernel_size=3, stride=2, padding=1, ceil_mode=False, count_include_pad=True)y1 = avgpool1(x1)print(y1) # 打印结果'''tensor([[[[1.3333, 1.7778],          [2.6667, 3.1111]]]])'''

计算过程:

输出形状= floor[(3 - 3 + 2) / 2] + 1 = 2,

D[1,1] = (0+0+0+0+1+2+0+4+5) / 9 = 1.3333,

D[1,2] = (0+0+0+2+3+0+5+6+0) / 9 = 1.7778,

D[2,1] = (0+4+5+0+7+8+0+0+0) / 9 = 2.6667,

D[2,2] = (5+6+0+8+9+0+0+0+0) / 9 = 3.1111.

情况二

ceil_mode=False, count_include_pad=False(计算时不包含零填充)

avgpool2 = nn.AvgPool2d(kernel_size=3, stride=2, padding=1, ceil_mode=False, count_include_pad=False) y2 = avgpool2(x1)print(y2) # 打印结果'''tensor([[[[3., 4.],          [6., 7.]]]])'''

计算过程:

输出形状= floor[(3 - 3 + 2) / 2] + 1 = 2,

D[1,1] = (1+2+4+5) / 4 = 3,

D[1,2] = (2+3+5+6) / 4 = 4,

D[2,1] = (4+5+7+8) / 4 = 6,

D[2,2] = (5+6+8+9) / 4 = 7.

情况三

ceil_mode=False, count_include_pad=False, divisor_override=2(将计算平均池化时的除数指定为2)

avgpool3 = nn.AvgPool2d(kernel_size=3, stride=2, padding=1, ceil_mode=False, count_include_pad=False, divisor_override=2) y3 = avgpool3(x1)print(y3) # 打印结果'''tensor([[[[ 6.,  8.],          [12., 14.]]]])'''

计算过程:

输出形状= floor[(3 - 3 + 2) / 2] + 1 = 2,

D[1,1] = (1+2+4+5) / 2 = 6,

D[1,2] = (2+3+5+6) / 2 = 8,

D[2,1] = (4+5+7+8) / 2 = 12,

D[2,2] = (5+6+8+9) / 2 = 14.

情况四

ceil_mode=True, count_include_pad=True, divisor_override=None(在计算输出的形状时向上取整)

x2 = np.array([              [1,2,3,4],              [5,6,7,8],              [9,10,11,12],              [13,14,15,16]              ])x2 = torch.from_numpy(x2).reshape(1,1,4,4).float()avgpool4 = nn.AvgPool2d(kernel_size=3, stride=2, padding=1, ceil_mode=True)y4 = avgpool4(x2)print(y4) # 打印结果'''tensor([[[[ 1.5556,  3.3333,  2.0000],          [ 6.3333, 11.0000,  6.0000],          [ 4.5000,  7.5000,  4.0000]]]])'''

计算过程:

输出形状 = ceil[(4 - 3 + 2) / 2] + 1 = 3,

D[1,1] = (0+0+0+0+1+2+0+5+6) / 9 = 1.5556,

D[1,2] = (0+0+0+2+3+4+6+7+8) / 9 = 3.3333,

Pytorch平均池化nn.AvgPool2d()如何使用

D[1,3] = (0+0+4+0+8+0) / 6 = 2,

D[2,1] = (0+5+6+0+9+10+0+13+14) / 9 = 6.3333,

D[2,2] = (6+7+8+10+11+12+14+15+16) / 9 = 11,

Pytorch平均池化nn.AvgPool2d()如何使用

D[2,3] = (8+0+12+0+16+0) / 6 = 6,

Pytorch平均池化nn.AvgPool2d()如何使用

D[3,1] = (0+13+14+0+0+0) / 6 = 4.5,

D[3,2] = (14+15+16+0+0+0) / 6 = 7.5,

Pytorch平均池化nn.AvgPool2d()如何使用

D[3,3] = (16+0+0+0) / 4 = 4.

关于“Pytorch平均池化nn.AvgPool2d()如何使用”这篇文章的内容就介绍到这里,感谢各位的阅读!相信大家对“Pytorch平均池化nn.AvgPool2d()如何使用”知识都有一定的了解,大家如果还想学习更多知识,欢迎关注编程网行业资讯频道。

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

Pytorch平均池化nn.AvgPool2d()如何使用

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

Pytorch平均池化nn.AvgPool2d()如何使用

这篇文章主要介绍了Pytorch平均池化nn.AvgPool2d()如何使用的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇Pytorch平均池化nn.AvgPool2d()如何使用文章都会有所收获,下面我们一起
2023-07-05

Pytorch平均池化nn.AvgPool2d()使用方法实例

平均池化层,又叫平均汇聚层,下面这篇文章主要给大家介绍了关于Pytorch平均池化nn.AvgPool2d()使用方法的相关资料,文中通过实例代码介绍的非常详细,需要的朋友可以参考下
2023-02-22

如何使用Flex Chart画移动平均线

这篇文章主要为大家展示了“如何使用Flex Chart画移动平均线”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“如何使用Flex Chart画移动平均线”这篇文章吧。使用Flex Chart画移
2023-06-17

使用PyTorch求平方根报错如何解决

使用PyTorch求平方根报错如何解决?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。问题描述初步使用PyTorch进行平方根计算,通过range()创建一个张量,然后对其求
2023-06-15

如何使用DataAdapter优化ADO.NET连接池

这篇文章主要为大家展示了“如何使用DataAdapter优化ADO.NET连接池”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“如何使用DataAdapter优化ADO.NET连接池”这篇文章吧。
2023-06-17

Java BasePooledObjectFactory对象池化技术如何使用

本篇内容主要讲解“Java BasePooledObjectFactory对象池化技术如何使用”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Java BasePooledObjectFactor
2023-07-05

HTML教程:如何使用Flexbox进行垂直平均布局

HTML教程:如何使用Flexbox进行垂直平均布局引言:在网页设计和开发中,布局是一个重要的部分,能够在页面上合理地安排内容的位置不仅可以提升用户体验,还可以使页面看起来更美观和专业。在过去的一段时间里,我们使用float、positio
2023-10-24

HTML教程:如何使用Flexbox进行平均分配布局

引言:在网页设计中,经常需要对元素进行布局。传统的布局方法存在一些局限性,而Flexbox(弹性盒子布局)是一种能够提供更灵活、更强大的布局方式。本文将介绍如何使用Flexbox来实现平均分配布局,同时给出具体的代码示例。一、Flexbox
2023-10-21

HTML教程:如何使用Grid布局进行栅格平均布局

在网页设计中,栅格布局(Grid Layout)是一种常用的布局方式,它可以有效地将网页内容划分为多个栏目,并进行灵活的排列和布局。本教程将介绍如何使用HTML和CSS的Grid布局来实现栅格平均布局,并提供具体的代码示例。一、什么是栅格布
2023-10-21

微信小程序开发中如何使用移动平均消除抖动

今天就跟大家聊聊有关微信小程序开发中如何使用移动平均消除抖动,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。增加了表盘的图形显示以后,这个小程序看起来是那么回事了。但是还有一个小毛病,
2023-06-19

HTML教程:如何使用Grid布局进行栅格平均自动布局

引言:在前端开发中,布局设计是一个重要的环节。传统的布局方式通过使用float、position、display等属性来实现,但这些方法存在许多弊端,并且需要手动计算和调整元素的位置和大小。而使用CSS Grid布局可以更加简洁和灵活地实现
2023-10-21

HTML教程:如何使用Grid布局进行栅格平均网格布局

在前端开发中,网格布局(Grid Layout)是一种非常强大和灵活的布局方式。它可以使我们更轻松地创建栅格布局,实现页面的响应式设计。本文将介绍如何使用Grid布局进行栅格平均网格布局,并提供具体的代码示例。创建HTML结构首先,我们需要
2023-10-21

一文详解如何使用线程池来优化我们的应用程序

线程池是一种工具,但并不是适用于所有场景。在使用线程池时,我们需要根据应用程序的性质、计算资源的可用性和应用程序的需求进行适当的配置。本文主要介绍了如何使用线程池来优化我们的应用程序,需要的可以参考一下
2023-05-14

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录