日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

PP-LCNet-A Lightweight CPU Convolutional Neural Network

發(fā)布時間:2023/12/20 编程问答 41 豆豆
生活随笔 收集整理的這篇文章主要介紹了 PP-LCNet-A Lightweight CPU Convolutional Neural Network 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

一、Introduction

動機

由于MKLDNN庫的限制,現(xiàn)有的NN在速度上無法在Inter-CPU上得到最大的提升,本文設(shè)計了一種專為Inter CPU準備的輕量級網(wǎng)絡(luò),設(shè)計這個網(wǎng)絡(luò)的時候,我們主要考慮了一下幾個問題

  • 如何讓網(wǎng)絡(luò)獲取更強的特征表達而不增加推理時延?

  • 到底是什么因素/模塊幫助CPU端的輕量級網(wǎng)絡(luò)提高accuracy?

  • 設(shè)計基于CPU的輕量級網(wǎng)絡(luò)的時候,如何有效的結(jié)合不同的策略?

  • 貢獻

  • 總結(jié)了一系列的方法,來提升accuracy但是不增加inference time

  • 給出了如何結(jié)合這些方法來最終獲得一個好結(jié)果

  • 二、Approach

    2.1 BaseNet

    很多輕量級CNN在ARM上速度很快,但是在Interl-CPU上表現(xiàn)一般,大部分原因是因為沒有充分利用MKLDNN庫。

    • 我們使用MobileNet V1里面的DepthSepConv作為基礎(chǔ)模塊。這個模塊,無add,無cat 操作,不僅會拖累模型的速讀,而且對于輕量級模型的accuracy提升無用(暫時無法理解為什么add,cat這種類似于特征融合的操作對于輕量級模型無用)

    • DepthSepConv這個模塊在Inter CPU 加速庫中已經(jīng)被高度優(yōu)化過了,因此比inverted block和shufflenet-block更快

    • 我們基于DepthSepConv堆疊形成了BaseNet,然后添加了一些現(xiàn)有的成熟的技術(shù),構(gòu)建了PP-LCNet

    個人總結(jié):已知Inter CPU的加速快對于 DepthSepConv做了深度優(yōu)化,且add,cat幾乎無收益,進而設(shè)計了一個專用于Inter CPU的網(wǎng)絡(luò)

    2.2 激活函數(shù)使用H-Swish

    EfficientNet使用Swish獲得了比ReLU更好的性能;

    MobileNet V3使用Hard Swish獲得了比Swish更好的性能,

    我們也在BaseNet中使用Hard Swish替換了原先的ReLu,也獲得了更好的accuracy,而且不增加inference time

    2.3 把SE模塊插入到合適的位置

  • SE模塊確實很有效,但是基于Inter CPU上,SE會增加推理時間

  • 經(jīng)過大量實驗證明,位于NN深層的SE模塊比其他位置的SE模塊起到了更重要的作用,因此我們僅在NN的深層加入了SE模塊(這個幾乎就是印證了微軟的動態(tài)卷積的結(jié)論,注意力機制在深層更有效)

  • 2.4 使用更大的卷積核

    在MixNet中,作者證明了使用不同大小的kernel的組合可以獲得更好的效果,但這明顯會增加推理時間。所以我們決定,每一層卷積僅使用一種大小的kernel,并且確保使用大kernel的時候既能提升accuracy也不能增加latency。(這其實言外之意就是在小的feature map上才使用大的kernel-size)

    經(jīng)過,本文在NN的尾部使用5×5的kernel size替代了3×3的kernel,可以獲得與替換所有卷積層近似的效果,這個結(jié)論和SE的替換很像。

    2.5 在GAP之后使用一個高維的1×1卷積

    在PP-LCNet中,最后一個卷積是512維度,如果直接在GAP(輸出為512維向量)之后接上classification layer會導(dǎo)致丟失特征的結(jié)合(??????)。為了使網(wǎng)絡(luò)具有更好的擬合能力,我們在GAP之后添加了一個1280的1×1卷積(等價于一個FC),這使得具有更好的能力,同時增加的inference time很少

    三、實驗

    實驗配置:基于paddlepaddle框架,基于4卡V100訓(xùn)練,基于Intelr Xeonr Gold 6148
    處理器 batch size=1 ,使用MKLDNN 加速.

    • 不同scale下的PP-LCNet表現(xiàn),帶*的表示使用了蒸餾算法進一步優(yōu)化

    • 和其它網(wǎng)絡(luò)進行對比

    • 作為backbone進行目標檢測

    • 作為backbone進行分割

    • Acti, SE, Large-kernel 最后額外增加的全連接,各個模塊的作用與時延

    • SE 模塊添加位置的消融實驗

    • Large-kernel添加位置的消融實驗

    總結(jié)

    以上是生活随笔為你收集整理的PP-LCNet-A Lightweight CPU Convolutional Neural Network的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。