999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于深度神經壓縮的YOLO加速研究

2019-05-27 01:18:44陳莉君李卓
現代計算機 2019年11期
關鍵詞:嵌入式深度設備

陳莉君,李卓

(西安郵電大學計算機學院,西安710100)

0 引言

從AlphaGo開始,深度學習漸漸進入業內研究者的視線。深度學習近些年大熱的主要原因是由于近些年設備的計算力的增加,尤其是圖形處理器(Graphics Processing Unit,GPU)對于浮點數運算的有力支持。YOLO[1]的提出了一種在目標識別領域新的方式,將檢測和回歸問題集合在一起,大大的增加了對于目標的檢測速度。但是,YOLO的網絡層數相較于傳統的網絡也增加很多,導致訓練和推理的計算量會大大增加。尤其是嵌入式設備和移動設備,這些設備可能并不能很好地支撐層數增加之后帶來的計算量增加。為了能讓更多的設備和更多的人用上和享受到深度學習給他們帶來的方便,對于深度神經網絡推理加速需求就漸漸增多了[2-4]。

國內外現有的研究結果中有一部分是利用并行化神經網絡進行加速,這樣可以將一個深度神經網絡并行化拆分,分布式運行這個模型。另外一部分是使用軟件加速深度神經網絡的例子。例如:EIE(Efficient Inference Engine)[5]這個軟件提出了一個推理引擎,對這個壓縮的網絡模型進行推理,并利用權重共享進行加速稀疏矩陣的相乘過程。DeepX[6]:用于移動設備上低功耗深度學習推斷的軟件加速器。Eyeriss[7]:用于深度卷積神經網絡的節能可重構加速器。針對深度神經網絡模型的壓縮,Kim等人在2015年提出了一種壓縮CNN模型的方法。Soulie等人在2016年提出一種在模型訓練階段進行壓縮的方法。首先在全連接層損失函數上增加額外的歸一項,使得權重趨向于二值,然后對于輸出層進行量化。

現有的加速方案都是基于大型GPU設備的。對于嵌入式和移動設備,加速的效果并不是很明顯。嵌入式和移動設備的硬件限制仍然是影響神經網絡發展的一個重要的因素。

針對上述問題,本文中主要對YOLO神經網絡進行壓縮,測試深度神經壓縮[8]中剪枝方式對于卷積神經網絡的模型減少和推理加速效果。

1 深度神經壓縮

深度神經網絡中通常會有過多的參數,存在大量的計算冗余的情況。這種情況將浪費設備的內存和計算資源,加大了嵌入式設備、低功耗設備和移動設備的消耗[9-11]。

深度神經壓縮(Deep Compression)存在四種方式,參數共享方法、網絡刪減方法、暗知識方法和矩陣分解方法。

參數共享的主要思路是多個參數共享一個值。通常實現的方法可以有很多選擇。例如Vanhoucke和Hwang等人使用定點方法江都參數精度,從而是值相近的參數共享一個值。Chen等人提出一種基于哈希算法的方法,將參數映射到相應的哈希表上,實現參數共享。Gong等人使用K-means聚類方法將錢全部的參數進行聚類,每簇參數共享參數的中心值。

網絡刪減用來降低網絡復雜度,防止過擬合。Han等人針對模型的訓練效果,然后在基于參數共享和哈夫曼編碼進一步對網絡壓縮。

在基于暗知識的方法中,Sau等人基于老師-學生學習框架對網絡進行壓縮。

基于矩陣分解理論,Sainath、Denil等人采用低秩分解對神經網絡不同曾的參數進行壓縮。Denton等人在神經網絡使用矩陣分解的方法加速了卷積層的計算過程,減少了全連接層的網絡參數,對于神經網絡進行壓縮。

深度神經壓縮主要表現在三個部分:存儲、訓練復雜度和推理復雜度。以上介紹的方法中,都有各自的優點和不足。參數共享方法、網絡刪減方法、暗知識方法和矩陣分解方法都可以有效的降低模型的存儲復雜度,但是在訓練復雜度和推理復雜度上沒有重要影響。暗知識方法雖然在三個方面都有比較好的表現,但是在準確率方面,相較于其他三種方法,會有較大的變化。

2 YOLO

YOLO屬于CNN,由卷積層、池化層和全連接層組成。與CNN不同的是,YOLO的輸出層不再是max函數,而是張量(Tensor)。

YOLO的訓練和推理過程和其他CNN存在不同之處[12],例如 R-CNN、Fast R-CNN和 Faster R-CNN 三種網絡。RCC、Fast R-CNN采用模塊分離的方式進行推理過程。在檢測目標的過程中,兩種網絡需要將待檢測的目標區域進行預提取,再將包含目標的區域進行卷積/池化操作提取特征,最后進行檢測行為。在Faster R-CNN中,使用 RPN(Region Proposal Network)代替R-CNN/Fast R-CNN中的選擇搜索模塊,將RPN集成到Fast R-CNN模塊中,得到一個統一的檢測網絡。但是在模型的訓練過程中,需要反復訓練RPN網絡和Fast R-CNN網絡。上述三種網絡最大的特點就是在推理的過程中,需要將待檢測的目標區域進行預讀取。預讀取會耗費大量的磁盤(內存)空間,會對一些嵌入式設備、低功耗設備和移動設備造成壓力。YOLO在設計的過程中就針對的進行了改進。

