炼丹心得 (持续更新)

目录

关于库函数的使用

对Conv2d()中groups参数的理解:(2023/04/09)

关于库函数的使用

对Conv2d()中groups参数的理解:(2023/04/09)

概括来讲,groups参数就是对通道(channel)进行分组,已到达减少计算量的目的;

这里的通道包括了输入通道(in_channels)和输出通道(out_channels)

以下面的代码为例:

Conv2d(in_channels=16, out_channels=32, kernel_size=1, bias=True, groups=4)
  1. groups=4表示通道数被分成4组
  2. 因为in_channelsout_channels都需要进行分组,则对应的数值需能被groups对应的数值整除,eg. 16和32能被4整除
  3. in_channelsout_channelsgroups都确定时,每个group的channel个数也确定了,eg. 输入通道为4|16=4个通道一组,输出通道为4|32=8个通道一组
  4. 运算时,一组输入通道负责一组输出通道,如下图所示:
  5. 对比一下参数量的差距:
    groups=1(默认条件下):16x32=512
    groups=4(此例条件下):4x8x4=128

因此,计算参数量的公式可以概括为:(每组输入通道数)x(每组输出通道数)x(组数),即

\frac{in\_channels}{groups}\times\frac{out\_channels}{groups}\times groups

当默认条件下(组数为1时),每组输入通道数=总的输入通道数,每组输出通道数=总的输出通道数,则参数量为:(总的输入通道数)x(总的输出通道数),即 

in\_channels\times out\_channels

当组数不为1时,每组输入通道数 =(总的输入通道数/组数),每组输出通道数 =(总的输出通道数/组数),则参数量为:(总的输入通道数/组数)x(总的输出通道数/组数)x (组数);


若有不妥之处,望不吝赐教:D 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值