MixConv
深度分离卷积一般使用的是3*3的卷积核,这篇论文在深度分离卷积时使用了多种卷积核,并验证了其有效性
1、大的卷积核能提高模型的准确性,但也不是越大越好。如下,k=9时,精度逐渐降低
2、 mixConv及其实现
挺简洁的,可直接替换深度分离卷积
1 def mdconv(x, filters, **args):
2 G = len(filters)
3 y = []
4 for xi, fi in zip(tf.split(x, G, axis=-1), filters):
5 y.append(tf.nn.depthwise_conv2d(xi, fi, **args))
6 return tf.concat(y, axis=-1)
3、有效性
4、MixConv设计
(1)G 的选择
通过搜索来选择,并不固定
(2)kernel size
通过搜索从{3x3, 5x5, 7x7,9x9}中选择
(3)Channel Size Per Group
两种策略,一种每组通道数相同,一种相邻/2,如32个通道,(8,8,8,8)或者(16,8,4,4)
(4)Dilated Convolution
想用空洞卷积替换大的卷积核,实验证明效果没有大的卷积核好使
5、验证
通过flops证明效率高,这个并不令人信服
为啥与9*9的卷积比?
提升的并不明显
为啥不和mobilentV3比?
6、Ablation Study
(1)As shown in the figure, large kernel size has different impact on different layers: for most of layers, the accuracy doesn’t change much,
but for certain layers with stride 2, a larger kernel can significantly improve the accuracy.
没看出来。。。。
(2)通道划分策略在不同模型上,表现的性能不一样。V1上exp策略更好,V2上均分更好
(3) 空洞卷积在小核上表现还好,大卷积核上急速下降(图上看不出来用多大卷积核会这样。。。。)
7、搜索网络
看着还行。。。
参考:
https://zhuanlan.zhihu.com/p/75242090