欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

一種參數(shù)化可擴展的神經網(wǎng)絡全連接層多層互連結構的制作方法

文檔序號:11775375閱讀:676來源:國知局
一種參數(shù)化可擴展的神經網(wǎng)絡全連接層多層互連結構的制作方法與工藝
本發(fā)明屬于人工神經網(wǎng)絡
技術領域
,特別涉及一種參數(shù)化可擴展的神經網(wǎng)絡全連接層多層互連結構。
背景技術
:全連接層在神經網(wǎng)絡算法中是必不可少的一部分,其構造一般是多層互連,每一層的輸出作為下一層的輸入。全連接層是神經網(wǎng)絡中計算量最大,參數(shù)最多的部分,在整個算法中具有決定性的作用。隨著神經網(wǎng)絡的應用越來越廣泛,需求不斷增加,神經網(wǎng)絡的深度逐步加深,全連接層的層數(shù)也會相應增加。目前比較流行神經神經網(wǎng)絡算法中都用到了全連接層,而這些網(wǎng)絡對全連接層的層數(shù)和每層輸入輸出的節(jié)點數(shù)目的配置都各有不同,以下列舉一些目前常用的卷積神經網(wǎng)絡算法結構中全連接層網(wǎng)絡的結構:1)主要用于手寫數(shù)字體識別的經典網(wǎng)絡lenet-5中采用了三層卷積層和兩層全連接層,全連接層共有214個神經元節(jié)點,包含一萬多個參數(shù);2)在主要用于imagenet數(shù)據(jù)庫識別分類的經典結構alexnet網(wǎng)絡中采用了五層卷積層和三層全連接層,第一層全連接層有4096個神經元節(jié)點,第二層有4096個神經元節(jié)點,第三層有1000個神經元節(jié)點,共包含約兩千萬個參數(shù);3)在2014年出現(xiàn)的另一種同樣識別imagenet庫的更深的網(wǎng)絡vgg-net網(wǎng)絡中共采用了十五層的卷積層和三層全連接層,前兩層全連接層各有4096個神經元節(jié)點,第三層有1000個神經元節(jié)點,共包含參數(shù)一億多個參數(shù)。隨著計算網(wǎng)絡規(guī)模不斷擴大,參與計算的數(shù)據(jù)越來越多,而全連接層因為功能需要往往會占用整個系統(tǒng)參數(shù)的較大比例,訓練一個網(wǎng)絡需要成千上萬次的迭代運算,用傳統(tǒng)計算機cpu/gpu計算時數(shù)據(jù)會頻繁在處理器和存儲器間傳遞,存儲帶寬的限制和數(shù)據(jù)搬移造成過多的能耗,,采用專用計算架構實現(xiàn)卷積神經網(wǎng)絡來提高計算效率成為目前的研究熱點,而一種參數(shù)化可擴展的全連接層的設計是通用卷積神經網(wǎng)絡加速平臺的關鍵模塊。技術實現(xiàn)要素:本發(fā)明的目的在于提供一種參數(shù)化可擴展的神經網(wǎng)絡全連接層多層互連結構,以解決上述技術問題。為了實現(xiàn)上述的目的,本方案采用了如下的技術方案:一種參數(shù)化可擴展的神經網(wǎng)絡全連接層多層互連結構,包括若干層全連接層,每層全連接層例化了若干個基本單元;一個基本單元連接一個路由器,同一全連接層中的基本單元經過路由器相連,形成全連接環(huán);全連接環(huán)的路由器上下相連形成一種參數(shù)化可擴展的神經網(wǎng)絡全連接層多層互連結構。進一步的,基本單元包括存儲模塊、地址計數(shù)器模塊和若干基本列模塊;若干基本列模塊并列設置,每個基本列模塊的輸入端均連接基本單元的數(shù)據(jù)輸入端和存儲模塊的輸出端,每個基本列模塊的輸出端均連接基本單元的數(shù)據(jù)輸出端;地址計數(shù)器模塊的輸入端連接一個基本列模塊,地址計數(shù)器模塊的輸出端連接存儲模塊;地址計數(shù)器模塊用于采集基本列模塊的計算次數(shù);存儲模塊包括權重sram和偏置sram;基本列模塊用于根據(jù)存儲模塊輸入的權重和偏置對接收的輸入數(shù)據(jù)與權重進行相乘,然后與偏置相加獲得輸出數(shù)據(jù)進行輸出。進一步的,每層全連接層中的每個基本單元都從上一層接收數(shù)據(jù),正向數(shù)據(jù)由卷積層和池化層輸出到全連接的第一層f1;該層實例化了k1個基本模塊,第一層f1中每個基本模塊都從池化層接收數(shù)據(jù),在f1層計算后傳入下一層全連接f2,f2層也是根據(jù)輸出的參數(shù)例化了k2個基本模塊互連構成,數(shù)據(jù)在f2層計算完成后又傳入f3(包含k3個基本模塊),一直傳到最后一層全連接層fn層(包含kn個基本模塊),其中,ki代表第i層的基本模塊個數(shù),計算后傳入最后的分類輸出層輸出。進一步的,全連接層各個基本單元接收到的數(shù)據(jù)后在本層內進行計算和傳輸?shù)木唧w過程:在第一個時鐘周期,第i+1層全連接層各個基本單元先對自己接收到的數(shù)據(jù)進行計算;在第二個時鐘周期的時候這些數(shù)據(jù)同時以同一個方向移動到下游的基本單元;第二個時鐘周期每個基本單元接收到的數(shù)據(jù)為自己前一個基本單元上一個時鐘周期接收到的數(shù)據(jù);第三個時鐘周期每個基本單元仍重復上一個周期的操作,直到ki個時鐘周期后,每個基本單元都接收到了ki次數(shù)據(jù),正好對應了由上層傳下來d1~dki所有的數(shù)據(jù),既同一個數(shù)據(jù)包遍歷該層所有基本單元;由此,該結構實現(xiàn)了全連接層基本單元輸入數(shù)據(jù)的共享。進一步的,儲模塊是兩個sram,一個按順序存放著該基本單元計算需要權重值,另外一個存放著每個輸出節(jié)點對應的偏置值;讀地址模塊由列模塊輸出的有效信號控制,輸出當前兩個sram的讀地址;數(shù)據(jù)在全連接基本單元進行計算的過程是:從上層網(wǎng)絡結構或本層其它基本單元處接收到的數(shù)據(jù)包進入該基本單元輸入端口,該數(shù)據(jù)包的大小等于全連接基本單元輸入端口的個數(shù)乘以端口的數(shù)據(jù)位寬;該數(shù)據(jù)包同時輸入多個基本列模塊,在每個列模塊中拆分為單獨的數(shù)據(jù)送入該列模塊中的基本神經元模塊中;在數(shù)據(jù)輸入的同時,地址計數(shù)器模塊將這些數(shù)據(jù)對應的權重所存的地址讀入存儲模塊,將對應的一行權重數(shù)據(jù)包讀入列模塊,該權重數(shù)據(jù)包的大小也為全連接基本單元的輸入端口乘以數(shù)據(jù)位寬,該權重數(shù)據(jù)包在列模塊中進行拆分分配,送入不同的基本神經元中進行計算;每個基本神經元模塊計算出一個數(shù)據(jù),這些數(shù)據(jù)在基本列模塊里進行相加、存儲,等待下一次計算的結果出來繼續(xù)累加、直到所有輸入基本單元的數(shù)據(jù)包都參與了運算,隨后由基本列模塊輸出最終結果,多個基本列模塊將數(shù)據(jù)打包輸出,輸出數(shù)據(jù)包的大小為輸出端口數(shù)乘以數(shù)據(jù)位寬。進一步的,若上一層全連接環(huán)中的路由器數(shù)量小于下一層環(huán)中的路由數(shù)器數(shù)量,將下一層全連接環(huán)中的路由器等間隔與上一層環(huán)中的路由器相連;若上一層路由器數(shù)量大于下一層路由器數(shù)量,則將下一層環(huán)中已有的路由器等間隔增加路由器,路由器負責同層及層間的數(shù)據(jù)傳輸。。進一步的,支持雙向的數(shù)據(jù)傳遞(前向推理,反向學習),同一層全連接環(huán)中傳遞同一類型數(shù)據(jù)包時,基本單元的發(fā)送數(shù)據(jù)包的方向一致。相對于現(xiàn)有技術,本發(fā)明具有以下有益效果:1、根據(jù)實際應用需求,可以通過參數(shù)配置生成不同層數(shù)和不同規(guī)模的神經網(wǎng)絡全連接層。卷積神經網(wǎng)絡算法中是由n層全連接互連構成的全連接網(wǎng)絡,每層例化了ki個全連接基本單元,ki個基本單元兩兩相連形成一個閉合環(huán)路,每一層的ki值可以不同的數(shù)值。2、全連接層每一層中的基本單元都可以從上層對應的基本單元或本層與之相鄰的基本單元處接收數(shù)據(jù),也可以將數(shù)據(jù)傳輸至下層基本單元或本層與之相鄰的基本單元中。每層包含的全連接基本單元在各自收到上層傳來的數(shù)據(jù)包后先在該單元中存儲,第二個時鐘周期將推理使用的數(shù)據(jù)包順時針(學習使用的數(shù)據(jù)包逆時針)傳入與之相鄰的基本單元再次存儲,之后一直將這種數(shù)據(jù)包按照同一個時鐘方向傳遞,直到同一個數(shù)據(jù)包遍歷該層所有基本單元,這樣就實現(xiàn)了全連接的輸入?yún)⑴c每個基本計算單元的功能要求。3、構成全連接層的基本單元內部結構可根據(jù)參數(shù)進行配置。全連接基本單元的輸入數(shù)據(jù)位寬、個數(shù)和數(shù)據(jù)批次數(shù)可配置,基本單元中負責計算操作的基本模塊個數(shù)(本設計中稱為基本列模塊和基本神經元)以及每個基本模塊里的結構可配置,輸出數(shù)據(jù)位寬、個數(shù)和輸出時刻可配置,這樣就可以通過參數(shù)配置實現(xiàn)不同算法結構的全連接層網(wǎng)絡硬件架構。本發(fā)明采用可配置的全連接基本單元作為全連接層硬件實現(xiàn)的基礎,用戶可以根據(jù)實際使用的神經網(wǎng)絡的需求通過設置參數(shù)控制生成多個基本單元并互連的方式完成其網(wǎng)絡中全連接層的設計實現(xiàn)和并行加速。附圖說明圖1為本發(fā)明一種參數(shù)化可擴展的神經網(wǎng)絡全連接層多層互連結構的結構圖;圖2為本發(fā)明全連接層各基本單元收發(fā)數(shù)據(jù)流向示意圖;圖3為本發(fā)明全連接層基本單元設計功能圖;圖4為本發(fā)明全連接層基本單元硬件架構圖。具體實施方式下面結合附圖對本發(fā)明進行詳細的描述請參閱圖1所示,本發(fā)明一種參數(shù)化可擴展的神經網(wǎng)絡全連接層多層互連結構,是由n層全連接層互連構成的全連接網(wǎng)絡,每層分別例化了若干個基本單元,每層中的每個基本單元都從上一層接收數(shù)據(jù),黑色實線箭頭描述的是全連接層正向網(wǎng)絡的數(shù)據(jù)流向,黑色虛線箭頭描述的是全連接層反向網(wǎng)絡的數(shù)據(jù)流向,正向數(shù)據(jù)由卷積層和池化層輸出到全連接的第一層f1,該層實例化了k1個基本模塊,在圖1中分別表示為f11~f1k1,第一層f1中每個基本模塊都從池化層接收數(shù)據(jù),在f1層計算后傳入下一層全連接f2,f2層也是根據(jù)輸出的參數(shù)例化了k2個基本模塊互連構成,數(shù)據(jù)在f2層計算完成后又傳入f3,就這樣一直傳到fn層,計算后傳入最后的輸出分類層輸出。請參閱圖2所示,全連接層各個基本單元接收到的數(shù)據(jù)后在本層內進行計算和傳輸?shù)木唧w過程,假設fi+1,1收到上層傳來的數(shù)據(jù)為di,1,fi+1,2接收到的數(shù)據(jù)為di,2,,以此類推,fi+1,ki接收到數(shù)據(jù)di,ki,那么在第一個時鐘周期,fi+1層各個基本單元先對自己接收到的數(shù)據(jù)進行計算,在第二個時鐘周期的時候這些數(shù)據(jù)同時以同一個方向移動到下游的基本單元,圖2中的順時針方向的箭頭表示此時的數(shù)據(jù)流向,如圖所示,fi+1,1原先接收到的數(shù)據(jù)di,1移動至fi+1,2,而fi+1,2原先接收到的數(shù)據(jù)di,2移動至fi+1,3,fi+1.k(i+1)原先接收到的數(shù)據(jù)di,k移動至fi+1,1,以此類推,所以第二個時鐘周期每個基本單元接收到的數(shù)據(jù)即為自己前一個基本單元上一個時鐘周期接收到的數(shù)據(jù),第三個時鐘周期每個基本單元重復上一個周期的操作,直到k個時鐘周期后,每個基本單元都接收到了ki次數(shù)據(jù),正好對應了由上層傳下來的包括d1~dki所有的數(shù)據(jù),由此,該結構便實現(xiàn)了全連接層基本單元輸入數(shù)據(jù)的共享。請參閱圖3所示,每一個基本單元的邏輯功能,假設一個基本單元有i個輸入和j個輸出,則可以構成圖3中的類似于交叉開關的結構,數(shù)據(jù)從水平方向進入,豎直方向輸出。交叉開關橫縱交錯的節(jié)點稱為基本神經元?;旧窠浽锌梢詫崿F(xiàn)多個數(shù)據(jù)的乘加運算。全連接基本單元有i個輸入,每個對應交叉結構的一行,需要計算的數(shù)據(jù)從該行的輸入口傳入該行每一個基本神經元中與每個基本神經元中的參數(shù)進行計算,所以j個輸出端口的每一列都會計算出i個值,將每列的基本神經元合起來看做一個基本列模塊,因為該基本單元完成全連接的乘加功能,全連接的每個輸出結果由所有輸入數(shù)據(jù)和權重值的積相加而成,因此將基本列模塊中所有基本神經元計算的結果相加作為輸出。請參閱圖4所示為全連接基本單元的設計架構;基本單元包括存儲模塊、地址計數(shù)器模塊和若干基本列模塊。若干基本列模塊并列設置,每個基本列模塊的輸入端均連接基本單元的數(shù)據(jù)輸入端和存儲模塊的輸出端,每個基本列模塊的輸出端均連接基本單元的數(shù)據(jù)輸出端;地址計數(shù)器模塊的輸入端連接一個基本列模塊,地址計數(shù)器模塊的輸出端連接存儲模塊;地址計數(shù)器模塊用于采集基本列模塊的計算次數(shù)。存儲模塊包括權重sram和偏置sram。基本列模塊用于根據(jù)存儲模塊輸入的權重和偏置對接收的輸入數(shù)據(jù)與權重進行相乘,然后與偏置相加獲得輸出數(shù)據(jù)進行輸出。一個基本單元連接一個路由器,同一全連接層中的基本單元經過路由器相連,形成全連接環(huán)。將全連接環(huán)的路由器上下相連,形成一種參數(shù)化可擴展的神經網(wǎng)絡全連接層多層互連結構。若上一層環(huán)中的路由器數(shù)量小于下一層環(huán)中的路由數(shù)器數(shù)量,將下一層環(huán)中的路由器等間隔與上一層環(huán)中的路由器相連;若上一層路由器數(shù)量大于下一層路由器數(shù)量,則將下一層環(huán)中已有的路由器等間隔增加路由器,路由器負責同層及層間的數(shù)據(jù)傳輸?;玖心K主要用于數(shù)據(jù)的運算,具體數(shù)目由參數(shù)決定,每個列模塊中又根據(jù)配置參數(shù)實例化相應的基本神經元,這些基本神經元就對應了圖3交叉開關的節(jié)點,其數(shù)量等于該全連接基本單元的輸入的端口數(shù)。存儲模塊是兩個sram,一個按順序存放著該基本單元計算需要權重值(weight),另外一個存放著每個輸出節(jié)點對應的偏置值(bias)。讀地址模塊由列模塊輸出的有效信號控制,輸出當前兩個sram的讀地址。數(shù)據(jù)在全連接基本單元進行計算的過程是:從上層網(wǎng)絡結構或本層其它基本單元處接收到的數(shù)據(jù)包進入該基本單元輸入端口,該數(shù)據(jù)包的大小等于全連接基本單元輸入端口的個數(shù)乘以端口的數(shù)據(jù)位寬。該數(shù)據(jù)包同時輸入多個基本列模塊,在每個列模塊中拆分為單獨的數(shù)據(jù)送入該列模塊中的基本神經元模塊中。在數(shù)據(jù)輸入的同時,地址計數(shù)器模塊將這些數(shù)據(jù)對應的權重所存的地址讀入存儲模塊,將對應的一行權重數(shù)據(jù)包讀入列模塊,該權重數(shù)據(jù)包的大小也為全連接基本單元的輸入端口乘以數(shù)據(jù)位寬,該權重數(shù)據(jù)包在列模塊中進行拆分分配,送入不同的基本神經元中進行計算。每個基本神經元模塊計算出一個數(shù)據(jù),這些數(shù)據(jù)在基本列模塊里進行相加、存儲,等待下一次計算的結果出來繼續(xù)累加、直到所有輸入基本單元的數(shù)據(jù)包都參與了運算,隨后由基本列模塊輸出最終結果,多個列模塊將數(shù)據(jù)打包輸出,輸出數(shù)據(jù)包的大小為輸出端口數(shù)乘以數(shù)據(jù)位寬。表1為圖4中英文變量對應的中文解釋:表1:全連接基本單元配置參數(shù)表參數(shù)名稱參數(shù)意義datawidth數(shù)據(jù)位寬num_datain輸入數(shù)據(jù)個數(shù)num_f_out輸出數(shù)據(jù)個數(shù)add_times每獲得一次輸出結果需要接收數(shù)據(jù)的次數(shù)num_nrn_everycol每個基本列模塊含有基本神經元的個數(shù)para_row_num存儲模塊存儲的權重值行數(shù)para_column_num存儲模塊每行存儲的權重值個數(shù)當前人工神經網(wǎng)絡的發(fā)展趨勢是定制專用的嵌入式人工智能芯片,以加快神經網(wǎng)絡的訓練和運行速度;本發(fā)明主要針對的是卷積神經網(wǎng)絡的全連接部分在硬件上的實現(xiàn)方式提出一種參數(shù)化可擴展的多層全連接互連結構:利用參數(shù)配置生成不同規(guī)模的全連接網(wǎng)絡;每層例化出多個全連接基本單元,每層中的全連接基本單元互連構成一個閉合回路用來分時傳遞需要計算的數(shù)據(jù);每個基本單元的輸入、輸出數(shù)據(jù)個數(shù)可配置,基本列模塊和基本神經元數(shù)目可配置。本發(fā)明的設計充分考慮了數(shù)據(jù)流水線,縮短了系統(tǒng)運行時鐘周期,靈活配置全連接層的結構和規(guī)模,便于系統(tǒng)的快速部署實現(xiàn)。當前第1頁12
當前第1頁1 2 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
棋牌| 吴桥县| 昭觉县| 汝阳县| 威信县| 霞浦县| 临夏县| 海林市| 聂荣县| 高邮市| 栾城县| 宜州市| 射阳县| 顺昌县| 娱乐| 金门县| 聊城市| 庆安县| 桐城市| 凌源市| 视频| 南丰县| 柳林县| 彭州市| 呈贡县| 读书| 许昌县| 琼海市| 天柱县| 广安市| 彭州市| 兴安盟| 宁陵县| 时尚| 平湖市| 肃宁县| 衡水市| 洛扎县| 定边县| 大冶市| 藁城市|