Pytorch中dilation(Conv2d)参数详解
目录
一、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宽度方向两侧填充的;
二、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层叠在一起,那么可以说,第二层的神经元是一个5x5的输入补丁的函数(我们会说这些神经元的有效感受野是5x5)。如果我们使用dilation的卷积,那么这个有效感受野会增长得更快。
这种情况实际为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/qq_37541097/article/details/102926037
https://cs231n.github.io/convolutional-networks/
https://stackoverflow.com/questions/43474072/default-dilation-value-in-pytorch
https://blog.csdn.net/qq_37541097/article/details/102926037
https://github.com/vdumoulin/conv_arithmetic/blob/master/README.md
Pytorch中dilation(Conv2d)参数详解相关推荐
- Python数据可视化——matplotlib.pyplot中plt的参数详解
matplotlib.pyplot中plt的参数详解: #平滑折线的示例 # plt.plot(xnew, ynew, marker='.', markevery=markevery, ls='-', ...
- 站长在线Python精讲:在Python函数中的默认参数详解
欢迎你来到站长在线的站长学堂学习Python知识,本文学习的是<在Python函数中的默认参数详解>.本文的主要内容有:默认参数的概念和默认参数的示例.默认参数不能设置可变对象. 目录 1 ...
- 站长在线Python教程精讲:在Python函数中的关键字参数详解
欢迎你来到站长在线的站长学堂学习Python知识,本文学习的是<在Python函数中的关键字参数详解>.本文的主要内容有:关键字参数的含义和关键字参数的应用举例. 目录 1.关键字参数的含 ...
- python xgboost参数_xgboost中XGBClassifier()参数详解
常规参数 booster gbtree 树模型做为基分类器(默认) gbliner 线性模型做为基分类器 silent silent=0时,不输出中间过程(默认) silent=1时,输出中间过程 n ...
- 【PyTorch】nn.Conv2d函数详解
文章目录 1. 函数语法格式 2. 参数解释 3. 尺寸关系 4. 使用案例 5. nn.functional.conv2d 1. 函数语法格式 CONV2D官方链接 torch.nn.Conv2d( ...
- pandas中的read_csv参数详解
1.官网语法 pandas.read_csv(filepath_or_buffer, sep=NoDefault.no_default**,** delimiter=None**,** header= ...
- pytorch中的卷积操作详解
首先说下pytorch中的Tensor通道排列顺序是:[batch, channel, height, width] 我们常用的卷积(Conv2d)在pytorch中对应的函数是: torch.nn. ...
- PyTorch中计算KL散度详解
PyTorch计算KL散度详解 最近在进行方法设计时,需要度量分布之间的差异,由于样本间分布具有相似性,首先想到了便于实现的KL-Divergence,使用PyTorch中的内置方法时,踩了不少坑,在 ...
- Linux中top命令参数详解、常用快捷键
1.命令 1.简介 top命令是Linux下常用的性能分析工具,能够实时显示系统中各个进程的资源占用状况,类似于Windows的任务管理器. 显示系统当前的进程和其他状况: top是一个动态显示过程 ...
- linux中w命令参数详解
以下是是linux w 命令详解,希望对您有所帮助. 是linux w 命令详解功能说明:显示目前登入系统的用户信息. 语法:w [-fhlsuV][用户名称] linux w 命令补充说明:执行这项 ...
最新文章
- 0,1,2,3,2,1,0,1,2,3,2,1,0,...
- mongodb 3.2性能测试
- 基于matlab的人脸五官边缘检测方法,基于MATLAB的人脸识别系统的设计
- 设计模式之桥接模式实例
- 去除有序数组/链表的重复元素--双指针原地修改
- Eclipse安装TestNG插件
- excel记账本模板_原来这才是老板最喜欢看的财务报表!这些模板送你,录入自动生成...
- AppFabric客户端的一些配置(Microsoft.Web.DistributedCache)
- python——import日常学习记录
- Android sdk 环境变量配置无效
- er studio mysql逆向生成
- h3c交换机服务器无响应,华为(H3C)交换机版本升级遇到的问题总结
- 20世纪物理学进展与百年重大新技术
- oracle 11g xdb.,Oracle 11g升级到11.2.0.3过程中XDB.DBMS_XMLSCHEMA相关报错
- 无线路由器和有线路由器桥接
- [滴滴校招]末尾0的个数
- [数学知识][几何]求三角形面积的几种方法
- 解决pytorch当中RuntimeError: expected scalar type Double but found Float的问题
- 京东云使用密钥登陆云主机
- 2.k-均值(k-means)聚类算法