Pytorch中dilation(Conv2d)参数详解

Pytorch中dilation(Conv2d)参数详解首先我们看一下 Pytorch 中的 Conv2d 的对应函数 Tensor 通道排列顺序是 batch channel height width torch nn Conv2d in channels out channels kernel size stride 1 padding 0 dilation 1

目录

一、Conv2d

 二、Conv2d中的dilation参数


一、Conv2d

首先我们看一下Pytorch中的Conv2d的对应函数(Tensor通道排列顺序是:[batch, channel, height, width]):

torch.nn.Conv2d(in_channels, out_channels, kernel_size, stride=1, padding=0, dilation=1, groups=1, bias=True, padding_mode='zeros')

  • in_channels参数代表输入特征矩阵的深度即channel,比如输入一张RGB彩色图像,那in_channels = 3;
  • out_channels参数代表卷积核的个数,使用n个卷积核输出的特征矩阵深度即channel就是n;
  • kernel_size参数代表卷积核的尺寸,输入可以是int类型如3 代表卷积核的height = width = 3,也可以是tuple类型如(3,  5)代表卷积核的height = 3,width = 5;
  • stride参数代表卷积核的步距默认为1,和kernel_size一样输入可以是int类型,也可以是tuple类型,这里注意,若为tuple类型即第一个int用于高度尺寸,第二个int用于宽度尺寸;
  •  padding参数代表在输入特征矩阵四周补零的情况默认为0,同样输入可以为int型如1 代表上下方向各补一行0元素,左右方向各补一列0像素(即补一圈0),如果输入为tuple型如(2, 1) 代表在上方补两行下方补两行,左边补一列,右边补一列。可见下图,padding[0]是在H高度方向两侧填充的,padding[1]是在W宽度方向两侧填充的;

Pytorch中dilation(Conv2d)参数详解

 二、Conv2d中的dilation参数

        以上大家应该都比较熟悉,今天想说的是其中的dilation这个参数,可以看到其默认值为1。先贴一段官方文档中对该参数的表述:

        controls the spacing between the kernel points;

         它有点类似于stride,实际含义为:每个点之间有空隙的过滤器,即为dilation。例如,在一个维度上,一个大小为3的过滤器w会对输入的x进行如下计算:w[0] * x[0] + w[1] * x[1] + w[2] * x[2]。若dilation = 1,过滤器会计算:w[0] * x[0] + w[1] * x[2] + w[2] * x[4];换句话说,在不同点之间有一个1的差距。(Pytoch中dilation默认等于1,但是实际为不膨胀,也就是说设置dilation = 2时才会真正进行膨胀操作)

        这在某些情况下与0-dilated滤波器一起使用非常有用,因为它允许你用更少的层来更积极地合并整个输入的空间信息。例如,如果你把两个3 x 3的CONV层叠在一起,那么可以说,第二层的神经元是一个5×5的输入补丁的函数(我们会说这些神经元的有效感受野是5×5)。如果我们使用dilation的卷积,那么这个有效感受野会增长得更快。

Pytorch中dilation(Conv2d)参数详解

        这种情况实际为Pytorch中,dilation = 2的情况。

        特别注意:在Pytorch中,dilation = 1等同于没有dilation的标准卷积。

References:

https://pytorch.org/docs/stable/generated/torch.nn.Conv2d.html?highlight=conv2d#torch.nn.Conv2d

https://blog.csdn.net/_/article/details/

https://cs231n.github.io/convolutional-networks/

https://stackoverflow.com/questions//default-dilation-value-in-pytorch

https://blog.csdn.net/_/article/details/

https://github.com/vdumoulin/conv_arithmetic/blob/master/README.md

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/221702.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月17日 下午5:29
下一篇 2026年3月17日 下午5:29


相关推荐

  • java Pattern和Matcher详解

    java Pattern和Matcher详解结论 Pattern 与 Matcher 一起合作 Matcher 类提供了对正则表达式的分组支持 以及对正则表达式的多次匹配支持 单独用 Pattern 只能使用 Pattern matcher Stringregex CharSequence 一种最基础最简单的匹配 java 正则表达式通过 java util regex 包下的 Pattern 类与 Matcher 类实现 建议在阅读本

    2026年3月18日
    2
  • 定位?

    定位?

    2021年6月18日
    98
  • connect A with B_anyconnect怎么用

    connect A with B_anyconnect怎么用解决git下载出现:Failedtoconnectto127.0.0.1port1080:Connectionrefused拒绝连接错误(20190226)文章目录:一、git拒绝连接原因分析二、错误解决方式1、查看Linux当前有没有使用代理2、查看端口有没有被占用2、取消代理设置linux解决端口号被占用(扩展内容)不知道是不是翻墙导致的错误,昨天同事说服务器出现了这个错误……

    2025年9月28日
    5
  • 国内外主流AI大模型都有哪些?

    国内外主流AI大模型都有哪些?

    2026年3月15日
    2
  • git添加用户名和邮箱「建议收藏」

    git添加用户名和邮箱「建议收藏」想了解更多数据结构以及算法题,可以关注微信公众号“数据结构和算法”,每天一题为你精彩解答。也可以扫描下面的二维码关注

    2025年8月28日
    6
  • android手机浏览器测评,九款手机浏览器评测总结

    android手机浏览器测评,九款手机浏览器评测总结通过以上评测 相信大家对这九款手机浏览器已经有了一个比较全面的了解 总的来说 UC 作为 骨灰级 的手机浏览器产品 在功能上是最全面的 操作也比较易于掌握 只是性能还不太尽如人意 手机浏览器在 iPhone 版的表现可圈可点 多项测试数据名列前茅 领先于苹果自带的 Safari 浏览器 不过在 Android 版上还有些许不足 希望能够在以后的版本中得以改进 加之腾讯得天独厚的推广优势和用户群 腾讯手机浏览

    2026年3月20日
    1

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号