首页 > 编程知识 正文

分组卷积的实现方法,分段卷积计算及其效率分析

时间:2023-05-03 12:15:22 阅读:286478 作者:4857

一、分组卷积的概念(回顾)

前面讲了。这里简单回顾一下:

分组卷积就是将特征图平均分为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一定要同时被输入通道数和输出通道数整除,否则会报错。

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。