3 基于深度神經壓縮的YOLO加速

原始的YOLO模型在完成訓練后,模型大小達到200M,對于嵌入式設備和移動設備而言。200M的模型進行內存預讀,會對設備的性能造成較大的影響,所以論文主要從深度神經壓縮理論入手,對于YOLO進行修改,達到對于模型進行體積壓縮,改善其在嵌入式設備和移動設備上的表現[15]。針對YOLO進行深度神經壓縮,主要是以下步驟:

(1)權值修剪

(2)權值共享和量化

流程如圖1所示。

圖1 壓縮框架圖

3. 1 權值修剪

權值修剪[16]主要目的是保存YOLO中重要的鏈接來達到降低存儲數量和計算復雜度的目的。傳統的神經網絡訓練過程中,在神經網絡訓練之前,神經網絡的框架結構就已經被固定了。用戶只需要進行數據的輸入,就可以在迭代訓練后獲得需要的權重。但是這種固定框架結構的方式,導致不能在訓練的過程中,隨時對于神經網絡的結構進行優化。因此,常規訓練出的模型文件大小都不適合于部署在嵌入式設備或者移動設備上。YOLO常規訓練后的模型大小達到200M,對于嵌入式設備,將模型預讀進內存中,提供給推理過程使用,將會消耗設備的所有內存。所以,利用深度神經壓縮的剪枝思路,對于YOLO模型進行壓縮,是提高YOLO在各種設備上通用性的一個方式。剪枝過程分為四個步驟;

(1)通過訓練找到權重小于閾值的神經網絡鏈接;

(2)刪除權重小于閾值的神經網絡鏈接;

(3)重新對于神經網絡進行訓練;

(4)將修剪后的以 CSR(Compressed Sparse Row)方式存儲。

在訓練的過程中使用公式:

對權重進行計算,使一部分權重趨向于0,然后將小于閾值的鏈接剪枝。使用公式的目的是能夠減少在訓練剪枝過程中的過擬合現象,并且可以保持較高的精度。相對的,通常訓練過程中的Droupout概率也需要進行調整。在深度神經網絡訓練的過程中,Droupout主要是用來防止訓練出的模型數據有過擬合的現象。因為在上述的剪枝過程中,使用了L2正則進行過擬合的預防。所以,在重訓練的過程中,按照剪枝后的神經網絡數量進行對Droupout概率進行等比例的調整。初步剪枝之后將要進行對于本次鏈接層的一個重訓練。每一次的剪枝過后的重新訓練都是一個原子操作。重新訓練的目的是為了神經網絡模型有更好的精確度,以及更小的過擬合的可能。

剪枝之后的權重按照CSR方式進行存儲,CSR方式可以減少存儲元素位置index帶來的額外存儲開銷。按CSR方式轉換完成的稀疏矩陣,在存儲的過程中使用按位存儲的方式,存儲過程中,每一個非零元素都會進行標記。如果使用3bit形式進行存儲,每一個非零元素和另外一個非零元素之間的距離在標記后將會被檢查。如果一個非零元素和另外一個非零元素的超過8,則這個第八位的位置將會被填充一個0,這樣防止在使用按位存儲的時候出現數據的溢出。

3. 2 權值共享和量化

為了進一步的壓縮剪枝之后的YOLO,第二部將使用權值共享的方法[17],對于剪枝結束的權值,進行一個K-means聚類。

式(2)中,W代表權值C代表聚類。

聚類之后的結果代表著一類權值的聚類執行,這個質心的值將作為共享的權值進行存儲。最后存儲的結果是一個碼書和一個索引表。

K-means算法中,聚類的核心是聚類中心的選擇和初始化。常規的初始化方式有三種:

(1)隨機初始化

(2)密度分布初始化

(3)線性初始化

由于在神經網絡的訓練中,權值越大,對神經網絡精確度的影響越高,所以使用將權重排序后進行線性劃分的線性初始化較為合適。

本層的權重完成剪枝和共享之后,將執行神經網絡層與層之間的前向傳播和反向傳播。前向傳播時需要將每個權值用其經過聚類的中心進行代替,反向傳播時,計算每個聚類中權值的梯度,用來進行聚類中心的更新和迭代。

4 實驗結果與分析

實驗結果分析算法在經過深度神經壓縮之后壓縮率、準確率和執行速度。運行YOLO模型的設備為NVIDIA TX2嵌入式開發板。YOLO的訓練數據集為基于VoC2007和ImageNet的常見數據集。

