两个人的电影免费视频_国产精品久久久久久久久成人_97视频在线观看播放_久久这里只有精品777_亚洲熟女少妇二三区_4438x8成人网亚洲av_内谢国产内射夫妻免费视频_人妻精品久久久久中国字幕

一種基于硬件的PReLU激活卷積算子計算的方法與流程

文檔序號:40633899發(fā)布日期:2025-01-10 18:39閱讀:5來源:國知局
一種基于硬件的PReLU激活卷積算子計算的方法與流程

本發(fā)明屬于神經(jīng)網(wǎng)絡(luò)算子計算,特別涉及一種基于硬件的prelu激活卷積算子計算的方法。


背景技術(shù):

1、現(xiàn)有技術(shù)中,隨著神經(jīng)網(wǎng)絡(luò)技術(shù)的發(fā)展,應(yīng)用中越來越多的激活函數(shù)被使用。其中prelu和leakyrelu激活函數(shù)因為其優(yōu)秀的特性,使用范圍越來越廣。但是由于計算流程的問題,其與一般的relu等函數(shù)有所區(qū)別,特別是涉及到量化時,并不能很好的支持prelude和leakyrelu。

2、現(xiàn)有技術(shù)中常用的術(shù)語包括:

3、batchnormal批正則化:對輸入的批數(shù)據(jù)進行歸一化,映射到均值為0,方差為1的正態(tài)分布。同時因為將輸入數(shù)據(jù)都映射到了原點周圍,會導(dǎo)致激活函數(shù)表達能力變差,所以又引入了縮放和平移,計算公式如下:

4、

5、局部算子:局部算子是指在某個點的取值僅受到該點周圍一定范圍內(nèi)的數(shù)值影響,而不會受到其他位置上的數(shù)值影響。通俗地說,就是它只對一個點的取值依賴于該點附近的數(shù)值。常見的局部算子包括梯度算子、拉普拉斯算子、sobel算子等。在圖像處理領(lǐng)域中,均值濾波器(mean?filter)和中值濾波器(median?filter)也是一種常用的局部算子。由于局部算子僅考慮了局部信息,因此其計算速度較快,并且可以應(yīng)用于實時處理等場景。神經(jīng)網(wǎng)絡(luò)由很多算子根據(jù)輸入輸出連接組成有向無環(huán)圖,一般的在量化時需要考慮算子之間的融合,例如卷積-批歸一化-激活可以融合當作一個算子。本文中的局部算子,是指神經(jīng)網(wǎng)絡(luò)中的局部結(jié)構(gòu),是神經(jīng)網(wǎng)絡(luò)中的子圖。因為本文討論卷積的prelu激活,所以可以理解為局部算子等價于conv-bn-act。


技術(shù)實現(xiàn)思路

1、為了解決上述問題,本技術(shù)的目的在于:結(jié)合硬件計算的特性,在原有的算子基礎(chǔ)上進行擴充,使其支持prelu激活函數(shù)。

2、具體地,本發(fā)明提供一種基于硬件的prelu激活卷積算子計算的方法,所述方法包括:

3、s1,線下計算,是將可預(yù)先計算出的參數(shù)s和b,在pc端先行計算完成,其中,

4、

5、

6、sx為輸入的量化scale,

7、sw為卷積權(quán)重的量化scale,

8、sbn為batchnormal化簡后的參數(shù)scale,

9、bbn為batchnormal化簡后的參數(shù)bias,

10、max為輸出張量的量化閾值的最大值,

11、h,j,k,g,是根據(jù)輸入的量化閾值和輸出量化閾值的最小值變化的參數(shù);

12、wint為量化后的整型的權(quán)重,

13、sif為輸入tensor的量化位寬對應(yīng)的整型域范圍,

14、s2,搭載在開發(fā)板上的芯片實際運行中根據(jù)實際值的符號選用正確的參數(shù),張量先經(jīng)過卷積再計算batchnormal最后再經(jīng)過激活計算,表示為:局部算子conv-->batchnormal-->act,這三個算子原本的輸入輸出,包括內(nèi)部的計算都是浮點數(shù)的計算,通過量化將浮點數(shù)據(jù)轉(zhuǎn)為低bit的整型數(shù)據(jù);進一步包括:

15、s2.1,現(xiàn)有局部算子conv-->batchnormal-->act,表達式:

16、

17、

18、act=clip(bn,min,max)

19、y=act

