对pytorch的函数中的group参数的作用介绍


Posted in Python onFebruary 18, 2020

1.当设置group=1时:

conv = nn.Conv2d(in_channels=6, out_channels=6, kernel_size=1, groups=1)
conv.weight.data.size()

返回:

torch.Size([6, 6, 1, 1])

另一个例子:

conv = nn.Conv2d(in_channels=6, out_channels=3, kernel_size=1, groups=1)
conv.weight.data.size()

返回:

torch.Size([3, 6, 1, 1])

可见第一个值为out_channels的大小,第二个值为in_channels的大小,后面两个值为kernel_size

2.当设置为group=2时

conv = nn.Conv2d(in_channels=6, out_channels=6, kernel_size=1, groups=2)
conv.weight.data.size()

返回:

torch.Size([6, 3, 1, 1])

3.当设置group=3时

conv = nn.Conv2d(in_channels=6, out_channels=6, kernel_size=1, groups=3)
conv.weight.data.size()

返回:

torch.Size([6, 2, 1, 1])

4.当设置group=4时

conv = nn.Conv2d(in_channels=6, out_channels=6, kernel_size=1, groups=4)
conv.weight.data.size()

报错:

ValueError: in_channels must be divisible by groups

groups的值必须能整除in_channels

注意:

同样也要求groups的值必须能整除out_channels,举例:

conv = nn.Conv2d(in_channels=6, out_channels=3, kernel_size=1, groups=2)
conv.weight.data.size()

否则会报错:

ValueError: out_channels must be divisible by groups

5.当设置group=in_channels时

conv = nn.Conv2d(in_channels=6, out_channels=6, kernel_size=1, groups=6)
conv.weight.data.size()

返回:

torch.Size([6, 1, 1, 1])

所以当group=1时,该卷积层需要6*6*1*1=36个参数,即需要6个6*1*1的卷积核

计算时就是6*H_in*W_in的输入整个乘以一个6*1*1的卷积核,得到输出的一个channel的值,即1*H_out*W_out。这样经过6次与6个卷积核计算就能够得到6*H_out*W_out的结果了

如果将group=3时,卷积核大小为torch.Size([6, 2, 1, 1]),即6个2*1*1的卷积核,只需要需要6*2*1*1=12个参数

那么每组计算就只被in_channels/groups=2个channels的卷积核计算,当然这也会将输入分为三份大小为2*H_in*W_in的小输入,分别与2*1*1大小的卷积核进行三次运算,然后将得到的3个2*H_out*W_out的小输出concat起来得到最后的6*H_out*W_out输出

在实际实验中,同样的网络结构下,这种分组的卷积效果是好于未分组的卷积的效果的。

以上这篇对pytorch的函数中的group参数的作用介绍就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python中sys.argv参数用法实例分析
May 20 Python
举例详解Python中yield生成器的用法
Aug 05 Python
Python实现拷贝多个文件到同一目录的方法
Sep 19 Python
对Python中Iterator和Iterable的区别详解
Oct 18 Python
python脚本当作Linux中的服务启动实现方法
Jun 28 Python
python文字和unicode/ascll相互转换函数及简单加密解密实现代码
Aug 12 Python
Python logging设置和logger解析
Aug 28 Python
Python3爬虫带上cookie的实例代码
Jul 28 Python
python实现图片素描效果
Sep 26 Python
解决python3输入的坑——input()
Dec 05 Python
解决pip安装tensorflow中出现的no module named tensorflow.python 问题方法
Feb 20 Python
python获取字符串中的email
Mar 31 Python
基于python3实现倒叙字符串
Feb 18 #Python
Python日期格式和字符串格式相互转换的方法
Feb 18 #Python
Python数组并集交集补集代码实例
Feb 18 #Python
通过python检测字符串的字母
Feb 18 #Python
Python安装whl文件过程图解
Feb 18 #Python
python下载卫星云图合成gif的方法示例
Feb 18 #Python
如何使用python传入不确定个数参数
Feb 18 #Python
You might like
多文件上载系统完整版
2006/10/09 PHP
PHP 将逗号、空格、回车分隔的字符串转换为数组的函数
2012/06/07 PHP
yii2.0之GridView自定义按钮和链接用法
2014/12/15 PHP
javascript静态的url如何传递
2007/05/03 Javascript
javascript 获取表单file全路径
2009/12/31 Javascript
原生JS可拖动弹窗效果实例代码
2013/11/09 Javascript
IE下Ajax缓存问题的快速解决方法(get方式)
2014/01/09 Javascript
javascript常见操作汇总
2014/09/03 Javascript
jQuery中prepend()方法用法实例
2014/12/25 Javascript
原生js模拟淘宝购物车项目实战
2015/11/18 Javascript
即将发布的jQuery 3 有哪些新特性
2016/04/14 Javascript
深入理解AngularJS中的ng-bind-html指令和$sce服务
2016/09/08 Javascript
bootstrap模态框实现拖拽效果
2016/12/14 Javascript
BootStrapValidator校验方式
2016/12/19 Javascript
angularJS开发注意事项
2018/05/26 Javascript
微信小程序自定义底部弹出框功能
2020/11/18 Javascript
python requests 库请求带有文件参数的接口实例
2019/01/03 Python
python实现定时压缩指定文件夹发送邮件
2020/12/22 Python
解决Django Static内容不能加载显示的问题
2019/07/28 Python
Python SELENIUM上传文件或图片实现过程
2019/10/28 Python
django template实现定义临时变量,自定义赋值、自增实例
2020/07/12 Python
Jupyter安装拓展nbextensions及解决官网下载慢的问题
2021/03/03 Python
实例讲解使用SVG制作loading加载动画的方法
2016/04/05 HTML / CSS
美国美发品牌:Bumble and Bumble
2016/10/08 全球购物
阿迪达斯芬兰官方网站:adidas芬兰
2017/01/30 全球购物
日本最大级玩偶手办购物:あみあみ Amiami
2018/04/23 全球购物
美国亚洲时尚和美容产品的一站式网上商店:Stylevana
2019/09/05 全球购物
儿科主治医生个人求职信
2013/09/23 职场文书
保险专业自荐信范文
2014/02/20 职场文书
原材料检验岗位职责
2014/03/15 职场文书
数学系毕业生求职信
2014/05/29 职场文书
医院领导班子四风问题对照检查材料
2014/10/26 职场文书
2014年工程部工作总结
2014/11/25 职场文书
幼儿园父亲节活动总结
2015/02/12 职场文书
基石观后感
2015/06/12 职场文书
2015年社区重阳节活动总结
2015/07/30 职场文书