EfficientNet

https://arxiv.org/pdf/1905.11946.pdf

https://github.com/tensorflow/tpu/tree/master/models/official/efficientnet

tf2实现https://github.com/calmisential/EfficientNet_TensorFlow2

 

扩展网络有三个维度,包括width(channels数)、depth(网络深度)、resolution输入分辨率。

作者通过实验表明,只改变其中一个维度,acc的提升很容易就饱和了,如何同时改变三个维度,使得acc和flops达到一个trade-off,就是本文的内容。

 

 

 作者提出的一种缩放方法。网络深度增加一倍,flops变为之前的两倍;width或者resolution增加一倍,flops变为之前的四倍。

统一起来,增加的计算量。论文里限制,所以增加的计算量大概为 

 

 

 

下面是作者以MBConv+SE模块搜索出来的一个结构。首先固定,即搜索出来的flops是之前的2倍,

 

 

得到一组最优值

 

 

然后固定这三个参数,调整,得到B1至B7的一系列网络(具体实验结果可参考原文)。

 

 

 

 

 值得注意的是,这个网络中,降采样用conv+str2代替conv+maxpool(相当于flops变为了1/4);用了5*5的卷积核,

减小了计算量,参考https://www.zhihu.com/question/326833457

 

 

更多讨论参考https://www.zhihu.com/question/326833457 

posted @ 2020-02-02 14:27  牧马人夏峥  阅读(896)  评论(0编辑  收藏  举报