国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

卷積神經網絡低位寬量化推理研究?

2019-11-29 05:13姜晶菲
計算機與數(shù)字工程 2019年11期
關鍵詞:權值人臉卷積

付 強 姜晶菲 竇 勇

(國防科技大學計算機學院 長沙 410073)

1 引言

深度卷積神經網絡最近在圖象分類[1]、物體檢測[2]等任務中取得了全面進展,得到了廣泛的關注與應用,但也存在著計算和訪存量巨大的問題。ImageNet[10]圖片分類、FaceNet[5]人臉識別,都需要在高性能GPU 或CPU 集群上訓練幾百小時以上。Xception[6]在谷歌3.5 億張私有數(shù)據集圖片上使用了60 塊英偉達K80 GPU 訓練了1 個月仍未完全收斂。目前公布的最好的人臉檢測算法RetinaFace[3]在Tesla P40 上執(zhí)行4K(4096*2160)輸入圖片的人臉檢測時需要2s/幀。較流行的MTCNN[4]人臉檢測算法,當輸入4K 圖片、最小檢測臉為12 像素時,僅P-Net 的計算量就達到16.1G 乘累加操作,中間激活值達1.82GB(單精度浮點數(shù)據格式)。因此,本文主要關注卷積神經網絡的非重訓練量化。對采用大量數(shù)據和算力得到的預訓練模型直接進行低比特量化,盡量保留模型權值的有效信息進行推理預測。

卷積神經網絡權值的初始化及中間激活值的均衡在采用隨機梯度下降(SGD)方法訓練的網絡中對網絡收斂起到決定性作用,不同于早期網絡使用的Dropout[7]、LRN[1]方法加速網絡收斂,批規(guī)范化[8](BatchNorm,BN)對卷積層輸出激活值的各通道實現(xiàn)批規(guī)范化,能更有效地加速網絡收斂。Re-LU[9]使用分段線性激活函數(shù)代替?zhèn)鹘y(tǒng)的sigmoid 或tanh激活函數(shù),能夠加速網絡訓練收斂速度卻幾乎不影響網絡的精度。因此當前廣泛使用的卷積神經網絡普遍采用卷積-BN-ReLU 激活的方式進行運算。論文利用RGB 圖像均衡和融合后的批規(guī)范化層權值、激活值的分布特點,提出使用16bit-9bit的全局量化方法,實現(xiàn)目標檢測任務精度與數(shù)值表示精度的平衡,并在人臉關鍵點檢測任務上驗證了該方法的效果。

2 基于BN 與ReLU 的卷積神經網絡推理計算過程

在圖像檢測任務中,一般需對輸入RGB 圖像進行數(shù)值均衡。不同于ImageNet 分類任務中減去大規(guī)模數(shù)據集上的RGB 通道統(tǒng)計均值,檢測任務中一種常用的方法是對輸入的RGB 通道減去127或127.5 進行數(shù)值均衡,從而使輸入圖片像素值分布在[-127 128]或[-127.5 127.5]之間。

在采用批規(guī)范化的卷積神經網絡中,卷積層的輸出并不加偏置,因此可以將卷積層輸出激活值yi看為權值W 與卷積窗口像素值x 的向量內積:

對卷積層與批規(guī)范化層融合后的輸出激活值計算公式為

式(2)中μ 為卷積層各輸出通道在訓練集上的統(tǒng)計均值,σ2為卷積層各輸出通道在訓練集上的方差,ε 是為避免除0風險而引入的超參數(shù),γ 為縮放系數(shù),β 為平移系數(shù),yˉt為批規(guī)范化后的最終輸出激活值。當網絡訓練完畢進行推理預測時,由于μ、σ2、γ、β 均已確定。式(3)中Wˉ為層融合后的權值,βˉ為層融合后的偏置值。在上述計算后,使用ReLU 激活:ReLU(yˉt)=max(yˉt,0),然后進行接下來的卷積或池化運算。

