关于Pytorch中的nn.Conv2d的group参数的理解

nn.Conv2d的group参数学习笔记

nn.Conv2d的group参数

卷积,想必冲浪在一线的大家伙们都已经耳熟能详了,自从深度学习火爆全网之后,大家都在学习一线知识,那么今天想来讲讲关于Pytorch这个深度学习框架下的nn.Conv2d的group这个参数。

group这个参数是为分组卷积而创造出来的,分组卷积的好处呢?就是减少参数量,还能够得到更多的feature map。

这篇文章具体是想探讨一下分组卷积和普通的卷积之后的结果是否相同呢?

首先先来说一下答案:当参与卷积的卷积核是一样的时候,结果是一样,否则则是不一样的。

诶诶诶,先别着急喷,这里我想表达的意思,您可能还不够理解,请接着往下看吧。

关于group这个参数,官网给的解释是这样子的。

group
大意是什么呢?大概是当groups=1的时候,假设此时 输入的通道数为n,输出的通道数为m,那么理解为把输入的通道分成1组(不分组),每一个输出通道需要在所有的输入通道上做卷积,也就是一种参数共享的局部全连接。
如果把groups改成2,可以理解为把 输入的通道分成两组,此时每一个输出通道只需要在其中一组上做卷积。
如果groups=in_channels,也就是把 输入的通道分成in_channels组(每一组也就一个通道),此时每一个输出通道只需要在其中一个输入通道上做卷积。

不太理解吧?

假如group=2的话,就是把输入通道一分为二,比如我现在的输入格式为 2 ∗ 3 ∗ 3 2*3*3 233的话,现在就是将输入改为 1 ∗ 3 ∗ 3 1*3*3 133,同样的我对应的卷积核也会变为原来通道的一半。

那分组卷积和普通卷积的结果还会不会相同呢?

看下面的代码吧。

import torch
import torch<
  • 5
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值