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

posted @ 2019-08-04 12:47  牧马人夏峥  阅读(715)  评论(0编辑  收藏  举报