MobileNet 結構簡單微調的一點效能提升
本文已經放到arxiv 上面了:
http://arxiv.org/abs/1802.03750
FD-MobileNet: Improved MobileNet with a Fast Downsampling Strategy
下面是論文的一個簡短的介紹:
實踐過程中發現了一個對MobileNet 微調即可完成提升的方法。不過只能在140 MFLOPS 以下的小網路會有提升,例如40MFLOPS 對原版有3%的提升,12-13MFLOPS 對原版有5%的提升;相對的,對大於這個數量級的會略微變差。相比ShuffleNet 相同的計算量下的網路會略差一些,但因為ShuffleNet 比較複雜,額外層的耗時有點多,工程優化難度大,因此我們這個小發現會有那麼一點點競爭力。
實驗結果
第一部分,MobilenetV1,藍色是我們復現的結果,黑色是論文中的結果。實驗是在pytorch 上面完成的,imagenet 2012資料集,120 epochs 標準訓練過程。我們的結果比MobileNet 論文中略高一點點。
第二部分和第三部分,分別是ShuffleNet 在兩個版本論文中的結果,v1 是指單欄排版的,v2 是指雙欄排版的。
第四部分,compact-Mobilenet,是我們微調結構的Mobilenet。
網路結構
這樣的結構一目瞭然,最右邊Compact-MNet 在第一次步長為2 的卷積之後並沒有"逗留",而是徑直再進入一次步長為2 的卷積,如果將depthwise + pointwise 卷積看成是一個conv set 的話,那麼這個結構簡單說就是網路開始就進入連續三個步長為2的conv sets。後邊都是按MobileNet 照貓畫虎了,期間還嘗試了幾個類似的high-level層的微調結構,這個是最好的一個。
這個工作的思維過程說起來還是從ShuffleNet 中學習來的,簡單說就是將ShuffleNet 開始的頭部結構拿到了MobileNet 上進行了一次移植。
大概猜測的原因是,這樣可以迅速降低特徵圖解析度,降低對等結構計算量,同時保持計算量不變的結構的特徵描述能力比原版的就要好一些了。
實驗分析
由於該結構是對原版MobileNet 的一次微調,調整過程可以簡單到修改一下特徵圖通道陣列和步長陣列即可。所以只要跑過MobileNet 的程式碼,那麼得到compact MobileNet 的程式碼基本上不需要花時間,直接復現實驗即可。同理,這個結果的工程實現和工程優化難度,可以MobileNet 原版一模一樣,可能相比ShuffleNet 的複雜結構來講會有一定的優勢。
這塊的程式碼月底會和我們組另外一個工作一起放出。
更多
這個小的改動本質是一個網路結構trick,一開始連續下降兩次或者三次的做法,不光在ShuffleNet上是這樣的,在很多網路上也是類似的。
English Version:
FD-MobileNet: Improved MobileNet with a Fast Downsampling Strategy
Zhaoning Zhang, Qin Zheng, Xiaotao Chen
PDL, NUDT
Abstract
We present a compact MobileNets structure. It is a fine adjusted structure from the original MobileNets and performs better than the counterpart original MobileNets structure in tiny networks, such as 140 MFLOPs or less. Without the extra time consumed by the extra layers, compact MobileNets provides a competitive choice for the neural networks run on the hardwares of very limited computing power. Further, it is with very easy engineering realization and engineering optimization.
Experiment Results
First Part: Blue results are tested by our experiment with MobileNet V1. The experiment is done on pyTorch and imagenet 2012 dataset, with standard 120 epochs training.
Second and Third Part: results in two Shufflenet papers.
The last part is the results of our Compact Mobilenet.
Network Structure
The rightmost Compact-MobileNet is different with original MobileNet at the head part, compact mnet is with three continuous stride=2 convolutional sets (depthwise + pointwise conv). This structure is inspired by the head structure of ShuffleNet. The other part of the network is also fine tuned and this structure is the best in practice.
The reason why this structure performs better in tiny networks is that, as we speculated, the feature map is down sampled at very low level, with the complexity reduced fiercely in the counterpart structure, and when the complexity is restored by width modifier, the representational power surpass the original one, in the tiny structures.
Engineering
The compact structure can be reproduced by only modifying python arrays of feature map filters and strides. So, it is with very easy engineering realization and engineering optimization, as the same as MobileNets. The code will be available soon with the other work of our team.
Google在2018年1月16號放出來的MobilenetV2 結構 https://arxiv.org/abs/1801.04381 ,我這邊已經復現過了,可以達到論文所說的精度,文中還有大量的細節放出,確實是一篇良心論文。引用知乎問題:如何評價mobilenet v2 ?
發展實在是太快了,因為我自己這個工作本就是抖機靈的,就在這裡放一篇非正式的算了。
^v^
相關文章
- 資料結構簡單要點總結資料結構
- rman的一點簡單總結 1
- 一個簡單的樹形結構
- 11 個簡單的 Java 效能調優技巧Java
- 簡單一招竟把nginx伺服器效能提升50倍Nginx伺服器
- 三種提升Java程式碼效能的簡單技巧 - levelupJava
- mac音量微調技巧:如何一點一點的加音量或者減呢?Mac
- 簡單瞭解一下pinia的結構
- 調和葉狀結構--一個有趣的公式(觀點)公式
- JVM結構的簡單梳理JVM
- 微機結構:
- 微機結構
- MySQL InnoDB效能調整的一點實踐MySql
- 簡單聊聊微前端前端
- 特殊資料結構:單調棧資料結構
- 簡單的一點總結:關於優惠券功能
- 《微機結構》總結
- 微機結構總結
- 一個簡簡單單的紅點系統框架框架
- JS棧結構的簡單封裝JS封裝
- linux調優的一點總結Linux
- 怎樣提升一個產品經理的技能,我來簡單說5點
- 資料結構簡單題資料結構
- Golang pprof 效能調優實戰,效能提升 3 倍!Golang
- 使用 ASDK 效能調優 - 提升 iOS 介面的渲染效能iOS
- 【火爐煉AI】深度學習010-Keras微調提升效能(多分類問題)AI深度學習Keras
- 同濟和華為諾亞提出:漸進式可微網路結構搜尋,顯著提升可微式搜尋的效能和穩定性,已開源
- 11個簡單的Java效能調優技巧,傻瓜都能學會!Java
- 效能調優概述,這是一篇最通俗易懂的效能調優總結
- rust學習六、簡單的struct結構RustStruct
- 提升資料庫效能的8點要求資料庫
- C++連結串列類的簡單操作含圖書結構體 簡單易懂C++結構體
- "簡單"的jvm調優JVM
- “簡單”的jvm調優JVM
- 計算機的微機結構計算機
- 資料結構系列之單連結串列實現一個簡單的LRU演算法資料結構演算法
- nginx引數調優能提升多少效能Nginx
- html文件結構簡單介紹HTML