衡阳派盒市场营销有限公司

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

深度學習模型小型化處理的五種方法

汽車玩家 ? 來源:博客園 ? 作者:Peyton_Li ? 2020-01-28 17:40 ? 次閱讀

實習終于結(jié)束了,現(xiàn)把實習期間做的基于人體姿態(tài)估計的模型小型化的工作做個總結(jié)。

現(xiàn)在深度學習模型開始走向應用,因此我們需要把深度學習網(wǎng)絡和模型部署到一些硬件上,而現(xiàn)有一些模型的參數(shù)量由于過大,會導致在一些硬件上的運行速度很慢,所以我們需要對深度學習模型進行小型化處理。模型小型化旨在保證模型效果不會明顯下降的情況下降低模型的參數(shù)量,從而提高模型的運算速度。

以下是幾種模型小型化的方法:

1、修改某些卷積層的num_output

其實很多模型的參數(shù)都有冗余,有些層根本不需要很多的卷積核,所以,通過修改該參數(shù)可以降低一部分的參數(shù)量。

2、使用分離通道卷積(depthwise separable convolution)

對某些卷積層使用分離通道卷積的方法。使用分離通道卷積可以去掉一部分冗余的參數(shù)。分離通道卷積與常用卷積的不同之處在于,標準卷積操作中,每個卷積核都要對輸入的所有通道的特征進行卷積,然后結(jié)合生成一個對應的特征。分離通道卷積中,分為兩步,第一步使用分離通道卷積,每個卷積核只對一個通道進行卷積。第二步,使用1x1的標準卷積整合分離通道卷積輸出的特征。分離通道卷積時,各個通道之間的特征信息沒有交互,之后會采用一個1*1的標準卷積運算,使分離通道卷積輸出的特征的通道之間的信息有了一個交互。在tensorflow中,有對應的tf.nn.depthwise_conv2d接口可以很方便地實現(xiàn)分離通道卷積。

標準卷積和分離通道卷積的示意圖如下

深度學習模型小型化處理的五種方法

參考論文:MobileNets: Efficient Convolutional Neural Networks for Mobile Vision Applications

3、使用channel shuffle方法

channel shuffle方法是在分離通道卷積方法的基礎(chǔ)上做的改進,將分離通道卷積之后的1*1的全卷積替換為channel shuffle。

參考論文:ShuffleNet: An Extremely Efficient Convolutional Neural Network for Mobile Devices

4、使用ThiNet方法

ThiNet方法是尋找一些對輸出特征貢獻較小的卷積核,將其裁剪掉,從而降低參數(shù)量。屬于第一種方法的延伸。

參考論文:ThiNet: A Filter Level Pruning Method for Deep Neural Network Compression

5、改變網(wǎng)絡結(jié)構(gòu)

現(xiàn)在常見的網(wǎng)絡結(jié)構(gòu)有:以VGG為代表的單支流網(wǎng)絡結(jié)構(gòu),GoogLeNet的Inception類型的網(wǎng)絡結(jié)構(gòu),ResNet的殘差結(jié)構(gòu),還有DenseNet的結(jié)構(gòu)(類似殘差結(jié)構(gòu),把殘差結(jié)構(gòu)中特征的相加變?yōu)樘卣髌唇樱T谠?jīng)的ImageNet的比賽中,GoogLeNet取得了比VGG更好的成績,但是GoogLeNet的參數(shù)量卻比VGG小很多,這說明通過改變網(wǎng)絡結(jié)構(gòu),我們不僅可以減低模型的參數(shù)量,還可能會提升模型的效果。

前四種方法都是在原有網(wǎng)絡上進行的操作,一般不會對網(wǎng)絡結(jié)構(gòu)造成太大改變。而第五種方法則是徹底改變了網(wǎng)絡的結(jié)構(gòu)。

我們將模型的參數(shù)量降低后,如果隨機初始化,模型由于參數(shù)量較小,很難達到原有的效果,所以構(gòu)造了新的網(wǎng)絡之后還會涉及到重構(gòu)。