從式(3)可以看出批規(guī)范化融合后的卷積層也可以表示為卷積加偏置的計算過程,與不使用批規(guī)范化的卷積層有統(tǒng)一的計算形式。

3 BN層融合后的全局量化推理方法

3.1 卷積神經網絡權值與激活值分析

由于自然圖像在進行數(shù)值均衡后任然分布在[-127 128]的較大數(shù)值范圍內,這與采用批規(guī)范化的卷積神經網絡中間層激活值分布在0 點附近較小范圍內不同,因此根據卷積操作的線性性質,將第一層除128,使其數(shù)值限定在[-1+1]范圍內,并在融合后的第一層權重上乘128,公式為

3.2 卷積神經網絡16-9bit全局量化

基于第3.1 節(jié)的分析,我們提出一種卷積神經網絡批規(guī)范化層融合后的全局16-9bit量化方法。

3.2.1 首層輸入像素值量化

首先認為輸入的RGB圖像像素值為[-2+2]區(qū)間內的9 位定點帶符號小數(shù),數(shù)據格式為1-1-7bit(1 符號位、1 整數(shù)位、7 小數(shù)位)。同時對批規(guī)范化層融合后的卷積權值放大128 倍,從而實現(xiàn)了式(12)中的等效變換并充分保持了原始輸入數(shù)據的精度。

3.2.2 權值全局量化

使用1-1-14bit(1 符號 位、1 整數(shù)位、14 小數(shù)位)的定點小數(shù)結構表示所有層的權值,充分保留權值的精度,對于權值小于2×10-14的數(shù)值統(tǒng)一量化為0,這等效于全局權值剪枝。

3.2.3 激活值全局量化

在采用ReLU 的卷積神經網絡中,所有的激活值都為正值,因此我們在激活值逐層存回時認為其為8bit 無符號正數(shù)。在激活值從內存載入進行下一層的運算時,我們在8bit輸入激活值的基礎上高位補0構成9bit帶符號數(shù)進行卷積的計算。激活值的格式為1-1-7bit,與第一層輸入圖像像素的格式保持一致。

3.2.4 乘累加單元配置

由于乘累加單元(MAC)的輸出值寄存器和累加值寄存器并不占用過多資源,我們使用25bit(1-2-22)保 存16-9bit 的 乘 積 值,使 用32bit(1-9-22)保存累加值的結果。偏置值(bias)使用與權值一致的16bit。整體的MAC 單元為16-9bit乘法器。圖1為MAC單元執(zhí)行卷積操作的配置。

圖1 16-9bit卷積乘法單元配置圖

4 實驗結果與分析

4.1 實驗配置

我們使用Caffe[11]對一個采用兩個Inception[12]模塊的人臉5 關鍵點檢測網絡預訓練模型[13]進行了批規(guī)范化層融合,并對該網絡第一個批規(guī)范化層融合后的卷積層權值乘128。使用Xilinx Vivado HLS 的定點計算庫ap_fixed 模擬CNN 網絡中16-9位寬乘法操作。CNN 網絡以外的部分(包括NMS、圖像插值縮放、邊界框生成)與原始Caffe 實現(xiàn)保持一致,均為單精度運算。

我們采用與CASIA WebFace[14]數(shù)據集收集類似的方法從IMDB 網站上收集了100 張500*500 到2000*2000 大小的圖片作為測試集,這100 張圖片包含10 個人,每個人10 張圖片。手工確認每張圖片只包含指定的1個人。圖2展示了測試圖像的圖例。

圖2 測試集圖像

4.2 實驗結果

我們對單精度Caffe 實現(xiàn)的檢測框與采用16-9bit量化CNN 生成的檢測框進行了交集除并集(IOU)計算。作為比較,進一步計算了權值與激活值均為半精度浮點數(shù)時檢測結果,以及激活值為9bit,權值偏置值為8bit時的檢測結果。

