System.ArgumentOutOfRangeException: 索引和長度必須引用該字符串內的位置。 參數名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技術實現步驟摘要】
本專利技術屬于神經網絡算子計算,特別涉及一種基于nna1.0的空洞卷積的實現方法。
技術介紹
1、現有技術中,神經網絡作為模仿生物神經網絡結構和功能的數學模型,越來越被廣泛應用,其通過學習訓練樣本數據的內在規律,獲得分析或者表達樣本數據的能力,可應用于目標檢測、場景分類、文字識別等多種應用領域。訓練神經網絡的過程和方法就是深度學習。
2、卷積神經網絡在圖像、視頻、語音領域有著廣泛的應用,隨著神經網絡越變越復雜,需要大量資源來訓練和評估,而硬件加速器性能增長和通用性提高日趨緩慢。
3、卷積神經網絡主要由輸入層、卷積層、池化層和全連接層組成,其中卷積層是構成卷積神經網絡的核心層,網絡中絕大部分計算量由它產生,因此卷積神經網絡的運行速度基本上取決于卷積層的運算速度。
4、nna(neural?network?accelerator)是一種用于處理卷積計算的高性能低功耗的神經網絡加速器,擁有自己的指令集,具有靈活的可編程特性,可適用于不同類型的神經網絡。通過配置相關寄存器參數可以實現卷積核矩陣維度小于等于3x3的卷積計算加速,從而減少神經網絡運行時間,在實際應用中實時性更高,用戶體驗更好。神經網絡加速器nna1.0支持卷積核矩陣維度小于等于3x3的快速運算。空洞系數是對卷積核矩陣進行擴張的幅度。空洞卷積則是在卷積核的元素之間填充0,通過空洞系數來控制卷積核擴張后的大小,從而提取多尺度信息。空洞系數越大,卷積核也就越大。
5、然而,卷積過程包含大量的乘累加計算,運算速度慢,在實際應用中不具備
6、此外,現有技術中常用的術語包括:
7、1、圖像卷積:對于輸入圖像的每一個像素點,計算它的鄰域像素和卷積核矩陣的對應元素的乘積后累加,作為該像素位置的值,通過不斷滑動卷積核矩陣,得到最終卷積輸出結果。
8、2、特征提取:使用計算機提取圖像信息,決定每個像素點是否屬于一個圖像特征,結果是把圖像上的點分為不同的子集,這些子集往往屬于獨立的點,連續的曲線或者連續的區域。
9、3、fram:nna內部存放輸入圖像數據的片上ram。
10、4、wram:nna內部存放卷積核數據的片上ram。
11、5、oram:片上通用ram。
12、6、pixel:輸入圖像的最小單位。
13、7、pad:對輸入圖像進行邊緣填充,分為pad_top,pad_bottom,pad_left,pad_right,表示圖像上下左右邊緣填充的size。
14、8、stride:卷積核矩陣滑動的步長,分為stride_x,stride_y,表示卷積核矩陣橫向和縱向滑動的步長。
15、9、dilate:卷積核擴張的幅度,也叫空洞系數,分為dilate_x,dilate_y,表示卷積核橫向和縱向擴張的幅度。
技術實現思路
1、為了解決上述問題,本申請的目的在于:提出一種基于nna1.0的快速計算空洞卷積的實現方法,通過對卷積核進行拆分來實現nna卷積加速。其中:
2、1、卷積核拆分:對于空洞卷積,當擴張后的卷積核大小超出了nna寄存器參數范圍,通過卷積核拆分實現nna卷積加速。
3、2、nna寄存器配置:使用nna進行卷積加速必須正確配置nna相關寄存器,卷積的步長、卷積核大小等參數都通過nna寄存器進行配置,這些參數都必須在nna支持的參數范圍內才能得到正確的卷積結果。
4、具體地,本專利技術提供一種基于nna1.0的空洞卷積的實現方法,所述方法包括:
5、s1,對于空洞卷積,由于nna寄存器參數范圍限制,當擴張后卷積核大小超過3x3時,需要對卷積核矩陣進行拆分:
6、s1.1,擴張的卷積核:輸入圖像大小ih*iw,卷積核矩陣大小kh*kw,輸入圖像邊緣填充大小為pad_top、pad_bottom、pad_left、pad_right,卷積步長為stride_x、stride_y,卷積核空洞系數為dilate_x、dilate_y,擴張后的卷積核大小dilate_kh和dilate_kw,通過以下公式計算:
7、
8、s1.2,通過對卷積核進行拆分來實現nna卷積加速:
9、nna最大支持3*3的卷積核,當dilate_kh或dilate_kw大于3時,需要對擴張后的卷積核矩陣進行拆分:
10、n=(dilate_kh+2)/3
11、m=(dilate_kw+2)/3
12、其中n是對擴張后卷積核縱向拆分的計數,m是對擴張后卷積核橫向拆分的計數,n*m是總的拆分后的卷積核的個數,拆分后每個卷積核的大小不超過3*3;
13、
14、其中k11到k(n-1)(m-1)卷積核大小為3*3,k1m到k(n-1)m卷積核大小為3*(dilate_kw%3),kn1到kn(m-1)卷積核大小為(dilate_kh%3)*3,knm卷積核大小為(dilate_kh%3)*(dilate_kw%3),%表示取余數;
15、輸入圖像大小為ih*iw,不對輸入圖像進行邊緣填充,即pad_top、pad_bottom、pad_left、pad_right都為0,卷積核大小kh,kw都為3,卷積步長stride_x、stride_y都為1,卷積核空洞系數dilate_x,dilate_y都為2時,得到輸出圖像的大小oh*ow:
16、
17、
18、s2,nna的空洞卷積過程:將卷積核數據寫入wram,再將所需的輸入圖像數據寫入fram,通過nna硬件寄存器設置卷積核大小其中kh和kw必須小于等于3、pad、stride參數,再啟動nna進行卷積計算,得到卷積結果輸出,最后得到1行4個pixel的空洞卷積輸出結果。
19、所述步驟s1.1中所述擴張的具體實現:
20、卷積核大小為3x3,
21、若空洞系數為2,則擴張后的卷積核大小為5x5;
22、若空洞系數為3,則擴張后的卷積核大小為7x7;
23、
24、3x3卷積核數據排布;
25、
26、空洞系數為2,擴張后的卷積核;
27、
28、空洞系數為3,擴張后的卷積核。
29、所述步驟s1.2中所述的拆分,進一步包括:
30、假設卷積核大小kh、kw都為3,空洞系數dilate_y,dilate_x都為2,根據公式可得到擴張后的卷積核大小dilate_kh,dilate_kw都為5:nna最大支持3x3的卷積核,對擴張后5x5的卷積核進行拆分:n=(dilate_kh+2)本文檔來自技高網...
【技術保護點】
1.一種基于NNA1.0的空洞卷積的實現方法,其特征在于,所述方法包括:
2.根據權利要求1所述的一種基于NNA1.0的空洞卷積的實現方法,其特征在于,所述步驟S1.1中所述擴張的具體實現:
3.根據權利要求2所述的一種基于NNA1.0的空洞卷積的實現方法,其特征在于,所述步驟S1.2中所述的拆分,進一步包括:
4.根據權利要求3所述的一種基于NNA1.0的空洞卷積的實現方法,其特征在于,所述步驟S2,將卷積核數據按照拆分后的卷積核大小依次寫入WRAM,將所需的輸入數據一次性寫入FRAM,進一步包括:
【技術特征摘要】
1.一種基于nna1.0的空洞卷積的實現方法,其特征在于,所述方法包括:
2.根據權利要求1所述的一種基于nna1.0的空洞卷積的實現方法,其特征在于,所述步驟s1.1中所述擴張的具體實現:
3.根據權利要求2所述的一種基于nna1.0的空洞卷積的...
【專利技術屬性】
技術研發人員:劉子航,
申請(專利權)人:合肥君正科技有限公司,
類型:發明
國別省市:
還沒有人留言評論。發表了對其他瀏覽者有用的留言會獲得科技券。