深度可分离卷积Depthwise Separable Convolution
参考连接
正常卷积操作的输出通道数等于卷积核的个数,如上图左边的Standard Convolution中所示
而Depthwise Convolution中对每个通道只使用一个卷积核,所以单个通道在卷积操作之后的输出通道数也为1。如果输入feature map的通道数为
k
k
k,如上图的右边所示,对
k
k
k个通道分别单独使用一个卷积核之后便得到
k
k
k个通道为1的feature map。再将这N个feature map按顺序拼接便得到一个通道为
k
k
k的输出feature map。
普通卷积和深度可分离卷积块的对比:
对于普通卷积而言,假设有一个3×3大小的卷积层,其输入通道为16、输出通道为32。具体为,32个3×3大小的卷积核会遍历16个通道中的每个数据,最后可得到所需的32个输出通道,所需参数为16×32×3×3=4608个。
因为输入通道为16,所以一个卷积核的channel也应该为16,卷积核的长宽为33,又因为输出通道为32,所以一共需要32个1633的卷积核,即所需要的参数为163332
对于深度可分离卷积结构块而言,假设有一个深度可分离卷积结构块,其输入通道为16、输出通道为32,其会用16个3×3大小的卷积核分别遍历16通道的数据,得到了16个特征图谱。在融合操作之前,接着用32个1×1大小的卷积核遍历这16个特征图谱,所需参数为16×3×3+16×32×1×1=656个。
因为输入通道为16,将其拆分成16个1通道的数据,然后用16个33的卷积核来分别对这16个1通道的数据进行卷积操作,即得到了16个特征图。然后把这16个特征图组成一个channel数为16的特征图map2,再用32个1116的卷积核对map2进行卷积,所以需要的参数个数为1633 + 1632*1
可以看出来深度可分离卷积结构块可以减少模型的参数。