1.普通的卷积操作
假设S=1,P=1,输入DF*DF*M ,卷积核是DK*DK*M*N ,输出是(DF-DK+3)*(DF-DK+3)*N .其中计算量是DK*DK*M*N*DF*DF
2.我们使用depthwise convolution,针对每个输入通道采用不同的卷积核,就是说一个卷积核对应一个输入通道
假设S=1,P=1.输入DF*DF*M ,卷积核是DK*DK*M ,输出是(DF-DK+3)*(DF-DK+3)*M .其中计算量是DK*DK*M*DF*DF
使用pointwise convolution,其实就是普通的卷积,只不过其采用1x1的卷积核
假设S=1,P=1.输入是(DF-DK+3)*(DF-DK+3)*M,卷积核是1*1*M*N,输出是(DF-DK+3)*(DF-DK+3)*N,其中计算量是1*1*M*N*(DF-DK+3)*(DF-DK+3)=M*N*(DF-DK+3)*(DF-DK+3)
所以采用深度分离卷积层操作比普通的卷积操作少了很多的参数
先定义几个参数
- 输入图片大小 W×W
- Filter大小 F×F
- 步长 S
- padding的像素数 P
conv/s2 就是S=2 的普通卷积操作
conv dw /s1 就是S=1 的深层卷积操作(depthwise convolution)
conv/s1 就是s=1 的 pointwise convolution