当前位置:首页 » 《随便一记》 » 正文

全局平均池化/全局最大池化Pytorch实现:

10 人参与  2022年11月29日 10:41  分类 : 《随便一记》  评论

点击全文阅读


全局池化

零、全局池化介绍一、全局平均池化二、全局最大池化

零、全局池化介绍

普通池化方法汇总详见:https://blog.csdn.net/qq_43665602/article/details/126625116
全局池化与普通池化的区别在于“局部区域”和“全局”:普通池化根据滑动窗口以及步长以逐步计算局部区域的方式进行;而全局池化是分别对每个通道的所有元素进行计算,谓之全局池化。
全局池化方式的优点:

大大降低计算的参数量;没有需要学习的参数,可以更好的避免过拟合;更能体现输入的全局信息;

拿一个简单的网络验证参数量下降(此处只计算权重):
因为池化操作是沿着通道方向对该通道的特征进行,故对于输入(N,C,H,W),池化输出为(N,C)。此处输入特征为(N,C,H,W)=(1,3,3,3),故池化输出为(N,C)=(1,3)。

在这里插入图片描述
在这里插入图片描述
通过上面的简单介绍,想必对全局池化有了一个初步认识,接下来主要通过代码演示实际操作时如何进行。
Tensorflow对于普通池化和全局池化均有对应的实现方式,我们可以直接调用。但对于Pytorch我们发现nn下面只有普通池化,找不到全局池化的相关函数,但其实我们只需要将滑动窗口大小设置为特征图大小即可完成全局池化。对于二维池化,具体地设置参数kernel_size=(H_inp,W_inp),其中inp表示输入特征。

一、全局平均池化

全局平均池化是分别对每个通道进行平均运算,对该通道所有元素计算并输入一个平均值,故输出通道数不变,但每个通道只有一个元素。

inp=torch.tensor(   [[[[8, 6, 1, 6, 4],          [1, 0, 0, 4, 7],          [7, 2, 7, 6, 1],          [5, 5, 3, 9, 4],          [6, 2, 9, 5, 9]],         [[2, 2, 6, 5, 3],          [4, 3, 1, 7, 6],          [4, 0, 5, 6, 3],          [8, 2, 1, 6, 8],          [6, 6, 7, 6, 1]],         [[3, 4, 8, 7, 9],          [7, 2, 4, 9, 3],          [1, 2, 7, 9, 1],          [1, 8, 5, 0, 0],          [1, 0, 5, 1, 6]]]])# torch.Size([1, 3, 5, 5])print(inp.shape)for c in range(3):    print("c_{}".format(c),torch.sum(inp[0,c,:,:])/(inp.shape[2]*inp.shape[3]))print('-'*25)out=nn.AvgPool2d(kernel_size=(inp.shape[2],inp.shape[3]))(inp)print(out)print(out.shape)
torch.Size([1, 3, 5, 5])# 手动计算每个通道的平均值c_0 tensor(4.6800)c_1 tensor(4.3200)c_2 tensor(4.1200)-------------------------# 全局平均池化结果:因为平均运算采取向下取整,故与手动计算的存在一点区别tensor([[[[4]],         [[4]],         [[4]]]])torch.Size([1, 3, 1, 1])

在这里插入图片描述

二、全局最大池化

全局最大池化是分别对每个通道进行取最大值运算,对该通道所有元素取最大值,故输出通道数不变,但每个通道只有一个元素。

inp=torch.tensor([[[[8, 6, 1, 6, 4],          [1, 0, 0, 4, 7],          [7, 2, 7, 6, 1],          [5, 5, 3, 9, 4],          [6, 2, 9, 5, 9]],         [[2, 2, 6, 5, 3],          [4, 3, 1, 7, 6],          [4, 0, 5, 6, 3],          [8, 2, 1, 6, 8],          [6, 6, 7, 6, 1]],         [[3, 4, 8, 7, 9],          [7, 2, 4, 9, 3],          [1, 2, 7, 9, 1],          [1, 8, 5, 0, 0],          [1, 0, 5, 1, 6]]]],dtype=torch.float32)# torch.Size([1, 3, 5, 5])print(inp.shape)for c in range(3):    print("c_{}".format(c),torch.max(inp[0,c,:,:]))print('-'*25)out=nn.MaxPool2d(kernel_size=(inp.shape[2],inp.shape[3]))(inp)print(out)print(out.shape)
# 手动计算每个通道的最大值torch.Size([1, 3, 5, 5])c_0 tensor(9.)c_1 tensor(8.)c_2 tensor(9.)-------------------------# 全局最大化结果:分别对每个通道所有元素取最大值tensor([[[[9.]],         [[8.]],         [[9.]]]])torch.Size([1, 3, 1, 1])

在这里插入图片描述


点击全文阅读


本文链接:http://m.zhangshiyu.com/post/49247.html

<< 上一篇 下一篇 >>

  • 评论(0)
  • 赞助本站

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

最新文章

  • (此去经年无故人)南初陆南城:结局+番外精品选集起点章节+阅读即将发布预订
  • 沈凝夏叶晚怡附加完整在线阅读(归雁不栖故人枝)最近更新列表
  • 剧情人物是时初,白浩雄的玄幻言情小说《召诸神,踏万界,天命帝女逆乾坤》,由网络作家&ldquo;海鸥&rdquo;所著,情节扣人心弦,本站TXT全本,欢迎阅读!本书共计381345字,185章节,:结局+番外免费品鉴:结局+番外评价五颗星
  • 凤青禾,江明远,***枢小说(别人修仙我捡漏,卷王们破防了)最近更新(凤青禾,江明远,***枢)整本无套路阅读
  • 薛梨小说无删减+后续(曾经亲情似草芥)畅享阅读
  • 沈南栀小说(穿越时空,我要修补时空裂缝)章节目录+起点章节(沈南栀)全篇清爽版在线
  • 未婚妻被巨蟒缠身,我该吃就吃该喝就喝前言+后续_阿豪林月周然后续+番外_小说后续在线阅读_无删减免费完结_
  • 陆骁,陆本初小说(陆骁,陆本初)(癫!睁眼穿成老太太挥鞭***逆子)前传+阅读全新作品预订
  • 姐姐含冤而死后冥王另娶,我杀穿整个地府在线阅读_阎罗殿殷红别提一口气完结_小说后续在线阅读_无删减免费完结_
  • (书荒必看)毒后重生:疯王的神医小娇妻沈清歌,萧绝:+后续热血十足
  • 重生后我和太监联手灭了敌国喻辰,林雪续集(重生后我和太监联手灭了敌国)终极反转(喻辰,林雪)全篇一口气阅读
  • 我不做灵媒后,自称灵媒摆渡人的养妹害怕了内容精选_苏晓霍老阿姐无广告_小说后续在线阅读_无删减免费完结_

    关于我们 | 我要投稿 | 免责申明

    Copyright © 2020-2022 ZhangShiYu.com Rights Reserved.豫ICP备2022013469号-1