码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • 【PyTorch】nn.MaxPool2d函数详解


    文章目录

    • 1. 函数语法格式
    • 2. 参数解释
    • 3. 尺寸关系
    • 4. 使用案例
    • 5. nn.functional.max_pool2d

    1. 函数语法格式

    官方链接

    torch.nn.MaxPool2d(
    	kernel_size, 
    	stride=None, 
    	padding=0, 
    	dilation=1, 
    	return_indices=False, 
    	ceil_mode=False
    )
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8

    2. 参数解释

    • kernel_size (int or tuple)【必选】:max pooling 的窗口大小,当最大池化窗口是方形的时候,只需要一个整数边长即可;最大池化窗口不是方形时,要输入一个元组表 高和宽。
    • stride (int or tuple, optional)【可选】:max pooling 的窗口移动的步长。默认值是 kernel_size
    • padding (int or tuple, optional)【可选】:输入的每一条边补充0的层数
    • dilation (int or tuple, optional)【可选】:一个控制窗口中元素步幅的参数
    • return_indices (bool)【可选】:如果等于 True,会返回输出最大值的序号,对于上采样操作会有帮助
    • ceil_mode (bool)【可选】:如果等于True,计算输出信号大小的时候,会使用向上取整,代替默认的向下取整的操作

    ⭐ dilation 说明

    如果我们设置的 dilation=0 的话,效果如图:蓝色为输入,绿色为输出,最大池化窗口为3 × 3

    在这里插入图片描述

    如果设置的是dilation=1,那么效果如图:蓝色为输入,绿色为输出,最大池化窗口卷积核仍为 3 × 3 。

    在这里插入图片描述

    3. 尺寸关系

    输入可以为: ( N , C i n , H i n , W i n ) (N,C_{in},H_{in},W_{in}) (N,Cin​,Hin​,Win​) 或 ( C i n , H i n , W i n ) (C_{in},H_{in},W_{in}) (Cin​,Hin​,Win​)
    输出可以为: ( N , C o u t , H o u t , W o u t ) (N,C_{out},H_{out},W_{out}) (N,Cout​,Hout​,Wout​) 或 ( C o u t , H o u t , W o u t ) (C_{out},H_{out},W_{out}) (Cout​,Hout​,Wout​)

    它们之间的关系为:
    H o u t = ⌊ H i n + 2 × p a d d i n g [ 0 ] − d i l a t i o n [ 0 ] × ( k e r n e l _ s i z e [ 0 ] − 1 ) − 1 s t r i d e [ 0 ] + 1 ⌋ H_{out}=\left\lfloor\frac{H_{in}+2 \times padding[0]-dilation[0] \times(kernel\_size[0]-1)-1}{ stride [0]}+1\right\rfloor Hout​=⌊stride[0]Hin​+2×padding[0]−dilation[0]×(kernel_size[0]−1)−1​+1⌋

    W o u t = ⌊ W i n + 2 × p a d d i n g [ 1 ] − d i l a t i o n [ 1 ] × ( k e r n e l _ s i z e [ 1 ] − 1 ) − 1 s t r i d e [ 1 ] + 1 ⌋ W_{out}=\left\lfloor\frac{W_{in}+2 \times padding[1]-dilation[1] \times(kernel\_size[1]-1)-1}{ stride [1]}+1\right\rfloor Wout​=⌊stride[1]Win​+2×padding[1]−dilation[1]×(kernel_size[1]−1)−1​+1⌋

    4. 使用案例

    # pool of square window of size=3, stride=2
    m = nn.MaxPool2d(3, stride=2)
    # pool of non-square window
    m = nn.MaxPool2d((3, 2), stride=(2, 1))
    input = torch.randn(20, 16, 50, 32)
    output = m(input)
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    5. nn.functional.max_pool2d

    官网链接

    ⭐ 区别

    torch.nn.MaxPool2d 和 torch.nn.functional.max_pool2d,在 pytorch 构建模型中,都可以作为最大池化层的引入,但前者为类模块,后者为函数,在使用上存在不同。

    ⭐ 使用

    torch.nn.functional.max_pool2d(
    	input, 
    	kernel_size, 
    	stride=None, 
    	padding=0, 
    	dilation=1, 
    	ceil_mode=False, 
    	return_indices=False
    )
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
  • 相关阅读:
    SpringBoot WebService服务端&客户端使用教程
    如何免费获得一个市全年的气象数据?降雨量气温湿度太阳辐射等等数据
    Seata的四种模式
    y122.第七章 服务网格与治理-Istio从入门到精通 -- 流量治理实战进阶(八)
    专业130+总分410+上海交通大学819信号系统与信号处理考研上交电子信息通信生医电科,真题,大纲,参考书。
    分布式定时任务技术选型
    深入理解Spring Boot钩子函数
    部署Kubernetes(k8s)时,为什么要关闭swap、selinux、firewall 防火墙?
    《持续交付:发布可靠软件的系统方法》- 读书笔记(十四)
    央企施工企业数字化转型秘诀“一把手负责制”
  • 原文地址:https://blog.csdn.net/See_Star/article/details/127565842
  • 最新文章
  • 【JVM】编译执行与解释执行的区别是什么?JVM 使用哪种方式?
    用 Hashids 优雅解决 C 端自增 ID 暴露问题
    V8引擎 精品漫游指南--Ignition篇(上) 指令 栈帧 槽位 调用约定 内存布局 基础内容
    LLVM Pass快速入门(四):代码插桩
    milkup:桌面端 markdown AI续写和即时渲染
    基于项目工程构建SBOM(软件物料清单)的研究
    鸿蒙应用开发UI基础第二节:鸿蒙应用程序框架核心解析与实操
    .NET 中如何快速实现 List 集合去重?
    扣子Coze实战:从0到1打造抖音+小红书热点监控智能体
    浅谈数据访问层
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
小工具 小游戏
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1

京公网安备 11010502049817号