在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

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

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

3天內不再提示

基于FPGA的神經網絡加速硬件和網絡設計的協同

電子設計 ? 來源:AI加速 ? 作者:AI加速 ? 2020-11-21 10:36 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

引言

很久沒有看基于FPGA神經網絡實現的文章了,因為神經網絡加速設計做的久了就會發現,其實架構都差不多。大家都主要集中于去提高以下幾種性能:FPGA算力,網絡精度,網絡模型大小。FPGA架構也差不多這幾個模塊:片上緩存,卷積加速模塊,pool模塊,load,save,指令控制模塊。硬件架構上并不是太難,難的反而是軟件編譯這塊。因為其要去適應不同的網絡模型,還要能兼容FPGA硬件的變化,同時要為客戶提供一個容易操作的接口。這些在目前情景下還比較困難。首先是FPGA硬件的變化太多,各個模塊可配參數的變化(比如卷積模塊并行數的變化),另外一個是網絡模型多種多樣以及開源的網絡模型平臺也很多(tensorflow,pytorch等)。網絡壓縮也有很多種算法,這些算法基本上都會導致網絡模型精度的降低。一般基于FPGA的網絡加速設計都會強調模型被壓縮了多少以及FPGA上可以跑得多快,卻很少集中于去改善精度。

這篇文獻從概念上提出了硬件和網絡的協同設計,是很好的一個思路。因為之前神經網絡加速硬件設計和網絡壓縮是分開的,只是在網絡壓縮的時候盡可能考慮到硬件的特點,讓網絡模型更加適合硬件架構。這篇論文其實也是在做這樣類似的工作,我并不認為它真正的實現了硬件和網絡設計的協同(雖然其標榜自己如此)。但是它確實給我們提供了一個新的研究思路:如何從一開始就設計一個能夠適用于硬件的網絡。好的,廢話不多說,來看論文。

1. 來自作者的批判

發表論文,總是要先去總結以往論文的優缺點,然后指出其中不足,凸顯自己的優勢。這篇文章也花費了很大篇幅來批判了過去研究的不足。總結起來有以下幾點:

1) 過去的研究都是用一些老的網絡,比如VGG,resnet,alexnet等,這些網絡已經落伍了,市場上已經不怎么用了;

2) 過去用的數據集也小,比如CIFAR10這類,包含的圖片種類和數量都太少,不太適合商業應用;

3) 壓縮老的網絡的技術手段不再適用于最新的網絡,比如像squeezeNet網絡,它就比alexnet網絡小50倍,但是能達到和alexnet一樣的精度;

4) 以往的類似resnet的網絡,有skip連接的,并不適合在FPGA上部署,因為增加了數據遷移;

5) 以往網絡的卷積核較大,如3x3,5x5等,也不適合硬件加速;

6) 以前網絡壓縮集中于老的那些網絡,這些網絡本身就有很大的冗余,所以壓縮起來很容易,而最新的網絡比如ShuffleNet等壓縮起來就沒有那么容易了,但是這樣的報道很少;

總之,意思就是之前的文章都撿軟柿子捏,而且比較落后了。那么我們來看看在這樣狂妄口氣之下的成果如何。

2. shuffleNetV2到DiracDeltNet

shuffleNetV2是新發展出來的一個神經網絡,它的網絡模型中參數更小(比VGG16小60倍),但是精度只比VGG16低2%。shuffleNet不再像resnet將skip連接的數據求和,而是skip連接的數據進行concat,這樣的操作降低了加法操作。Skip連接可以擴展網絡的深度和提高深層網絡精度。但是加法skip不利于FPGA實現,一個是加法消耗資源和時間,另外一個是skip數據增加了遷移時間。Concat連接也和加法skip有相同的功能,增加網絡深度和精度。

作者對shuffleNetV2網絡結構進行了更有利于FPGA部署的微調。有以下三個方面:

1) 將所有3x3卷積(包括3x3depth-wise卷積)都替換為shift和1x1卷積。這樣替換是能夠降低feature map數據的遷移,比如3x3的卷積每個圖像數據要使用3次,而1x1只需要搬移一次,降低了邏輯復雜性,也提高了運算速度。Shift操作是將某個范圍的pixel移動到中間作為結果,這樣的操作減少了乘法運算次數。這種替換會導致精度降低,但是可以減少FPGA運算次數。