重構(gòu)其實是為了得到一個較好的初始化模型。我們一般去重構(gòu)網(wǎng)絡的倒數(shù)第二層的輸出特征,因為最終的結(jié)果都是在倒數(shù)第二層的輸出特征上得到的。但有時我們還會去重構(gòu)其他卷積層輸出的特征,比如一個較深的網(wǎng)絡,我們單純地去重構(gòu)倒數(shù)第二層的特征也很難得到一個較好的初始化模型,因為監(jiān)督信息(即重構(gòu)時的loss)太靠后,前面的層很難學習到,所以有時我們可以將網(wǎng)絡分為幾個部分,依次重構(gòu),先重構(gòu)前面的,然后使用重構(gòu)好的模型去重構(gòu)后面的部分。

使用ThiNet方法,每裁剪完一層之后都要做finetunign,然后再裁剪下一層。我們也可以每裁剪完一層之后去做重構(gòu),全部都裁剪完之后,做姿態(tài)估計訓練。

我們還可以重構(gòu)和姿態(tài)估計訓練一起做,使用兩個監(jiān)督信息(即重構(gòu)和姿態(tài)估計兩個loss)使模型邊重構(gòu)邊訓練,我們將其稱為mimick。

這就是我在模型小型化的工作中使用到的一些方法。但如何使用這些方法才能得到一個好的結(jié)果,這還需要親自去嘗試。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學習之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 深度學習
    +關(guān)注

    關(guān)注

    73

    文章

    5513

    瀏覽量

    121546
