关于pytorch中nn.conv中的参数group

关于pytorch中nn.conv中的参数
之前一直是用的tensor flow +keras,最近刚转为pytorch,发现torch中的卷积参数和tensorflow中的有点不同,特来记录下,以下是官网中的解释:

在这里插入图片描述
和tensorflow不同,in_channels和out_channels分别是输入和输出的通道数,stride步长以及padding填充和keras是一样的,groups 这个参数很有意思,主要是做了类似分组卷积的工作,举个例子,
如果你的input_size = [1,6,1,1], 如果你令
conv = nn.Conv2d(in_channels=6, out_channels=6, kernel_size=1, stride=1, dilation: 空洞卷积; padding=0, groups=?,
bias=False)
当groups=1时,即为默认的卷积层,则conv.weight.data.size为[6,6,1,1],实际上共有6 * 6=36个参数,若group=3时,则每组计算只有out_channel/groups = 2个channel参与,故每一组卷积层的参数大小为[6,2,1,1],每一组共有6 * 2=12个参数,相当于每一组被重复用了3次(即group)次,最后再concat.
另外,在实际实验中,同样的网络结构下,这种分组的卷积效果是好于未分组的卷积的效果的。

  • 7
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值