前面讲了。这里简单回顾一下:
分组卷积就是将特征图平均分为N组,然后每组内部进行正常卷积,然后N组得到的特征图按照通道维度进行拼接,得到输出。
如图所示,左边是正常的卷积,输入通道为12,输出通道为6,卷积核大小为3*3。
右边就是分组卷积。分成了三组,然后分别做卷积。每一组输入通道有4,输出通道为2。经过分组卷积之后,得到的也是6个通道输出。
二、分组卷积的优缺点
分组卷积的优点:
1. 分组卷积的参数量是正常卷积的1/N 。N为分组数,这里为3。
2.分组卷积可以看成是正常卷积的稀疏结构,可以视为一种正则。感觉优点类似与Dropout~
3. 逐通道卷积可以进一步减少参数,在轻量化网络中很常用。
分组卷积的缺点:
数据信息只存在本组里面。通道之间的信息没有交互,存在信息的屏蔽和阻塞,不流通。
三、pytorch中使用分组卷积 import torchimport torch.nn as nninput = torch.randn(3, 15, 7, 7)group_conv_layer = nn.Conv2d(15, 9, 3, groups=3) #输入通道,输出通道,kernel_size=3output = group_conv_layer(input)print(output.size())
就是在卷积的函数中设置groups参数。
注意,groups一定要同时被输入通道数和输出通道数整除,否则会报错。
免责声明:文章源自网络,版权归原作者所有,如有侵犯联系删除。