2) 將3x3的maxpooling操作降低為2x2的。

3) 調整了channel的順序來適應FPGA。




3. 量化

為了進一步降低網絡參數量,作者采用了DoReFa-Net網絡的量化方式,對全精度權重進行了量化。同時作者還對activation進行了量化。量化結果如下:


精度損失很小。

文獻中使用了很多對網絡修改的微調技術,細節很多,可以看出對這樣一個已經很少參數的網絡來說,要進一步壓縮確實要花費很大功夫。這可能不太具有普遍性。這些微調應該會花費很多時間和精力。

4. 硬件架構

硬件主要實現的操作很少,只有一下幾種:
1)1x1卷積
2)2x2的ma-pooling
3)shift
4)shuffle和concat

所以硬件架構上也變得很簡潔,文章中說兩個人用HLS只做了一個月。


使用資源很少。


看以下和其他人的結果對比:


結論

這篇論文在shuffleNet網絡的基礎上,基于FPGA的特點進行了網絡修改。包括網絡結構和量化,最終的精度都高于以往的幾個網絡。結果還是不錯的,只是這樣手動微調網絡并不是很具有普遍性,而且涉及到很多微調技術,也不一定適合每個網絡。但是作者確實提供了一個思路:如何去設計一個能夠用于FPGA的網絡,而且還可以保證很好的精度。

文獻

