感謝作者:https://zhuanlan.zhihu.com/p/54425450
從MobileNet中的深度可分卷積(Depthwise Separable Convolution)講起
看過MobileNet的都知道,MobileNet最主要的加速就是因爲深度可分卷積(Depthwise Separable Convolution)的使用。將原本一步到位的卷積操作,分爲兩個卷積的級聯,分成的兩個卷積相對於原始的卷積而言,參數大大減少,計算量大大減少。
3、深度可分卷積的pytorch實現:
def conv_dw(inp, oup, stride):
return nn.Sequential(
nn.Conv2d(inp, inp, 3, stride, 1, groups=inp, bias=False),
nn.BatchNorm2d(inp),
nn.ReLU(inplace=True),
nn.Conv2d(inp, oup, 1, 1, 0, bias=False),
nn.BatchNorm2d(oup),
nn.ReLU(inplace=True)
)