4. 1 壓縮率

表1中展示了YOLO未壓縮和已壓縮之后的大小對比。

表1 YOLO壓縮體積對比

由表1可以看出,經過深度神經壓縮后的模型只有原模型的3%,減少了嵌入式設備和移動設備在預讀模型時的內存消耗,提高了模型預讀的速度。

4. 2 準確率

表2 僅剪枝YOLO模型大小和準確率

表3 僅共享權重

表4 剪枝+共享權重

從表2、3、4可以得到,準確率隨著模型體積的下降而下降。僅剪枝能達到的最低壓縮率為4.5%。僅共享權重最低壓縮率可以達到6%。剪枝和共享權重可以達到最低的壓縮率3%。

4. 3 運行速度

表5 壓縮YOLO在嵌入式設備上運行時間

表5可以看出壓縮網絡對比原始網絡,在嵌入式GPU設備上可以獲得5倍加速。

5 結語

本方案基于深度升級壓縮理論,提出了YOLO算法的改進方案。對于YOLO算法進行剪枝、共享權重、霍夫曼編碼等步驟。并且將壓縮后的YOLO算法部署到NVIDIA TX2上,進行目標識別實驗。實驗結果表明,經過優化的YOLO可以在原體積3%的情況下穩定運行,并且準確率相較于原模型只有-2%的差距。并且在嵌入式設備上獲得原模型5倍的加速效果。但是該實驗只是單純的進行L2范式的權重衡量,沒有做到多情況的權重衡量。并且K-means只選擇了線性初始化的情況。后期實驗可以進行優化,找到更好的剪枝方式和聚類方式[19-20]。

猜你喜歡
嵌入式深度設備
諧響應分析在設備減振中的應用
深度理解一元一次方程
深度觀察
深度觀察
深度觀察
基于MPU6050簡單控制設備
電子制作(2018年11期)2018-08-04 03:26:08
搭建基于Qt的嵌入式開發平臺
嵌入式軟PLC在電鍍生產流程控制系統中的應用
電鍍與環保(2016年3期)2017-01-20 08:15:32
500kV輸變電設備運行維護探討
工業設計(2016年12期)2016-04-16 02:52:00
原來他們都是可穿戴設備
消費者報道(2014年7期)2014-07-31 11:23:57
主站蜘蛛池模板: 国产真实乱子伦视频播放| 亚洲人成网7777777国产| 中文字幕欧美日韩高清| 久久久久亚洲av成人网人人软件| 国产麻豆精品在线观看| 免费无码又爽又黄又刺激网站| 国模沟沟一区二区三区| 四虎亚洲精品| 2020极品精品国产| 五月天天天色| 欧美.成人.综合在线| 国产黑人在线| 国产一级毛片在线| 亚洲美女一区二区三区| 欧美国产精品不卡在线观看 | 久久这里只有精品66| 国产乱子伦视频在线播放| 免费国产不卡午夜福在线观看| 欧美国产菊爆免费观看| 色天堂无毒不卡| 久久国产精品无码hdav| 免费看美女自慰的网站| 呦女亚洲一区精品| 国产精品福利在线观看无码卡| 无遮挡国产高潮视频免费观看 | 午夜福利在线观看成人| 国产哺乳奶水91在线播放| www.亚洲色图.com| 98超碰在线观看| 国产成熟女人性满足视频| 高清免费毛片| 国产爽爽视频| 最新国产网站| 九色免费视频| 国产无套粉嫩白浆| 亚洲成人精品| 无码日韩视频| 亚洲精品无码久久毛片波多野吉| 久久毛片基地| 正在播放久久| 91精品啪在线观看国产91| 国产精品视频猛进猛出| 又粗又大又爽又紧免费视频| 国产福利小视频高清在线观看| 国产麻豆91网在线看| 91精品福利自产拍在线观看| 色呦呦手机在线精品| 亚洲精品不卡午夜精品| 欧美精品v| 国产91色在线| 国产欧美高清| 无码人妻热线精品视频| 欧美黄网在线| 国产成人高清精品免费软件| 色成人综合| www精品久久| 福利在线免费视频| yy6080理论大片一级久久| 国产精品刺激对白在线| 久久人搡人人玩人妻精品一| 欧美无专区| 91po国产在线精品免费观看| 99热国产这里只有精品无卡顿"| 国产手机在线ΑⅤ片无码观看| 在线观看av永久| 99r在线精品视频在线播放| 国产亚洲视频免费播放| 99久久国产精品无码| 国产一线在线| 午夜激情婷婷| 日本AⅤ精品一区二区三区日| 久久国产免费观看| 黄片在线永久| 欧美亚洲综合免费精品高清在线观看| 亚洲综合色婷婷中文字幕| 精品久久国产综合精麻豆| 亚洲国产91人成在线| 国产精品免费露脸视频| 午夜毛片免费观看视频 | 四虎永久在线| 黄色污网站在线观看| 怡红院美国分院一区二区|