分组卷积(Group Convolution)
分组卷积在ResNext、ShuffleNet中都用到了
首先必须明确:
常规卷积(Convolution)的参数量是:
K*K*C_in*n
K是卷积核大小,C_in是input的channel数,n是卷积核个数(output的channel数)
分组卷积的参数量是:
K*K*C_in*n*1/g
K是卷积核大小,C_in是input的channel数,n是卷积核个数(output的channel数),g是分组数
DW(Depthwise Separable Conv)+PW(Pointwise Conv) 卷积
DW卷积也叫做深度可分离卷积,DW+PW的组合在MobileNet、ShuffleNet中都使用了
DW卷积的参数量是:
K*K*C_in (此时C_in = n)
K是卷积核大小,C_in是input的channel数,DW卷积中,卷积核个数与input的channel数相同
PW卷积的参数量是:
1*1*C_in*n
PW卷积的卷积核为1*1大小,C_in是input的channel数,n是卷积核个数(output的channel数)
总结
- 分组卷积的参数量是常规卷积(Convolution)参数量的1/g, 其中g是分组数
- DW卷积的参数量是常规卷积(Convolution)参数量的1/n, 其中n是卷积核个数
- 当分组卷积中的g=C_in, n=C_in时,DW==分组卷积(将每个channel自己作为一组)
Residuals与Inverted Residuals
; bottleneck与linearbottleneck
Bottleneck指的是瓶颈层,Bottleneck结构其实就是为了降低参数量,Bottleneck 三步走是先 PW 对数据进行降维,再进行常规卷积核的卷积,最后 PW 对数据进行升维(类似于沙漏型)。
这里侧重的是网络中的降(升)维->卷积->升(降)维结构,而不关注shortcut
Linear Bottlececk: 针对MobileNet v2中的Inverted residual block结构的最后一个1*1 卷积层使用了线性激活函数,而不是relu激活函数
Original: https://blog.csdn.net/jq_98/article/details/122905922
Author: jq_98
Title: 分组卷积与DW卷积、Residuals与Inverted Residuals、bottleneck与linearbottleneck
原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/692095/
转载文章受原作者版权保护。转载请注明原作者出处!