1. Yifan Yang, Q.H., Bichen Wu, Tianjun Zhang, Liang Ma, Giulio Gambardella, Michaela Blott, Luciano Lavagno, Kees Vissers, John Wawrzynek, Kurt Keutzer, Synetgy Algorithm-hardware Co-design for ConvNet Accelerators on Embedded FPGAs. arXiv preprint, 2019.

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

    關注

    1645

    文章

    22021

    瀏覽量

    617284
  • 神經網絡
    +關注

    關注

    42

    文章

    4812

    瀏覽量

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

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    BP神經網絡與卷積神經網絡的比較

    BP神經網絡與卷積神經網絡在多個方面存在顯著差異,以下是對兩者的比較: 一、結構特點 BP神經網絡 : BP神經網絡是一種多層的前饋神經網絡
    的頭像 發表于 02-12 15:53 ?622次閱讀

    人工神經網絡的原理和多種神經網絡架構方法

    在上一篇文章中,我們介紹了傳統機器學習的基礎知識和多種算法。在本文中,我們會介紹人工神經網絡的原理和多種神經網絡架構方法,供各位老師選擇。 01 人工神經網絡 ? 人工神經網絡模型之所
    的頭像 發表于 01-09 10:24 ?1158次閱讀
    人工<b class='flag-5'>神經網絡</b>的原理和多種<b class='flag-5'>神經網絡</b>架構方法

    卷積神經網絡與傳統神經網絡的比較

    在深度學習領域,神經網絡模型被廣泛應用于各種任務,如圖像識別、自然語言處理和游戲智能等。其中,卷積神經網絡(CNNs)和傳統神經網絡是兩種常見的模型。 1. 結構差異 1.1 傳統神經網絡
    的頭像 發表于 11-15 14:53 ?1809次閱讀

    Moku人工神經網絡101

    不熟悉神經網絡的基礎知識,或者想了解神經網絡如何優化加速實驗研究,請繼續閱讀,探索基于深度學習的現代智能化實驗的廣闊應用前景。什么是神經網絡?“人工
    的頭像 發表于 11-01 08:06 ?638次閱讀
    Moku人工<b class='flag-5'>神經網絡</b>101

    FPGA在深度神經網絡中的應用

    、低功耗等特點,逐漸成為深度神經網絡在邊緣計算和設備端推理的重要硬件平臺。本文將詳細探討FPGA在深度神經網絡中的應用,包括其優勢、設計流程、關鍵技術以及實際應用案例。
    的頭像 發表于 07-24 10:42 ?1175次閱讀

    分享幾個用FPGA實現的小型神經網絡

    今天我們分享幾個用FPGA實現的小型神經網絡,側重應用。
    的頭像 發表于 07-24 09:30 ?1845次閱讀
    分享幾個用<b class='flag-5'>FPGA</b>實現的小型<b class='flag-5'>神經網絡</b>

    神經網絡專用硬件實現的方法和技術

    神經網絡專用硬件實現是人工智能領域的一個重要研究方向,旨在通過設計專門的硬件加速神經網絡的訓練和推理過程,提高計算效率和能效比。以下將詳細
    的頭像 發表于 07-15 10:47 ?2285次閱讀

    什么是神經網絡加速器?它有哪些特點?

    神經網絡加速器是一種專門設計用于提高神經網絡計算效率的硬件設備。隨著深度學習技術的快速發展和廣泛應用,神經網絡模型的復雜度和計算量急劇增加,
    的頭像 發表于 07-11 10:40 ?968次閱讀

    怎么對神經網絡重新訓練

    重新訓練神經網絡是一個復雜的過程,涉及到多個步驟和考慮因素。 引言 神經網絡是一種強大的機器學習模型,廣泛應用于圖像識別、自然語言處理、語音識別等領域。然而,隨著時間的推移,數據分布可能會
    的頭像 發表于 07-11 10:25 ?843次閱讀

    如何在FPGA上實現神經網絡

    可編程門陣列(FPGA)作為一種靈活、高效的硬件實現方式,為神經網絡加速提供了新的思路。本文將從FPGA實現
    的頭像 發表于 07-10 17:01 ?3600次閱讀

    BP神經網絡和卷積神經網絡的關系

    BP神經網絡(Backpropagation Neural Network)和卷積神經網絡(Convolutional Neural Network,簡稱CNN)是兩種在人工智能和機器學習領域
    的頭像 發表于 07-10 15:24 ?2425次閱讀

    BP神經網絡和人工神經網絡的區別

    BP神經網絡和人工神經網絡(Artificial Neural Networks,簡稱ANNs)之間的關系與區別,是神經網絡領域中一個基礎且重要的話題。本文將從定義、結構、算法、應用及未來發展等多個方面,詳細闡述BP
    的頭像 發表于 07-10 15:20 ?2237次閱讀

    rnn是遞歸神經網絡還是循環神經網絡

    RNN(Recurrent Neural Network)是循環神經網絡,而非遞歸神經網絡。循環神經網絡是一種具有時間序列特性的神經網絡,能夠處理序列數據,具有記憶功能。以下是關于循環
    的頭像 發表于 07-05 09:52 ?1003次閱讀

    遞歸神經網絡與循環神經網絡一樣嗎

    遞歸神經網絡(Recursive Neural Network,RvNN)和循環神經網絡(Recurrent Neural Network,RNN)是兩種不同類型的神經網絡結構,它們在處理序列數據
    的頭像 發表于 07-05 09:28 ?1589次閱讀

    人工神經網絡模型的分類有哪些

    人工神經網絡(Artificial Neural Networks, ANNs)是一種模擬人腦神經元網絡的計算模型,它在許多領域,如圖像識別、語音識別、自然語言處理、預測分析等有著廣泛的應用。本文將
    的頭像 發表于 07-05 09:13 ?2323次閱讀
    主站蜘蛛池模板: 日本三级s级在线播放 | 男人资源网 | 一区二区网站 | 亚洲性久久久影院 | 国模私拍视频在线观看 | 国产三级黄色毛片 | 免费网站直接看 | 最新国产你懂的在线网址 | 婷婷综合久久狠狠色99h | 亚洲资源在线观看 | www.87福利 | 国产伦精品一区二区三区高清 | 欧美feer| 国产精品午夜国产小视频 | 美女黄色在线 | 欧美a一| 国产午夜在线观看 | 色香蕉色香蕉在线视频 | 日本免费大黄在线观看 | 五月婷婷丁香在线观看 | 天天射天天干天天色 | 综合色亚洲 | 久久99热久久精品99 | 亚洲伊人久久综合影院2021 | 日韩在线视频www色 日韩在线视频免费观看 | 二级黄绝大片中国免费视频 | 97夜夜操 | 五月伊人婷婷 | 色多多www视频在线观看免费 | 国产又色| 91大神在线视频观看 | 色宅男| 日韩欧美伦理 | 欧美xxxxx性视频 | 九九九色| 欧洲性开放大片免费观看视频 | 老外一级黄色片 | 国产免费播放一区二区三区 | 亚洲成人在线网 | 亚洲一本高清 | 国产小视频网站 |