Group Convolution 分组卷积

本文详细介绍了GroupConvolution(分组卷积),一种用于减少神经网络参数量的技术,最早出现在2012年的AlexNet中。分组卷积通过将输入特征图分组,并在各组内独立进行卷积操作,有效减少了计算资源的需求,同时在某些情况下还能提高模型的性能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Group Convolution分组卷积
最早见于AlexNet——2012年Imagenet的冠军方法,Group Convolution被用来切分网络,使其在2个GPU上并行运行,AlexNet网络结构如下:
在这里插入图片描述

Group Convolution 原理

如果输入feature map尺寸为C∗H∗WC*H*WCHW,卷积核有N个,输出feature map与卷积核的数量相同也是N,每个卷积核的尺寸为C∗K∗KC*K*KCKK,N个卷积核的总参数量为N∗C∗K∗KN*C*K*KNCKK。如下图所示,传统卷积方法和分组卷积方法。
在这里插入图片描述
Group Convolution,则是对输入feature map进行分组,然后每组分别卷积。其实也就是,原本应该是C∗H∗WC*H*WCHW 的图片,用N个传统的卷积核C∗K∗KC*K*KCKK,就可以生成N∗H∗WN*H*WNHW(假设经过池化,图片尺寸不变)这样其实,是一个通道为C来进行整体卷积生成一个图片。而分组卷积,是一个通道为CG\frac{C}{G}GC来进行整体卷积生成一个图片。
具体来说就是,假设输入feature map的尺寸仍为C∗H∗WC*H*WCHW,输出feature map的数量为N个,如果设定要分成G个groups,则每组的输入feature map数量为 CG\frac{C}{G}GC,每组的输出feature map数量为 NG\frac{N}{G}GN,每个卷积核的尺寸为 CG∗K∗K\frac{C}{G}*K*KGCKK,卷积核的总数仍为N个,每组的卷积核数量为NG\frac{N}{G}GN,卷积核只与其同组的输入map进行卷积,卷积核的总参数量为N∗CG∗K∗KN∗\frac{C}{G}*K*KNGCKK,可见,总参数量减少为原来的 1G\frac{1}{G}G1

Group Convolution的用途

  1. 减少参数量,分成G组,则该层的参数量减少为原来的 1G\frac{1}{G}G1
  2. Group Convolution可以看成是structured sparse,每个卷积核的尺寸由C∗K∗KC*K*KCKK 变为 CG∗K∗K\frac{C}{G}*K*KGCKK,可以将其余(C−CG)∗K∗K(C−\frac{C}{G})*K*K(CGC)KK的参数视为0,有时甚至可以在减少参数量的同时获得更好的效果(相当于正则)。

参考文献
https://www.cnblogs.com/shine-lee/p/10243114.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值