20、其中,x為卷積的輸入,w為卷積的權(quán)重,bias為卷積的偏置;var、eps、γ、β是bn(batchnormal的縮寫)的參數(shù);

21、其中的act此時設(shè)為prelu算子(act是激活函數(shù)的縮寫),公式如下:

22、

23、s2.1.1融合conv與bn的操作:

24、

25、

26、設(shè)

27、

28、這里根據(jù)conv和bn的公式,將conv-bn計算化簡,其中x為conv的輸入,w為conv的權(quán)重;

29、s2.2,將整型的xint,wint帶入bn的計算公式;

30、板端的conv的量化算子,接收x和w量化后的整形值,并且計算出量化后的整形的輸出值,這樣網(wǎng)絡(luò)就能夠使用整形值進行推理;

31、其中,浮點的x與整型的xint之間的關(guān)系,以及浮點的w與wint之間的關(guān)系如下;

32、s2.2.1,對x和w進行量化后,浮點值與整形值有以下關(guān)系:

33、當input_clip_min=0

34、當input_clip_min<0

35、x=sx*(j*xint-k*sif)

36、

37、

38、有wint=(2*wint-sw)

39、

40、sif=2n-1,sw=2n-1;

41、j和k根據(jù)input_clip_min的符號取不同的值;

42、對于權(quán)重weight來說,wint=(2*wint-sw)是因為板端weight范圍是[-(2n-1),(2n-1)];

43、s2.2.2,將x和w帶入bn的計算公式:

44、

45、設(shè)

46、

47、至此,bn輸出的結(jié)果就使用定點化數(shù)據(jù)進行了表達,而激活函數(shù)需要判斷bn的值的正負;

48、s2.3,板端會計算的值,這里的計算符號表示卷積操作,所以需要加上b和calibration才能得到正確的符號;

49、由于由于prelu激活只會改變輸入的負半軸數(shù)據(jù),其輸入值如果大于等于0則直接輸出,如果小于0則乘上一個參數(shù);

50、上述計算出conv-bn的輸出bn,也就是激活的輸入,需要對其判斷符號,以確定那種計算方式;

51、s2.3.1,現(xiàn)只考慮負數(shù)的情況:

52、所述act指prelu,輸入為上面的bn,輸出命名為prelu;

53、prelu=act(bn)

54、

55、將前面bn的表達式帶入:

56、

57、設(shè)新的

58、

59、其中,

60、

61、

62、input_clip_min<0時j=2k=1

63、input_clip_min=0時j=1k=0

64、output_clip_min<0時h=0.5g=0.5

65、output_clip_min<0時h=1g=0

66、上述計算出的s和b都是激活前值為負數(shù)的情況,記做sneg和bneg;

67、s2.3.2,如果激活的輸入為正值則sneg和bneg中的阿爾法值為1,記作spos和bpos;

68、s2.4,最終芯片上計算邏輯為:

69、

70、

71、所述步驟s1中,所述線下是指在非開發(fā)板的運行環(huán)境。

72、所述步驟s2中,所述芯片控制程序邏輯并計算,程序在開發(fā)板的環(huán)境上運行,開發(fā)板上運行的算子需要最大限度的減少計算步驟。

73、所述步驟s2所述選用正確的參數(shù)即推導(dǎo)開發(fā)板上需要參數(shù)進行算子的計算過程,芯片運行的是最終推導(dǎo)出來的公式即芯片上運行的是量化的算子。

74、所述步驟s2.3中,由于輸出需要為整型值,所以prelu也要根據(jù)feature?map的量化公式進行量化,當只考慮負半軸時,也就是激活的計算邏輯為對輸入乘以一個參數(shù)alpha。

75、由此,本技術(shù)的優(yōu)勢在于:提供一種prelu激活卷積計算的方法用于加快神經(jīng)網(wǎng)絡(luò)在芯片上的運行速度。

當前第1頁1 2 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
富平县| 邯郸县| 温泉县| 博爱县| 巴塘县| 察哈| 清水河县| 饶河县| 五台县| 图片| 阿拉善左旗| 连州市| 莱芜市| 宁德市| 兴安盟| 兴安县| 疏附县| 孟州市| 土默特右旗| 扬州市| 龙岩市| 额尔古纳市| 怀远县| 武定县| 梨树县| 应城市| 武城县| 大化| 星子县| 泗洪县| 涟源市| 峨眉山市| 海淀区| 浮梁县| 呼和浩特市| 茌平县| 蓬溪县| 涞源县| 格尔木市| 卫辉市| 潞城市|