国产精品久久久aaaa,日日干夜夜操天天插,亚洲乱熟女香蕉一区二区三区少妇,99精品国产高清一区二区三区,国产成人精品一区二区色戒,久久久国产精品成人免费,亚洲精品毛片久久久久,99久久婷婷国产综合精品电影,国产一区二区三区任你鲁

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

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

3天內不再提示

一文解析網絡壓縮算法的原理實現及結果

454398 ? 來源:AI加速微信公眾號 ? 作者:AI加速微信公眾號 ? 2020-11-14 10:51 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

引言

網絡壓縮在AI加速中可以說起到“四兩撥千斤”的作用,網絡參數的減小不僅僅降低了存儲和帶寬,而且使計算邏輯簡單,降低了LUT資源。從本篇開始,我們就一起挖掘一下網絡壓縮算法的類型,原理,實現,以及效果。寫這類算法類文章,一是學習,二是希望能夠令更多做FPGA的人,不再將眼光局限于RTL,仿真,調試,關心一下算法,定會發現FPGA的趣味和神通。

網絡結構

二值化網絡,顧名思義,就是網絡參數只有兩個數值,這兩個數值是+1和-1。在DNN網絡中主要是乘和加法運算,如果參數只有兩個數值,那么乘法的實現就很簡單,僅僅需要符號判斷就可以了。比如輸入數據A,如果和1乘,不變;和-1乘,變為負數。這用LUT很好實現,還節省了DSP的使用。相對于單精度浮點數,存儲減小16倍,帶寬也增加16倍。在計算單元數目相同情況下,比浮點運算速率提高了16倍。當然由于乘法和加法使用LUT數目減少,計算單元也會成倍增長,總的下來計算速率將大幅度提高。

網絡訓練中使用的都是浮點類型參數,這樣做是為了保證訓練的精度。那么這些浮點類型的參數如何量化的只有兩個數值呢?論文中提出了兩種方法,第一種是粗暴型,直接根據權重參數的正負,強行分出1和-1。即:

這里wb是二值參數,w是實際權重參數。量化可以看做在原來數據基礎上增加了噪聲,導致數據間最短距離變大。比如原來數據的分辨率為R0,如果增加一個高斯噪聲s,那么其分辨率就增大了。這樣在DNN中矩陣乘法中也引入了噪聲,為:

數據分辨率的降低導致了有效信息的損失,但是在大量權重情形下,平均下來可以補償一定的信息損失,即如果有:

那么在權重無窮多時,有:


圖1.1 數據增加了噪聲,導致數據分辨率降低

另外一種是隨機型,即以一定概率來選擇1和-1,論文中采用如下公式:

其中“hard sigmoid”函數為:

這實際上是對sigmoid函數進行了線性化,這樣做的目的可以減少計算量。因為線性計算只有一個乘法和加法,而sigmoid函數有指數計算。使用隨機量化更能均衡化量化引入的噪聲,消除噪聲造成的信息損失。粗暴型量化可能因為權重參數分布不同而發生較大的“不平衡”,比如負數權重較多,那么導致-1遠遠多于+1,這樣就會出現權重偏移在負方向多一些。如果使用隨機概率模型,即使負數權重多,也會有一定概率出現+1,彌補了+1較少的情況。

圖1.2 粗暴型和隨機型量化:隨機型量化的分布更加均勻

訓練過程

訓練過程主要包括三個部分:

1) 前向傳播:給定輸入數據,一層一層的計算,前一層激活函數的結果作為下一層的輸入;

2) 反向傳播:計算每一層代價函數的梯度,從最后一層開始計算,反向計算前一層,一直到計算出第一層的梯度值;

3) 更新參數:根據計算出來的梯度和前一時刻的參數,計算出下一時刻的參數。

計算過程可以用圖2.1表示:

圖2.1 訓練過程

圖2.2 訓練算法

每次量化發生在計算出浮點參數之后,然后在進行前向計算,得到代價函數,進行反向計算代價函數梯度,接著利用前一刻參數計算出下一刻數據,不斷迭代直到收斂。

結果

論文在三個數據集上進行了測試:MNIST,CIFAR-10,SVHN。

MNIST有6萬張內容為0-9數字的訓練圖片,以及1萬張用于測試的28x28大小的灰度圖片。論文研究了兩種量化方式下訓練時間,以及測試出錯率。從中看出隨機量化出錯率更低,更適合用于二值量化。

圖3.1 不同量化方式下的訓練時間以及測試錯誤率:點線表示訓練誤差,連續線表示測試錯誤率

CIFAR-10圖片內容比MNIST復雜一些,包含了各種動物。有5萬張訓練圖片和1萬張32x32大小的測試圖片。

SVHN也是0-9數字圖片,含有604K張訓練圖片和26K的32x32大小的測試圖片。以上三種數據集下使用二值網絡的結果如下圖:

圖3.2 三種數據集結果(錯誤率)比較

從中看出二值網絡錯誤率幾乎和其他網絡模型差不多,但是其大大壓縮了網絡模型。

結論

二值化網絡中參數只用兩個數值表示,實際上僅僅考慮了權重的符號作用。在三種小型簡單的數據集上表現良好。

文獻

1 Matthieu Courbariaux, Y.B., Binary Connect Training Deep Neural Networks with binary weights during propagations. ArXiv preprint, 2016.

編輯:hfy


聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • FPGA
    +關注

    關注

    1660

    文章

    22412

    瀏覽量

    636292
  • 算法
    +關注

    關注

    23

    文章

    4784

    瀏覽量

    98047
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    linux的壓縮和解壓操作

    進行壓縮,然后傳輸壓縮的文件,這樣可以減少文件傳輸所需要的帶寬和時間,在網絡接收到文件之后再解壓,就可以得到文件了。 文件的壓縮有兩種方式:有損壓縮
    發表于 12-23 06:56

    REFFRIDGED111TRC2SL:冰箱壓縮機驅動參考設計板的深度解析

    REFFRIDGED111TRC2SL:冰箱壓縮機驅動參考設計板的深度解析 在電子工程師的日常工作中,尋找合適的參考設計板對于產品開發至關重要。今天我們就來詳細解析下 Infineo
    的頭像 發表于 12-21 11:00 ?965次閱讀

    電能質量在線監測裝置支持哪些數據壓縮算法

    增強。以下是主流算法的詳細支持情況: 、無損壓縮算法(核心用于關鍵數據) 算法名稱 核心原理 適用數據類型
    的頭像 發表于 12-12 14:08 ?448次閱讀
    電能質量在線監測裝置支持哪些數據<b class='flag-5'>壓縮</b><b class='flag-5'>算法</b>?

    應用于暫態波形存儲的數據壓縮算法需要考慮哪些因素?

    應用于暫態波形存儲的數據壓縮算法,需圍繞 暫態波形特性 (突變性、關鍵特征依賴性)、 工業場景需求 (實時性、硬件限制)及 數據應用價值 (故障溯源、合規性)綜合考量,核心需關注以下六大維度:
    的頭像 發表于 11-05 15:02 ?317次閱讀

    SM4算法實現分享(算法原理

    對明文進行分組加密變換。SM4加密算法由32次迭代運算和次反序變換R組成。 設輸入明文為(X0,X 1,X 2,X 3),共128位,設密輸出為(Y0,Y 1,Y 2,Y 3),輪密鑰為rki
    發表于 10-30 08:10

    Camellia算法實現(基于開源蜂鳥E203協處理器)

    項目構想 我們開始就選擇信息安全作為芯來杯比賽方向,并以Camellia算法作為算法原型。借助蜂鳥E203的協處理,能加速Camellia算法的運算,并通過比較軟件
    發表于 10-30 07:04

    Camellia算法實現二(基于開源蜂鳥E203協處理器)

    篇分享文檔介紹了Camellia算法的基本原理,這篇文檔我們來介紹Camellia的具體實現方式。 如上圖所示為Camellia加解密系統的結構,PC端上位機通過串
    發表于 10-30 06:35

    AES加解密算法邏輯實現及其在蜂鳥E203SoC上的應用介紹

    這次分享我們會簡要介紹AES加解密算法的邏輯實現,以及如何將AES算法做成硬件協處理器集成在蜂鳥E203 SoC上。 AES算法介紹 AES算法
    發表于 10-29 07:29

    如何使用恢復算法實現開平方運算

    本文主要描述如何使用恢復算法實現開平方運算。 簡介 開平方的恢復算法其實與除法的恢復算法十分相似。首先我們假設X為輸入的操作數(它應該為正數),而他的平方根可以表示為Qn=0.q1
    發表于 10-24 13:33

    國密系列算法簡介及SM4算法原理介紹

    保證,而國產密碼算法實現了密碼算法的自主可控,對于保障我國的國家安全具有重要意義。目前,我國大力推廣國密算法的應用,并涌現出系列國家商用密
    發表于 10-24 08:25

    加密算法的應用

    稱加密算法中,加密和解密使用同個密鑰,因此密鑰必須保密,只有密鑰的持有者才能進行解密操作。 對稱加密算法具有加密速度快、加密效率高、實現簡單等優點,因此在許多場景下被廣泛應用。例如
    發表于 10-24 08:03

    e203除法器算法改進()

    e203內部除法操作使用加減交替迭代法進行運算,除幾個特殊運算外,正常的除法操作需要33個周期才能輸出運算結果,極大程度地影響了系統的性能。我們對e203的除法器進行了新的算法實現并改進。目前高性能
    發表于 10-22 07:13

    數據濾波算法的具體實現步驟是怎樣的?

    ? 數據濾波算法在電能質量在線監測裝置中的具體實現,需圍繞 “ 數據采集→預處理→算法執行→參數適配→效果驗證→結果輸出 ” 的全流程展開,核心是結合裝置硬件特性(采樣率、ADC 精度
    的頭像 發表于 10-10 16:45 ?813次閱讀

    低內存場景下的高效壓縮利器:FastLZ壓縮庫應用實踐指南

    在資源受限環境中,數據壓縮既要追求速度又要節省內存。本文聚焦FastLZ壓縮庫,深入探討其在低內存場景下的應用實踐,通過解析其核心算法與優化策略,帶您掌握如何利用該庫
    的頭像 發表于 07-22 15:13 ?373次閱讀
    低內存場景下的高效<b class='flag-5'>壓縮</b>利器:FastLZ<b class='flag-5'>壓縮</b>庫應用實踐指南

    基于FPGA的壓縮算法加速實現

    本設計中,計劃實現對文件的壓縮及解壓,同時優化壓縮中所涉及的信號處理和計算密集型功能,實現對其的加速處理。本設計的最終目標是證明在充分并行化的硬件體系結構 FPGA 上
    的頭像 發表于 07-10 11:09 ?2390次閱讀
    基于FPGA的<b class='flag-5'>壓縮</b><b class='flag-5'>算法</b>加速<b class='flag-5'>實現</b>