RM新时代网站-首页

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

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

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

深度學(xué)習(xí)模型小型化處理的五種方法

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

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

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

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

1、修改某些卷積層的num_output

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

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

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

標(biāo)準(zhǔn)卷積和分離通道卷積的示意圖如下

深度學(xué)習(xí)模型小型化處理的五種方法

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

3、使用channel shuffle方法

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

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

4、使用ThiNet方法

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

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

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

現(xiàn)在常見的網(wǎng)絡(luò)結(jié)構(gòu)有:以VGG為代表的單支流網(wǎng)絡(luò)結(jié)構(gòu),GoogLeNet的Inception類型的網(wǎng)絡(luò)結(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更好的成績(jī),但是GoogLeNet的參數(shù)量卻比VGG小很多,這說明通過改變網(wǎng)絡(luò)結(jié)構(gòu),我們不僅可以減低模型的參數(shù)量,還可能會(huì)提升模型的效果。

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

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

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

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

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

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

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

    評(píng)論

    相關(guān)推薦

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

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

    什么是深度學(xué)習(xí)?使用FPGA進(jìn)行深度學(xué)習(xí)的好處?

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

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

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

    模型驅(qū)動(dòng)深度學(xué)習(xí)的標(biāo)準(zhǔn)流程與學(xué)習(xí)方法解析

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

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

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

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

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

    結(jié)合基擴(kuò)展模型深度學(xué)習(xí)的信道估計(jì)方法

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

    介紹3種方法跨時(shí)鐘域處理方法

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

    模型為什么是深度學(xué)習(xí)的未來?

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

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

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

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

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

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

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

    深度學(xué)習(xí)模型量化方法

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

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

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

    Pytorch深度學(xué)習(xí)訓(xùn)練的方法

    掌握這 17 種方法,用最省力的方式,加速你的 Pytorch 深度學(xué)習(xí)訓(xùn)練。
    的頭像 發(fā)表于 10-28 14:05 ?192次閱讀
    Pytorch<b class='flag-5'>深度</b><b class='flag-5'>學(xué)習(xí)</b>訓(xùn)練的<b class='flag-5'>方法</b>
    RM新时代网站-首页