收藏 人收藏

    評論

    相關(guān)推薦

    深度學習模型是如何創(chuàng)建的?

    具有深度學習模型的嵌入式系統(tǒng)應用程序帶來了巨大的好處。深度學習嵌入式系統(tǒng)已經(jīng)改變了各個行業(yè)的企業(yè)和組織。
    發(fā)表于 10-27 06:34

    什么是深度學習?使用FPGA進行深度學習的好處?

    什么是深度學習為了解釋深度學習,有必要了解神經(jīng)網(wǎng)絡。神經(jīng)網(wǎng)絡是一模擬人腦的神經(jīng)元和神經(jīng)網(wǎng)絡的計算模型
    發(fā)表于 02-17 16:56

    基于優(yōu)化數(shù)據(jù)處理深度信念網(wǎng)絡模型的入侵檢測方法

    針對目前網(wǎng)絡中存在的對已知攻擊類型的入侵檢測具有較高的檢測率,但對新出現(xiàn)的攻擊類型難以識別的缺陷問題,提出了一基于優(yōu)化數(shù)據(jù)處理深度信念網(wǎng)絡(DBN)模型的入侵檢測
    發(fā)表于 12-01 15:59 ?0次下載
    基于優(yōu)化數(shù)據(jù)<b class='flag-5'>處理</b>的<b class='flag-5'>深度</b>信念網(wǎng)絡<b class='flag-5'>模型</b>的入侵檢測<b class='flag-5'>方法</b>

    模型驅(qū)動深度學習的標準流程與學習方法解析

    模型驅(qū)動的深度學習方法近年來,深度學習在人工智能領(lǐng)域一系列困難問題上取得了突破性成功應用。
    的頭像 發(fā)表于 01-24 11:30 ?4968次閱讀
    <b class='flag-5'>模型</b>驅(qū)動<b class='flag-5'>深度</b><b class='flag-5'>學習</b>的標準流程與<b class='flag-5'>學習方法</b>解析

    小型化射頻收發(fā)前端的設計詳細教程

    介紹了一新穎的小型化射頻收發(fā)前端設計方法,采用這種方法在LTCC基片上實現(xiàn)了一款L波段雙頻段射頻收發(fā)前端,其 電路尺寸僅為6.5 mm × 5mm × 0.5mm。
    發(fā)表于 05-03 14:04 ?1997次閱讀
    一<b class='flag-5'>種</b><b class='flag-5'>小型化</b>射頻收發(fā)前端的設計詳細教程

    如何使用MATLAB實現(xiàn)深度學習方法研究分析

    訓練 CNN 需要相當大量的數(shù)據(jù),因為對于典型的圖像分類問題,其需要學習幾百萬個權(quán)值。從頭開始訓練 CNN 的另一個常見做法是使用預先訓練好的模型自動從新的數(shù)據(jù)集提取特征。這種方法稱為遷移學習
    的頭像 發(fā)表于 09-16 15:11 ?5848次閱讀
    如何使用MATLAB實現(xiàn)<b class='flag-5'>深度</b><b class='flag-5'>學習</b>的<b class='flag-5'>方法</b>研究分析

    結(jié)合基擴展模型深度學習的信道估計方法

    結(jié)合基擴展模型深度學習的信道估計方法
    發(fā)表于 06-30 10:43 ?62次下載

    介紹3種方法跨時鐘域處理方法

    介紹3跨時鐘域處理方法,這3種方法可以說是FPGA界最常用也最實用的方法,這三種方法包含了單
    的頭像 發(fā)表于 09-18 11:33 ?2.2w次閱讀
    介紹3<b class='flag-5'>種方法</b>跨時鐘域<b class='flag-5'>處理</b><b class='flag-5'>方法</b>

    模型為什么是深度學習的未來?

    與傳統(tǒng)機器學習相比,深度學習是從數(shù)據(jù)中學習,而大模型則是通過使用大量的模型來訓練數(shù)據(jù)。
    的頭像 發(fā)表于 02-16 11:32 ?2163次閱讀

    實現(xiàn)更好5G的種方法.zip

    實現(xiàn)更好5G的種方法
    發(fā)表于 01-13 09:07 ?0次下載

    深度學習模型優(yōu)化與調(diào)試方法

    深度學習模型在訓練過程中,往往會遇到各種問題和挑戰(zhàn),如過擬合、欠擬合、梯度消失或爆炸等。因此,對深度學習
    的頭像 發(fā)表于 07-01 11:41 ?1002次閱讀

    人臉檢測的種方法各有什么特征和優(yōu)缺點

    人臉檢測是計算機視覺領(lǐng)域的一個重要研究方向,主要用于識別和定位圖像中的人臉。以下是常見的人臉檢測方法及其特征和優(yōu)缺點的介紹: 基于膚色的方法 特征:基于膚色的
    的頭像 發(fā)表于 07-03 14:47 ?969次閱讀

    深度學習模型量化方法

    深度學習模型量化是一重要的模型輕量化技術(shù),旨在通過減少網(wǎng)絡參數(shù)的比特寬度來減小模型大小和加速推
    的頭像 發(fā)表于 07-15 11:01 ?556次閱讀
    <b class='flag-5'>深度</b><b class='flag-5'>學習</b><b class='flag-5'>模型</b>量化<b class='flag-5'>方法</b>

    AI大模型深度學習的關(guān)系

    AI大模型深度學習之間存在著密不可分的關(guān)系,它們互為促進,相輔相成。以下是對兩者關(guān)系的介紹: 一、深度學習是AI大
    的頭像 發(fā)表于 10-23 15:25 ?1264次閱讀

    Pytorch深度學習訓練的方法

    掌握這 17 種方法,用最省力的方式,加速你的 Pytorch 深度學習訓練。
    的頭像 發(fā)表于 10-28 14:05 ?274次閱讀
    Pytorch<b class='flag-5'>深度</b><b class='flag-5'>學習</b>訓練的<b class='flag-5'>方法</b>
    百家乐的规则博彩正网| 海王星百家乐官网的玩法技巧和规则 | 百家乐官网打劫法| 娱乐城百家乐官网的玩法技巧和规则| 墓地风水24山| 百家乐送18元彩金| 大发888老虎机手机版下载安装| 麻阳| 凯发百家乐官网是否是程序控制| 新西兰百家乐官网的玩法技巧和规则 | 百家乐官网也能赢钱么| 百家乐官网打鱼秘籍| 百家乐官网游戏什么时间容易出| 真人百家乐ea平台| 百家乐规则以及玩法| 澳门赌场攻略| 百家乐官网决战推筒子| 百家乐大老娱乐| 百家乐娱乐城赌场| 大发888游戏黄金之旅| 阿拉善盟| 至富百家乐官网的玩法技巧和规则| 澳门百家乐娱乐场| 大发888信用| 百家乐官网策略| 属蛇和属马合作做生意谁吃亏| 百佬汇百家乐的玩法技巧和规则| 八大胜娱乐| 百家乐官网开户导航| 百家乐论坛代理合作| 棋牌娱乐城注册送58| 至尊百家乐官网贺一航| 百家乐最新打法| 威尼斯人娱乐平台网上百家乐| 东乡县| 百家乐闲拉长龙| 大发888网络赌博害人| 香港六合彩直播| 打百家乐官网最好办法| 黄金城百家乐苹果版| 长乐坊百家乐官网娱乐城|