我們使用當前廣泛使用的MTCNN[4]以及RetinaFace[3]對100張圖片進行了5關鍵點檢測,人工剔除誤檢測的關鍵點,取MTCNN 與RetinaFace 的平均值作為GroundTruth 關鍵點。并分別使用單精度、半精度、16-9bit 定點與8-9bit 定點、測試了平均IOU,結果如表1。

表1 不同數(shù)值表示精度檢測效果

為了檢驗關鍵點對后續(xù)人臉核驗任務的影響程度,我們使用通用的5 點相似變換對人臉進行了轉正,并使用同樣在CASIA WebFace[14]數(shù)據集上訓練 的SphereFace[15]模 型 提 取 了100 張 檢 測 臉 的 特征,通過比較余弦距離繪制了ROC 曲線如圖3。圖中實線表示caffe 單精度浮點運算實現(xiàn)的人臉檢測網絡的SphereFace 識別效果,虛線代表本文提出的16-9bit 定點人臉檢測網絡的SphereFace 識別效果。

圖3 單精度檢測與16-9bit人臉檢測下的人臉識別ROC曲線

4.3 結果分析

從實驗結果可以看出,使用16-9bit 量化的效果在IOU指標上達到了接近半精度的效果,證明了采用這種量化方法的有效性。在表2 中我們對采用2 個inception 模塊[13]進行人臉檢測的網絡權值與激活值的訪存量進行了分析。16-9bit 量化對訪存量的需求顯著減小。

表2 不同精度運算時的訪存量分析

限于仿真的耗時,我們采用的測試數(shù)據集較小,這導致從人臉識別任務的ROC 曲線看,16-9bit量化的效果與原始單精度推理還存在一定差距。但如果綜合考量硬件邏輯復雜程度、功耗以及表2中列出的訪存成本,16-9bit 量化方法則具有較大優(yōu)勢。

5 結語

我們通過分析卷積神經網絡隨著輸入圖像增大造成計算量及訪存量急劇增加的特點,并進一步分析當前廣泛使用的卷積-批規(guī)范化-ReLU激活計算特點,提出批規(guī)范化層融合后使用高精度量化權值,使用低精度量化激活值。在此基礎上我們考慮到在FPGA 上部署時的資源運用特點,提出一種非重訓練的16-9bit卷積神經網絡量化加速方法。該方法非常適合在定制硬件上設計實現(xiàn)。不同于以往在ImageNet 分類和邊界框檢測上的量化壓縮評估方法,我們在具有挑戰(zhàn)性的人臉關鍵點檢測問題驗證了本方法的精度與量化加速效果。下一步工作中我們將在FPGA 上實現(xiàn)此量化方法,并在大規(guī)模人臉檢測與識別數(shù)據集上進一步驗證不同量化位寬對檢測精度帶來的影響。

猜你喜歡
權值人臉卷積
基于全卷積神經網絡的豬背膘厚快速準確測定
一種融合時間權值和用戶行為序列的電影推薦模型
一種基于卷積神經網絡的地磁基準圖構建方法
基于3D-Winograd的快速卷積算法設計及FPGA實現(xiàn)
有特點的人臉
一種并行不對稱空洞卷積模塊①
一起學畫人臉
玻璃窗上的人臉
財務風險跟蹤評價方法初探
長得象人臉的十種動物
富平县| 江城| 梨树县| 辉县市| 金坛市| 恭城| 自贡市| 淮安市| 西贡区| 孝感市| 东阳市| 若羌县| 四子王旗| 毕节市| 张家港市| 望谟县| 洛南县| 河间市| 神池县| 两当县| 卓资县| 栾城县| 本溪| 施秉县| 柳江县| 皮山县| 道孚县| 襄樊市| 海安县| 班戈县| 扶沟县| 隆尧县| 平舆县| 台东县| 天等县| 安泽县| 商城县| 泸西县| 中卫市| 泾源县| 拉孜县|