一区二区三区三上|欧美在线视频五区|国产午夜无码在线观看视频|亚洲国产裸体网站|无码成年人影视|亚洲AV亚洲AV|成人开心激情五月|欧美性爱内射视频|超碰人人干人人上|一区二区无码三区亚洲人区久久精品

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

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

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

基于FPGA的神經(jīng)網(wǎng)絡(luò)加速硬件和網(wǎng)絡(luò)設(shè)計(jì)的協(xié)同

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

掃碼添加小助手

加入工程師交流群

引言

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

這篇文獻(xiàn)從概念上提出了硬件和網(wǎng)絡(luò)的協(xié)同設(shè)計(jì),是很好的一個(gè)思路。因?yàn)橹吧窠?jīng)網(wǎng)絡(luò)加速硬件設(shè)計(jì)和網(wǎng)絡(luò)壓縮是分開的,只是在網(wǎng)絡(luò)壓縮的時(shí)候盡可能考慮到硬件的特點(diǎn),讓網(wǎng)絡(luò)模型更加適合硬件架構(gòu)。這篇論文其實(shí)也是在做這樣類似的工作,我并不認(rèn)為它真正的實(shí)現(xiàn)了硬件和網(wǎng)絡(luò)設(shè)計(jì)的協(xié)同(雖然其標(biāo)榜自己如此)。但是它確實(shí)給我們提供了一個(gè)新的研究思路:如何從一開始就設(shè)計(jì)一個(gè)能夠適用于硬件的網(wǎng)絡(luò)。好的,廢話不多說,來看論文。

1. 來自作者的批判

發(fā)表論文,總是要先去總結(jié)以往論文的優(yōu)缺點(diǎn),然后指出其中不足,凸顯自己的優(yōu)勢(shì)。這篇文章也花費(fèi)了很大篇幅來批判了過去研究的不足??偨Y(jié)起來有以下幾點(diǎn):

1) 過去的研究都是用一些老的網(wǎng)絡(luò),比如VGG,resnet,alexnet等,這些網(wǎng)絡(luò)已經(jīng)落伍了,市場(chǎng)上已經(jīng)不怎么用了;

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

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

4) 以往的類似resnet的網(wǎng)絡(luò),有skip連接的,并不適合在FPGA上部署,因?yàn)樵黾恿藬?shù)據(jù)遷移;

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

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

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

2. shuffleNetV2到DiracDeltNet

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

作者對(duì)shuffleNetV2網(wǎng)絡(luò)結(jié)構(gòu)進(jìn)行了更有利于FPGA部署的微調(diào)。有以下三個(gè)方面:

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

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

3) 調(diào)整了channel的順序來適應(yīng)FPGA。




3. 量化

為了進(jìn)一步降低網(wǎng)絡(luò)參數(shù)量,作者采用了DoReFa-Net網(wǎng)絡(luò)的量化方式,對(duì)全精度權(quán)重進(jìn)行了量化。同時(shí)作者還對(duì)activation進(jìn)行了量化。量化結(jié)果如下:


精度損失很小。

文獻(xiàn)中使用了很多對(duì)網(wǎng)絡(luò)修改的微調(diào)技術(shù),細(xì)節(jié)很多,可以看出對(duì)這樣一個(gè)已經(jīng)很少參數(shù)的網(wǎng)絡(luò)來說,要進(jìn)一步壓縮確實(shí)要花費(fèi)很大功夫。這可能不太具有普遍性。這些微調(diào)應(yīng)該會(huì)花費(fèi)很多時(shí)間和精力。

4. 硬件架構(gòu)

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

所以硬件架構(gòu)上也變得很簡(jiǎn)潔,文章中說兩個(gè)人用HLS只做了一個(gè)月。


使用資源很少。


看以下和其他人的結(jié)果對(duì)比:


結(jié)論

這篇論文在shuffleNet網(wǎng)絡(luò)的基礎(chǔ)上,基于FPGA的特點(diǎn)進(jìn)行了網(wǎng)絡(luò)修改。包括網(wǎng)絡(luò)結(jié)構(gòu)和量化,最終的精度都高于以往的幾個(gè)網(wǎng)絡(luò)。結(jié)果還是不錯(cuò)的,只是這樣手動(dòng)微調(diào)網(wǎng)絡(luò)并不是很具有普遍性,而且涉及到很多微調(diào)技術(shù),也不一定適合每個(gè)網(wǎng)絡(luò)。但是作者確實(shí)提供了一個(gè)思路:如何去設(shè)計(jì)一個(gè)能夠用于FPGA的網(wǎng)絡(luò),而且還可以保證很好的精度。

文獻(xiàn)

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.

