可分离卷积
之前在看一篇论文的时候,论文应用到了Google Xception的可分离卷积(separable convolution),可分离卷积的核心思想是将卷积分成了逐通道卷积(depthwise convolution)和逐点卷积(pointwise convolution),可分离卷积可以减少卷积运算所需的参数量。
常规卷积运算
假如输入一个64X64的RGB图像,最终输出4个相等尺寸的特征图。
卷积层有四个Filter,每个filter有3个卷积核,卷积核大小是3*3。那么上图所示的卷积层参数量为多少呢?
N_parameters=3*3*3*4=108个参数
深度可分离卷积运算
depthwise convolution
深度就是in_channels(输入通道数),同样是大小为64X64的RGB图像,与之前不同的是,逐通道卷积是2D卷积,filter的数量和输入通道数相同,因此输出的特征图个数与输入通道数相等。
卷积层有3个filter,每个filter有一个kernel,因此参数个数为:
N_parameters=3*3*3=27个参数
pointwise convolution
逐通道卷积只是单单提取了每个通道上的特征,但是并没有建立像素点间的深度联系,因此需要利用pointwise convolution来建立这种联系。
pointswise convolution就是建立每个像素点在深度上的联系,所以卷积核的大小应该为1"1,filter大小为11depth,有几个filter就输出几张特征图。
逐点卷积层有4个filter,每个filter有3个1*1 的kernel,所以逐点卷积层的参数量为:
N_parameters=1*1*3*4=12个参数
深度可分离卷积所需的参数量为27+12=39个。