翻译自: https://discuss.pytorch.org/t/what-is-adaptiveavgpool2d/26897
知乎链接: https://www.zhihu.com/question/282046628

函数原型: nn.AdaptiveAvgPool2d(output_size)
原理解释:

更多细节

池化模板大小计算(Pool Kernel Size): stencil_size=(input_size+target_size-1) // target_size, 即向上舍入。
基于stencil_size, 将计算应用池化模板的(起始)位置: 即计算[0,input_size) 之间的等距点

一个例子:
假设输入大小为14,目标大小为4.那么模板大小为4。
四个等距点将分别为0,3.33333,6.6666,10并且四舍五入为0,3,7,10。因此,四个项目将是切片的平均值0:4, 3:7, 7:11, 10 :14(以Python方式,所以包括下限,不包括上限)。可以看到前两个和最后两个切片会有重叠。当输入大小不能被目标大小整除时,通常会出现这种偶尔重叠1的情况。
对于实验,您可以使用arange 和backward函数来查看发生的情况在如下示例中:

a = torch.arange(0,14., requires_grad=True)
b = torch.nn.functional.adaptive_avg_pool1d(a[None, None], 4)
b.backward(torch.arange(1., 1+b.size(-1))[None,None])
print (b, a.grad)

然后b 1.5, 4.5, 8.5, 11.5就像你从上面切片得到的那样并取平均值。
梯度a.grad显示“每个输出的感知字段”:
0.2500, 0.2500, 0.2500, 0.7500, 0.5000, 0.5000, 0.5000, 0.7500, 0.7500, 0.7500, 1.7500, 1.0000, 1.0000, 1.0000
再次,您在第3项和第10项看到重叠。


对等分点计算的疑惑解释:
为了从总长度为14(= input_size)的数组中获得具有相同长度(4 = kernel_size)4部分(= target_size),允许一些重叠,我们首先将最右边的部分分开:索引为10,11,12和13。我们将索引0-10部分分成3(4 - 1)等分。

这是Thomas的例子中的numpy片段。

In [1]: import numpy as npIn [2]: input_size = 14In [3]: output_size = 4In [4]: kernel_size = (input_size + output_size - 1) // output_sizeIn [5]: kernel_size
Out[5]: 4In [6]: np.linspace(start=0, stop=input_size - kernel_size, num=output_size)
Out[6]: array([ 0.        ,  3.33333333,  6.66666667, 10.        ])

Pytorch层--AdaptiveAvgPool2d相关推荐

  1. pytorch 层标准化 LayerNorm 的用法

    目录 1.为什么要标准化(理解的直接跳过到这部分) 2.LayerNorm 解释 3.举例-只对最后 1 个维度进行标准化 4.举例-对最后 D 个维度进行标准化 1.为什么要标准化(理解的直接跳过到 ...

  2. Pytorch使用实践,教程,库,调优,计算量,模型搭建

    参考文章: PyTorch官方教程中文版 http://pytorch123.com/ pytorch handbook是一本开源的书籍,目标是帮助那些希望和使用PyTorch进行深度学习开发和研究的 ...

  3. PyTorch 深度学习实用指南:1~5

    原文:PyTorch Deep Learning Hands-On 协议:CC BY-NC-SA 4.0 译者:飞龙 本文来自[ApacheCN 深度学习 译文集],采用译后编辑(MTPE)流程来尽可 ...

  4. 深度学习之COLA-Net

    这篇文章是首篇将局部(Local)注意力和全局(Non-Local)注意力进行结合来做图像重建的论文.文章作者设计了一个将局部注意力机制和全局注意力机制一起协同合作来重建图像的网络模型--Collab ...

  5. Attention is All You Need?LSTM提出者:我看未必

    视学算法报道 机器之心编辑部 转载自公众号:机器之心 Transformer 中的注意力机制等价于一种 Hopfield 网络中的更新规则?LSTM 提出者 Sepp Hochreiter 等人在最近 ...

  6. python3跑通smpl模型_Python smpl-pytorch包_程序模块 - PyPI - Python中文网

    Pythorch的SMPL层 SMPL人体[1]层为PyTorch(用v0.4和v1.x测试) 是一个可微的pytorch层,它确定地从姿势和形状参数映射到人体关节和顶点. 它可以作为可微层集成到任何 ...

  7. Distiller:量化算法

    Quantization Algorithms 量化算法 注意: 对于任何需要量化感知训练的以下方法,请参阅这里,了解如何使用Distiller的机制调用它. 基于范围的线性量化(Range-Base ...

  8. 优雅的操作张量维度(rearrange)和便携式矩阵乘法(einsum )

    目录 1.rearrange 2.repeat 3.reduce 4.附录 4.1 对应图像块切片 4.2 嵌入到pytorch层中 4.3 torch.einsum 多维线性表达式的方法 einop ...

  9. 阿里云高级技术专家林立翔:基于阿里云弹性GPU服务的神龙AI加速引擎,无缝提升AI训练性能

    2023 年 3 月 23 日 14:00,NVIDIA GTC 开发者大会阿里云开发者社区观看入口正式开放,阿里云高级技术专家林立翔带来了题为<基于阿里云弹性 GPU 服务的神龙 AI 加速引 ...

最新文章

  1. 7小时上线1个秒杀系统!!!!
  2. hadoop hdfs总结 NameNode部分 1
  3. 技术开发人员适应其他部门提需求的一个经验
  4. 【小白学习C++ 教程】三、C++用户输入、判断语句和switch
  5. 为什么不能根据返回类型来区分重载
  6. C++ 复制字符串/字符数组
  7. spark2.0.1 安装配置
  8. Eclipse在ubuntu平台不显示顶部菜单栏
  9. mysql3.5.2 下载_mybatis 3.5.2 jar 下载
  10. Nginx整合tomcat,实现反向代理和负载均衡
  11. python_day9 异常处理
  12. springboot 注解_springBoot注解大全
  13. 分数的大小比较优秀教案_《分数大小的比较》教学设计
  14. 【树莓派】在树莓派上制作开机自启动程序及服务2
  15. 【Unity3D插件】Unity开发利器——插件(各类插件及教程推荐)| 寻找C站宝藏
  16. SpringBoot及SpringCloud版本管理(Gradle版本)
  17. DOS专题之基本命令
  18. mac上使用Mounty软件报错The volume NETAC is not re-mountable in read/write mode
  19. 【论文泛读】ChineseBERT:融合字形与拼音信息的中文预训练模型
  20. JS将对象转为字符串

热门文章

  1. 远程办公安全威胁升级,疫情下企业如何自保?
  2. linux模块builtin是什么意思,builtin命令
  3. Win10提示无法创建新的分区也找不到现有的分区解法
  4. 图片切割软件imagemagick
  5. Win7 rdpclip.exe进程问题导致远程桌面剪贴板无法使用
  6. Project:解决问题:紧后任务开始日期不随着紧前任务变化
  7. STM32F103驱动GT911
  8. 20140717文思海辉推荐到花旗银行面试
  9. 2021-09-26 tantan表情
  10. 2018南京网络赛 j题 sum