聲明:本文內(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)投訴
  • FPGA
    +關(guān)注

    關(guān)注

    1645

    文章

    22036

    瀏覽量

    618106
  • 神經(jīng)網(wǎng)絡(luò)

    關(guān)注

    42

    文章

    4814

    瀏覽量

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

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    基于FPGA搭建神經(jīng)網(wǎng)絡(luò)的步驟解析

    本文的目的是在一個(gè)神經(jīng)網(wǎng)絡(luò)已經(jīng)通過python或者M(jìn)ATLAB訓(xùn)練好的神經(jīng)網(wǎng)絡(luò)模型,將訓(xùn)練好的模型的權(quán)重和偏置文件以TXT文件格式導(dǎo)出,然后通過python程序?qū)xt文件轉(zhuǎn)化為coe文件,(coe
    的頭像 發(fā)表于 06-03 15:51 ?389次閱讀
    基于<b class='flag-5'>FPGA</b>搭建<b class='flag-5'>神經(jīng)網(wǎng)絡(luò)</b>的步驟解析

    BP神經(jīng)網(wǎng)絡(luò)與卷積神經(jīng)網(wǎng)絡(luò)的比較

    BP神經(jīng)網(wǎng)絡(luò)與卷積神經(jīng)網(wǎng)絡(luò)在多個(gè)方面存在顯著差異,以下是對(duì)兩者的比較: 一、結(jié)構(gòu)特點(diǎn) BP神經(jīng)網(wǎng)絡(luò) : BP神經(jīng)網(wǎng)絡(luò)是一種多層的前饋神經(jīng)網(wǎng)絡(luò)
    的頭像 發(fā)表于 02-12 15:53 ?655次閱讀

    BP神經(jīng)網(wǎng)絡(luò)的優(yōu)缺點(diǎn)分析

    BP神經(jīng)網(wǎng)絡(luò)(Back Propagation Neural Network)作為一種常用的機(jī)器學(xué)習(xí)模型,具有顯著的優(yōu)點(diǎn),同時(shí)也存在一些不容忽視的缺點(diǎn)。以下是對(duì)BP神經(jīng)網(wǎng)絡(luò)優(yōu)缺點(diǎn)的分析: 優(yōu)點(diǎn)
    的頭像 發(fā)表于 02-12 15:36 ?907次閱讀

    什么是BP神經(jīng)網(wǎng)絡(luò)的反向傳播算法

    BP神經(jīng)網(wǎng)絡(luò)的反向傳播算法(Backpropagation Algorithm)是一種用于訓(xùn)練神經(jīng)網(wǎng)絡(luò)的有效方法。以下是關(guān)于BP神經(jīng)網(wǎng)絡(luò)的反向傳播算法的介紹: 一、基本概念 反向傳播算法是BP
    的頭像 發(fā)表于 02-12 15:18 ?760次閱讀

    BP神經(jīng)網(wǎng)絡(luò)與深度學(xué)習(xí)的關(guān)系

    BP神經(jīng)網(wǎng)絡(luò)與深度學(xué)習(xí)之間存在著密切的關(guān)系,以下是對(duì)它們之間關(guān)系的介紹: 一、BP神經(jīng)網(wǎng)絡(luò)的基本概念 BP神經(jīng)網(wǎng)絡(luò),即反向傳播神經(jīng)網(wǎng)絡(luò)(Backpropagation Neural N
    的頭像 發(fā)表于 02-12 15:15 ?848次閱讀

    人工神經(jīng)網(wǎng)絡(luò)的原理和多種神經(jīng)網(wǎng)絡(luò)架構(gòu)方法

    在上一篇文章中,我們介紹了傳統(tǒng)機(jī)器學(xué)習(xí)的基礎(chǔ)知識(shí)和多種算法。在本文中,我們會(huì)介紹人工神經(jīng)網(wǎng)絡(luò)的原理和多種神經(jīng)網(wǎng)絡(luò)架構(gòu)方法,供各位老師選擇。 01 人工神經(jīng)網(wǎng)絡(luò) ? 人工神經(jīng)網(wǎng)絡(luò)模型之所
    的頭像 發(fā)表于 01-09 10:24 ?1178次閱讀
    人工<b class='flag-5'>神經(jīng)網(wǎng)絡(luò)</b>的原理和多種<b class='flag-5'>神經(jīng)網(wǎng)絡(luò)</b>架構(gòu)方法

    卷積神經(jīng)網(wǎng)絡(luò)與傳統(tǒng)神經(jīng)網(wǎng)絡(luò)的比較

    在深度學(xué)習(xí)領(lǐng)域,神經(jīng)網(wǎng)絡(luò)模型被廣泛應(yīng)用于各種任務(wù),如圖像識(shí)別、自然語言處理和游戲智能等。其中,卷積神經(jīng)網(wǎng)絡(luò)(CNNs)和傳統(tǒng)神經(jīng)網(wǎng)絡(luò)是兩種常見的模型。 1. 結(jié)構(gòu)差異 1.1 傳統(tǒng)神經(jīng)網(wǎng)絡(luò)
    的頭像 發(fā)表于 11-15 14:53 ?1854次閱讀

    RNN模型與傳統(tǒng)神經(jīng)網(wǎng)絡(luò)的區(qū)別

    神經(jīng)網(wǎng)絡(luò)是機(jī)器學(xué)習(xí)領(lǐng)域中的一種強(qiáng)大工具,它們能夠模擬人腦處理信息的方式。隨著技術(shù)的發(fā)展,神經(jīng)網(wǎng)絡(luò)的類型也在不斷增加,其中循環(huán)神經(jīng)網(wǎng)絡(luò)(RNN)和傳統(tǒng)神經(jīng)網(wǎng)絡(luò)(如前饋
    的頭像 發(fā)表于 11-15 09:42 ?1122次閱讀

    LSTM神經(jīng)網(wǎng)絡(luò)的結(jié)構(gòu)與工作機(jī)制

    LSTM(Long Short-Term Memory,長(zhǎng)短期記憶)神經(jīng)網(wǎng)絡(luò)是一種特殊的循環(huán)神經(jīng)網(wǎng)絡(luò)(RNN),設(shè)計(jì)用于解決長(zhǎng)期依賴問題,特別是在處理時(shí)間序列數(shù)據(jù)時(shí)表現(xiàn)出色。以下是LSTM神經(jīng)網(wǎng)絡(luò)
    的頭像 發(fā)表于 11-13 10:05 ?1624次閱讀

    LSTM神經(jīng)網(wǎng)絡(luò)的基本原理 如何實(shí)現(xiàn)LSTM神經(jīng)網(wǎng)絡(luò)

    LSTM(長(zhǎng)短期記憶)神經(jīng)網(wǎng)絡(luò)是一種特殊的循環(huán)神經(jīng)網(wǎng)絡(luò)(RNN),它能夠?qū)W習(xí)長(zhǎng)期依賴信息。在處理序列數(shù)據(jù)時(shí),如時(shí)間序列分析、自然語言處理等,LSTM因其能夠有效地捕捉時(shí)間序列中的長(zhǎng)期依賴關(guān)系而受到
    的頭像 發(fā)表于 11-13 09:53 ?1563次閱讀

    Moku人工神經(jīng)網(wǎng)絡(luò)101

    不熟悉神經(jīng)網(wǎng)絡(luò)的基礎(chǔ)知識(shí),或者想了解神經(jīng)網(wǎng)絡(luò)如何優(yōu)化加速實(shí)驗(yàn)研究,請(qǐng)繼續(xù)閱讀,探索基于深度學(xué)習(xí)的現(xiàn)代智能化實(shí)驗(yàn)的廣闊應(yīng)用前景。什么是神經(jīng)網(wǎng)絡(luò)?“人工
    的頭像 發(fā)表于 11-01 08:06 ?661次閱讀
    Moku人工<b class='flag-5'>神經(jīng)網(wǎng)絡(luò)</b>101

    matlab 神經(jīng)網(wǎng)絡(luò) 數(shù)學(xué)建模數(shù)值分析

    matlab神經(jīng)網(wǎng)絡(luò) 數(shù)學(xué)建模數(shù)值分析 精通的可以討論下
    發(fā)表于 09-18 15:14

    FPGA在深度神經(jīng)網(wǎng)絡(luò)中的應(yīng)用

    、低功耗等特點(diǎn),逐漸成為深度神經(jīng)網(wǎng)絡(luò)在邊緣計(jì)算和設(shè)備端推理的重要硬件平臺(tái)。本文將詳細(xì)探討FPGA在深度神經(jīng)網(wǎng)絡(luò)中的應(yīng)用,包括其優(yōu)勢(shì)、設(shè)計(jì)流程、關(guān)鍵技術(shù)以及實(shí)際應(yīng)用案例。
    的頭像 發(fā)表于 07-24 10:42 ?1194次閱讀

    分享幾個(gè)用FPGA實(shí)現(xiàn)的小型神經(jīng)網(wǎng)絡(luò)

    今天我們分享幾個(gè)用FPGA實(shí)現(xiàn)的小型神經(jīng)網(wǎng)絡(luò),側(cè)重應(yīng)用。
    的頭像 發(fā)表于 07-24 09:30 ?1869次閱讀
    分享幾個(gè)用<b class='flag-5'>FPGA</b>實(shí)現(xiàn)的小型<b class='flag-5'>神經(jīng)網(wǎng)絡(luò)</b>

    神經(jīng)網(wǎng)絡(luò)專用硬件實(shí)現(xiàn)的方法和技術(shù)

    神經(jīng)網(wǎng)絡(luò)專用硬件實(shí)現(xiàn)是人工智能領(lǐng)域的一個(gè)重要研究方向,旨在通過設(shè)計(jì)專門的硬件加速神經(jīng)網(wǎng)絡(luò)的訓(xùn)練和推理過程,提高計(jì)算效率和能效比。以下將詳細(xì)
    的頭像 發(fā)表于 07-15 10:47 ?2313次閱讀