亚洲成年人黄色一级片,日本香港三级亚洲三级,黄色成人小视频,国产青草视频,国产一区二区久久精品,91在线免费公开视频,成年轻人网站色直接看

一種支持較少位數(shù)浮點數(shù)的神經(jīng)網(wǎng)絡(luò)運算的裝置和方法與流程

文檔序號:12905886閱讀:194來源:國知局
一種支持較少位數(shù)浮點數(shù)的神經(jīng)網(wǎng)絡(luò)運算的裝置和方法與流程

本發(fā)明涉及人工神經(jīng)網(wǎng)絡(luò)技術(shù)領(lǐng)域,更具體地涉及一種支持較少位數(shù)浮點數(shù)的神經(jīng)網(wǎng)絡(luò)運算的裝置和方法。



背景技術(shù):

多層人工神經(jīng)網(wǎng)絡(luò)被廣泛應(yīng)用于模式識別、圖像處理、函數(shù)逼近和優(yōu)化計算等領(lǐng)域,多層人工網(wǎng)絡(luò)在近年來由于其較高的識別準確度和較好的可并行性,受到學(xué)術(shù)界和工業(yè)界越來越廣泛的關(guān)注。

傳統(tǒng)的人工神經(jīng)網(wǎng)絡(luò)正向運算對數(shù)據(jù)的存儲通常采用的是32位浮點數(shù)據(jù)類型,但在大部分人工神經(jīng)網(wǎng)絡(luò)的正向運算中,同一類型的數(shù)據(jù)都會集中在某一數(shù)據(jù)范圍之內(nèi),而32位浮點所能表示的數(shù)據(jù)范圍遠遠大于正向運算同一類型數(shù)據(jù)的數(shù)據(jù)范圍,采用32位浮點數(shù)據(jù)類型存在著大量的冗余,增加了硬件的面積開銷。



技術(shù)實現(xiàn)要素:

有鑒于此,本發(fā)明的一個目的在于提供一種用于執(zhí)行人工神經(jīng)網(wǎng)絡(luò)正向運算的裝置,本發(fā)明的另一個目的在于提供一種執(zhí)行人工神經(jīng)網(wǎng)絡(luò)正向運算的方法,以解決上述技術(shù)問題中的至少之一。

為了實現(xiàn)上述目的,作為本發(fā)明的一個方面,本發(fā)明提供了一種用于執(zhí)行人工神經(jīng)網(wǎng)絡(luò)正向運算的裝置,包括浮點數(shù)據(jù)統(tǒng)計模塊、浮點數(shù)據(jù)轉(zhuǎn)換單元和浮點數(shù)據(jù)運算模塊,其中,

所述浮點數(shù)據(jù)統(tǒng)計模塊用于對所述人工神經(jīng)網(wǎng)絡(luò)正向運算所需的各個類型的數(shù)據(jù)進行統(tǒng)計分析,得到指數(shù)位偏移量offset及指數(shù)位的長度el;

所述浮點數(shù)據(jù)轉(zhuǎn)換單元用于根據(jù)所述浮點數(shù)據(jù)統(tǒng)計模塊得到的所述指數(shù)位偏移量offset及指數(shù)位的長度el來實現(xiàn)長位數(shù)浮點數(shù)據(jù)類型向短位數(shù)浮點數(shù)據(jù)類型的轉(zhuǎn)換;

所述浮點數(shù)據(jù)運算模塊用于在所述浮點數(shù)據(jù)轉(zhuǎn)換單元將所有所述人工神經(jīng)網(wǎng)絡(luò)正向運算中所需的輸入、權(quán)值和/或偏置數(shù)據(jù)均采用短位數(shù)浮點數(shù)據(jù)類型表示之后,對所述短位數(shù)浮點數(shù)據(jù)進行人工神經(jīng)網(wǎng)絡(luò)正向運算。

其中,所述浮點數(shù)據(jù)統(tǒng)計模塊包括數(shù)據(jù)提取單元、統(tǒng)計單元和分析單元,其中,所述數(shù)據(jù)提取單元用于提取基于長位數(shù)浮點數(shù)據(jù)的正向運算中各不同類型的數(shù)據(jù);所述統(tǒng)計單元用于統(tǒng)計同一類型數(shù)據(jù)的數(shù)據(jù)范圍及各數(shù)據(jù)段的數(shù)據(jù)分布情況;所述分析單元根據(jù)統(tǒng)計單元統(tǒng)計的結(jié)果,得出用短位數(shù)浮點表示各個類型數(shù)據(jù)應(yīng)當(dāng)設(shè)定的指數(shù)位長度el及指數(shù)位偏移offset。

其中,所述用于執(zhí)行人工神經(jīng)網(wǎng)絡(luò)正向運算的裝置還包括舍入單元,所述舍入單元用于在運算結(jié)束后,對超出短位數(shù)浮點精度范圍的數(shù)據(jù)進行舍入操作。

其中,所述舍入單元選自隨機舍入單元、四舍五入單元、向上舍入單元、向下舍入單元、截斷舍入單元中的任一種;

其中,所述隨機舍入單元執(zhí)行如下操作:

其中,y表示隨機舍入后的短位浮點數(shù)據(jù),x表示隨機舍入前的長位浮點數(shù)據(jù),ε為當(dāng)前短位數(shù)浮點數(shù)據(jù)表示格式所能表示的最小正整數(shù),即2offset-(x-1-el),表示對原數(shù)據(jù)x直接截得短位數(shù)浮點數(shù)據(jù)所得的數(shù),w.p.表示概率,即隨機舍入獲得的數(shù)據(jù)y為的概率為的概率為

所述四舍五入單元執(zhí)行如下操作:

其中,y表示四舍五入后的短位浮點數(shù)據(jù),x表示四舍五入前的長位浮點數(shù)據(jù),ε為當(dāng)前短位數(shù)浮點數(shù)據(jù)表示格式所能表示的最小正整數(shù),即2offset-(x-1-el),為ε的整數(shù)倍,其值為小于或等于x的最大數(shù);

所述向上舍入單元執(zhí)行如下操作:

其中,y表示向上舍入后的短位浮點數(shù)據(jù),x表示向上舍入前的長位浮點數(shù)據(jù),為ε的整數(shù)倍,其值為大于或等于x的最小數(shù),ε為當(dāng)前短位數(shù)浮點數(shù)據(jù)表示格式所能表示的最小正整數(shù),即2offset-(x-1-el);

所述向下舍入單元執(zhí)行如下操作:

其中,y表示向上舍入后的短位浮點數(shù)據(jù),x表示向上舍入前的長位浮點數(shù)據(jù),為ε的整數(shù)倍,其值為小于或等于x的最大數(shù),ε為當(dāng)前短位數(shù)浮點數(shù)據(jù)表示格式所能表示的最小正整數(shù),即2offset-(x-1-el);

所述截斷舍入單元執(zhí)行如下操作:

y=[x];

其中,y表示截斷舍入后的短位浮點數(shù)據(jù),x表示截斷舍入前的長位浮點數(shù)據(jù),[x]表示對原數(shù)據(jù)x直接截得短位數(shù)浮點數(shù)據(jù)所得的數(shù)。

其中,所述浮點數(shù)據(jù)轉(zhuǎn)換單元先通過所述舍入單元對待處理的數(shù)據(jù)進行舍入操作,再根據(jù)浮點數(shù)據(jù)統(tǒng)計模塊得到的指數(shù)位偏移量offset及指數(shù)位的長度el來實現(xiàn)長位數(shù)浮點數(shù)據(jù)類型向短位數(shù)浮點數(shù)據(jù)類型的轉(zhuǎn)換。

其中,所述用于執(zhí)行人工神經(jīng)網(wǎng)絡(luò)正向運算的裝置還包括運算緩存單元,所述運算緩存單元采用長位數(shù)浮點數(shù)據(jù)類型存儲正向運算中加法和乘法的中間運算結(jié)果。

作為本發(fā)明的另一個方面,本發(fā)明還提供了一種執(zhí)行人工神經(jīng)網(wǎng)絡(luò)正向運算的方法,包括以下步驟:

獲取所述人工神經(jīng)網(wǎng)絡(luò)各個層的長位數(shù)浮點數(shù)據(jù),包括每一層的權(quán)值、偏置和/或輸入輸出值;

對獲得的所述長位數(shù)浮點數(shù)據(jù)進行分析,獲得存儲所述長位數(shù)浮點數(shù)據(jù)所需的指數(shù)位偏移量offset及指數(shù)位的長度el;

根據(jù)所述指數(shù)位偏移量offset及指數(shù)位的長度el,將所有所述長位數(shù)浮點數(shù)據(jù)采用短位數(shù)浮點數(shù)據(jù)類型表示;

對所述短位數(shù)浮點數(shù)據(jù)執(zhí)行人工神經(jīng)網(wǎng)絡(luò)正向運算。

其中,所述對獲得的長位數(shù)浮點數(shù)據(jù)進行分析的步驟中,對所述人工神經(jīng)網(wǎng)絡(luò)不同層、不同類型的數(shù)據(jù)分別進行分析,獲得相對于所述人工神經(jīng)網(wǎng)絡(luò)不同類型的數(shù)據(jù)的指數(shù)位偏移量offset及指數(shù)位的長度el。

其中,所述對短位數(shù)浮點數(shù)據(jù)執(zhí)行人工神經(jīng)網(wǎng)絡(luò)正向運算的步驟中,對于正向運算中的加法運算和乘法運算,將其中間計算結(jié)果采用長位數(shù)浮點數(shù)據(jù)形式存儲。

其中,在執(zhí)行完所述人工神經(jīng)網(wǎng)絡(luò)正向運算之后,將參與反向運算的權(quán)值和偏置數(shù)據(jù)采用在正向運算時保留的長位數(shù)浮點數(shù)據(jù)表示的副本、其余數(shù)據(jù)采用由短位數(shù)浮點數(shù)據(jù)轉(zhuǎn)換成的長位數(shù)浮點數(shù)據(jù)后再進行反向運算。

基于上述技術(shù)方案可知,本發(fā)明的運算裝置和方法具有如下有益效果:可以實現(xiàn)多層人工神經(jīng)網(wǎng)絡(luò)的短位數(shù)浮點形式的正向運算,從而極大地減少了存儲網(wǎng)絡(luò)參數(shù)所需的空間,減少硬件的面積開銷,優(yōu)化了硬件的面積功耗比;訓(xùn)練完成的神經(jīng)網(wǎng)絡(luò)模型參數(shù)數(shù)據(jù)可用于專用神經(jīng)網(wǎng)絡(luò)加速器,由于采用了短位浮點形式表示數(shù)據(jù),所以可以降低對專用神經(jīng)網(wǎng)絡(luò)加速器傳輸帶寬的要求,同時,減少計算帶來的功耗。

附圖說明

圖1為根據(jù)本發(fā)明一實施例的用于存儲數(shù)據(jù)的短位數(shù)浮點數(shù)據(jù)結(jié)構(gòu)的具體表示方法;

圖2為根據(jù)本發(fā)明一實施例的用于執(zhí)行人工神經(jīng)網(wǎng)絡(luò)正向運算的裝置中浮點數(shù)據(jù)統(tǒng)計模塊的示例框圖;

圖3為根據(jù)本發(fā)明一實施例的用于執(zhí)行人工神經(jīng)網(wǎng)絡(luò)正向運算的裝置中正向運算模塊的短位數(shù)浮點計算部分的示例框圖;

圖4為根據(jù)本發(fā)明一實施例的神經(jīng)網(wǎng)絡(luò)正向運算過程的示例框圖;

圖5示意性示出了根據(jù)本發(fā)明一實施例的用于執(zhí)行人工神經(jīng)網(wǎng)絡(luò)正向運算裝置的運算流程示例框圖。

具體實施方式

為使本發(fā)明的目的、技術(shù)方案和優(yōu)點更加清楚明白,以下結(jié)合具體實施例,并參照附圖,對本發(fā)明作進一步的詳細說明。通過以下詳細描述,本發(fā)明的其它方面、優(yōu)勢和突出特征對于本領(lǐng)域技術(shù)人員將變得顯而易見。

在本說明書中,下述用于描述本發(fā)明原理的各種實施例只是說明,不應(yīng)該以任何方式解釋為限制發(fā)明的范圍。參照附圖的下述描述用于幫助全面理解由權(quán)利要求及其等同物限定的本發(fā)明的示例性實施例。下述描述包括多種具體細節(jié)來幫助理解,但這些細節(jié)應(yīng)認為僅僅是示例性的。因此,本領(lǐng)域普通技術(shù)人員應(yīng)認識到,在不悖離本發(fā)明的范圍和精神的情況下,可以對本文中描述的實施例進行多種改變和修改。此外,為了清楚和簡潔起見,省略了公知功能和結(jié)構(gòu)的描述。此外,貫穿附圖,相同附圖標記用于相似功能和操作。

本發(fā)明公開了一種用于執(zhí)行人工神經(jīng)網(wǎng)絡(luò)正向運算的裝置,包括浮點數(shù)據(jù)統(tǒng)計模塊、浮點數(shù)據(jù)轉(zhuǎn)換單元以及相應(yīng)的浮點數(shù)據(jù)運算模塊。其中,浮點數(shù)據(jù)統(tǒng)計模塊用于統(tǒng)計及計算獲得人工神經(jīng)網(wǎng)絡(luò)正向運算中存儲各個類型數(shù)據(jù)所需的指數(shù)位偏移及指數(shù)位所需的比特位數(shù);浮點數(shù)據(jù)轉(zhuǎn)換單元用于實現(xiàn)短位數(shù)浮點數(shù)據(jù)類型與長位數(shù)浮點數(shù)據(jù)類型,例如32位浮點數(shù)據(jù)類型的轉(zhuǎn)換;浮點運算模塊用于完成針對于短位數(shù)浮點數(shù)據(jù)所需的各類運算。

其中,“長位數(shù)浮點數(shù)據(jù)”表示原來的浮點數(shù)據(jù),例如32位浮點數(shù)據(jù),也可以是針對標準的64位或者16位浮點數(shù)等,這里只是以32位為具體實施例進行說明;“較少位數(shù)浮點數(shù)據(jù)”,又名“短位數(shù)浮點數(shù)據(jù)”,表示相對于原來的浮點數(shù)據(jù)來說,采用更少的位數(shù)來表示的浮點數(shù)據(jù)。

根據(jù)本發(fā)明實施例的多層人工神經(jīng)網(wǎng)絡(luò)的正向運算,包括兩層或者兩層以上的多個神經(jīng)元。對于正向運算中所需的輸入、權(quán)值、偏置等數(shù)據(jù),均采用短位數(shù)浮點數(shù)據(jù)類型表示,并用短位數(shù)浮點數(shù)據(jù)類型參與各個層之間的運算。

圖1示出了根據(jù)本發(fā)明一實施例的用于存儲數(shù)據(jù)的短位數(shù)浮點數(shù)據(jù)結(jié)構(gòu)的具體表示方法。其中,1位bit位用于表示符號,m位用于表示指數(shù)部分,n位用于表示有效位部分,由于浮點表示法要求第一位有效數(shù)字不能為0,對于二進制來說,只能為1,因此有效位的最高位1可以作為隱藏位,不寫入內(nèi)存,所以實際表示的浮點數(shù)有效位數(shù)為(n+1)位;相比于32位浮點數(shù)據(jù)表示形式,本發(fā)明采用的短位浮點數(shù)據(jù)表示形式除了占用比特位數(shù)更少外,對于神經(jīng)網(wǎng)絡(luò)中同一層、同一類型的數(shù)據(jù),如第一個卷積層的所有權(quán)值數(shù)據(jù),還另外設(shè)置了兩個標志位,其中標志位offset用于記錄指數(shù)位的初始偏移,實際指數(shù)位表示=指數(shù)位表示數(shù)據(jù)+偏移量(offset),標志位el用于記錄指數(shù)位所占用的bit數(shù)m,則有效位所占bit數(shù)n=x-1-m。

圖2示出了浮點數(shù)據(jù)統(tǒng)計模塊的示例框圖。包括數(shù)據(jù)提取單元21、統(tǒng)計單元22和分析單元23。該模塊的目的是,通過提取采用32位浮點數(shù)據(jù)類型的神經(jīng)網(wǎng)絡(luò)中的所有32位浮點數(shù)據(jù),并通過分析這些數(shù)據(jù)得到神經(jīng)網(wǎng)絡(luò)中用短位數(shù)浮點描述各個不同類型數(shù)據(jù)所需的指數(shù)位偏移(offset)及指數(shù)位長度(el),以便在之后的短位數(shù)浮點正向運算中有更好的效果。其中,數(shù)據(jù)提取單元用于提取32位浮點正向訓(xùn)練中各個不同類型的數(shù)據(jù);統(tǒng)計單元用于統(tǒng)計同一類型數(shù)據(jù)的數(shù)據(jù)范圍及各個數(shù)據(jù)段的數(shù)據(jù)分布情況;分析單元根據(jù)統(tǒng)計單元統(tǒng)計的結(jié)果,得出用短位數(shù)浮點表示各個類型數(shù)據(jù)應(yīng)當(dāng)設(shè)定的指數(shù)位長度(el)及指數(shù)位偏移(offset),指數(shù)位長度(el)的設(shè)定使得可表示的數(shù)據(jù)范圍盡可能包含該類型的所有數(shù)據(jù)。

圖3示出了正向運算模塊的短位數(shù)浮點計算部分的示例框圖。包括運算緩存單元31、數(shù)據(jù)轉(zhuǎn)換單元32、舍入單元33。其中:運算緩存單元用精度較高的數(shù)據(jù)類型存儲正向運算的中間結(jié)果,這是由于在正向運算時,加法或者乘法運算可能會導(dǎo)致數(shù)據(jù)范圍擴大;運算結(jié)束后,對超出短位數(shù)浮點精度范圍的數(shù)據(jù),進行舍入操作,接著通過數(shù)據(jù)轉(zhuǎn)換單元32將緩存區(qū)的數(shù)據(jù)轉(zhuǎn)換為短位數(shù)浮點數(shù)據(jù)。

舍入單元33可以完成對超出短位浮點精度范圍的數(shù)據(jù)進行舍入操作,該單元可以為隨機舍入單元、四舍五入單元、向上舍入單元、向下舍入單元、截斷舍入單元等,通過不同的舍入單元可以實現(xiàn)對超出短位數(shù)浮點精度范圍數(shù)據(jù)進行不同的舍入操作。

隨機舍入單元執(zhí)行如下操作:

其中,y表示隨機舍入后的短位浮點數(shù)據(jù),x表示隨機舍入前的32位浮點數(shù)據(jù),ε為當(dāng)前短位數(shù)浮點數(shù)據(jù)表示格式所能表示的最小正整數(shù),即2offset-(x-1-el),表示對原數(shù)據(jù)x直接截得短位數(shù)浮點數(shù)據(jù)所得的數(shù)(類似于對小數(shù)做向下取整操作),w.p.表示概率,即隨機舍入獲得的數(shù)據(jù)y為的概率為的概率為

四舍五入單元執(zhí)行如下操作:

其中,y表示四舍五入后的短位浮點數(shù)據(jù),x表示四舍五入前的長位浮點數(shù)據(jù),ε為當(dāng)前短位數(shù)浮點數(shù)據(jù)表示格式所能表示的最小正整數(shù),即2offset-(x-1-el),為ε的整數(shù)倍,其值為小于或等于x的最大數(shù)。

向上舍入單元執(zhí)行如下操作:

其中,y表示向上舍入后的短位浮點數(shù)據(jù),x表示向上舍入前的長位浮點數(shù)據(jù),為ε的整數(shù)倍,其值為大于或等于x的最小數(shù),ε為當(dāng)前短位數(shù)浮點數(shù)據(jù)表示格式所能表示的最小正整數(shù),即2offset-(x-1-el)

向下舍入單元執(zhí)行如下操作:

其中,y表示向上舍入后的短位浮點數(shù)據(jù),x表示向上舍入前的長位浮點數(shù)據(jù),為ε的整數(shù)倍,其值為小于或等于x的最大數(shù),ε為當(dāng)前短位數(shù)浮點數(shù)據(jù)表示格式所能表示的最小正整數(shù),即2offset-(x-1-el)。

截斷舍入單元執(zhí)行如下操作:

y=[x];

其中,y表示截斷舍入后的短位浮點數(shù)據(jù),x表示截斷舍入前的長位浮點數(shù)據(jù),[x]表示對原數(shù)據(jù)x直接截得短位數(shù)浮點數(shù)據(jù)所得的數(shù)。

本發(fā)明還公開了一種執(zhí)行人工神經(jīng)網(wǎng)絡(luò)正向運算的方法,具體實施步驟為:

通過已訓(xùn)練好的神經(jīng)網(wǎng)絡(luò)32位浮點模型獲取神經(jīng)網(wǎng)絡(luò)各個層的32位浮點模型數(shù)據(jù),包括每一層的權(quán)值、偏置、輸入輸出值及其它數(shù)據(jù)參數(shù)。

對不同層,不同類型數(shù)據(jù)單獨進行分析,獲得各類型用短位浮點類型表示所需要的各個參數(shù),包括需要多少位作為指數(shù)位,多少位作為有效位數(shù),以及指數(shù)位所需表示的范圍等。

對統(tǒng)計得到的短位浮點表示方式用于神經(jīng)網(wǎng)絡(luò)正向運算,即神經(jīng)網(wǎng)絡(luò)正向運算中所有數(shù)據(jù)用短位浮點格式表示,同時,對神經(jīng)網(wǎng)絡(luò)的權(quán)值和偏置數(shù)據(jù)保留一份32位浮點數(shù)據(jù)表示的副本,然后做正向訓(xùn)練。對于正向運算中,某些運算會導(dǎo)致數(shù)據(jù)范圍擴大,如加法、乘法等,需要用緩存空間存儲中間計算結(jié)果,中間結(jié)果用32位浮點形式存儲,計算完后再轉(zhuǎn)回相應(yīng)的短位浮點格式。32位浮點轉(zhuǎn)短位浮點過程需要用舍入方式,其中包括隨機舍入、四舍五入舍入等,分別表示如下:

隨機舍入的具體操作如下式所示:

其中,y表示隨機舍入后的短位浮點數(shù)據(jù),x表示隨機舍入前的32位浮點數(shù)據(jù),ε為當(dāng)前短位數(shù)浮點數(shù)據(jù)表示格式所能表示的最小正整數(shù),即2offset-(x-1-el)表示對原數(shù)據(jù)x直接截得短位數(shù)浮點數(shù)據(jù)所得的數(shù)(類似于對小數(shù)做向下取整操作),w.p.表示概率,即隨機舍入獲得的數(shù)據(jù)y為的概率為的概率為

四舍五入的具體操作如下式所示:

其中,y表示四舍五入后的短位浮點數(shù)據(jù),x表示四舍五入前的長位浮點數(shù)據(jù),ε為當(dāng)前短位數(shù)浮點數(shù)據(jù)表示格式所能表示的最小正整數(shù),即2offset-(x-1-el),為ε的整數(shù)倍,其值為小于或等于x的最大數(shù)。

向上舍入的具體操作如下式所示:

其中,y表示向上舍入后的短位浮點數(shù)據(jù),x表示向上舍入前的長位浮點數(shù)據(jù),為ε的整數(shù)倍,其值為大于或等于x的最小數(shù),ε為當(dāng)前短位數(shù)浮點數(shù)據(jù)表示格式所能表示的最小正整數(shù),即2offset-(x-1-el)。

向下舍入的具體操作如下式所示:

其中,y表示向上舍入后的短位浮點數(shù)據(jù),x表示向上舍入前的長位浮點數(shù)據(jù),為ε的整數(shù)倍,其值為小于或等于x的最大數(shù),ε為當(dāng)前短位數(shù)浮點數(shù)據(jù)表示格式所能表示的最小正整數(shù),即2offset-(x-1-el)。

截斷舍入的具體操作如下式所示:

y=[x];

其中,y表示截斷舍入后的短位浮點數(shù)據(jù),x表示截斷舍入前的長位浮點數(shù)據(jù),[x]表示對原數(shù)據(jù)x直接截得短位數(shù)浮點數(shù)據(jù)所得的數(shù)。

正向運算結(jié)束后,做反向運算時,需要通過短位浮點轉(zhuǎn)32位浮點數(shù)據(jù)轉(zhuǎn)換單元將正向運算中的數(shù)據(jù)轉(zhuǎn)換為32位浮點參與反向運算,其中,參與反向運算的權(quán)值和偏置數(shù)據(jù)用正向運算中保留的32位浮點數(shù)據(jù)表示的副本,反向運算結(jié)束后,在通過32位浮點轉(zhuǎn)短位浮點數(shù)據(jù)轉(zhuǎn)換單元轉(zhuǎn)為短位浮點參與之后的正向運算,同時,仍對神經(jīng)網(wǎng)絡(luò)的權(quán)值和偏置數(shù)據(jù)保留32位浮點數(shù)據(jù)表示的副本,轉(zhuǎn)換過程中需要做舍入操作,操作同正向運算中的舍入操作。

重復(fù)進行如上所述的正向及反向運算直到神經(jīng)網(wǎng)絡(luò)訓(xùn)練完成。

圖4為根據(jù)本發(fā)明一實施例的單層人工神經(jīng)網(wǎng)絡(luò)正向運算流程圖。該流程圖描述利用本發(fā)明的裝置和指令集實現(xiàn)的一種單層神經(jīng)網(wǎng)絡(luò)正向運算的過程。對于每一層來說,首先對輸入神經(jīng)元向量進行加權(quán)求和計算出本層的中間結(jié)果向量。該中間結(jié)果向量加偏置并激活得到輸出神經(jīng)元向量。將輸出神經(jīng)元向量作為下一層的輸入神經(jīng)元向量。

圖5示意性示出了根據(jù)本發(fā)明一實施例的運算流程示例框圖。其中,正向運算模塊51包含了圖3所示的短位數(shù)浮點計算模塊,正向運算得到的除權(quán)值、偏置外的參數(shù)在進行反向傳播時要先通過短位數(shù)-32位浮點轉(zhuǎn)換單元53轉(zhuǎn)換成32位浮點數(shù)進行反向傳播運算,反向運算模塊53進行的反向傳播運算結(jié)束后,需要通過32位-短位數(shù)浮點轉(zhuǎn)換單元54轉(zhuǎn)換成短位數(shù)浮點數(shù)據(jù),在轉(zhuǎn)換過程中,需對超出短位數(shù)浮點精度范圍的數(shù)據(jù)進行舍入操作,此處舍入操作由舍入單元55完成,同圖3中的舍入操作。

通過將正向運算的數(shù)據(jù)用短位數(shù)浮點表示,充分利用了短位數(shù)浮點數(shù)據(jù)格式的數(shù)據(jù)范圍空間,相對于32位浮點數(shù)據(jù)表示,極大地減少了存儲網(wǎng)絡(luò)參數(shù)所需的空間,優(yōu)化了硬件的面積功耗比。

前面的附圖中所描繪的進程或方法可通過包括硬件(例如,電路、專用邏輯等)、固件、軟件(例如,被承載在非瞬態(tài)計算機可讀介質(zhì)上的軟件),或兩者的組合的處理邏輯來執(zhí)行。雖然上文按照某些順序操作描述了進程或方法,但是,應(yīng)該理解,所描述的某些操作能以不同順序來執(zhí)行。此外,可并行地而非順序地執(zhí)行一些操作。

以上所述的具體實施例,對本發(fā)明的目的、技術(shù)方案和有益效果進行了進一步詳細說明,應(yīng)理解的是,以上所述僅為本發(fā)明的具體實施例而已,并不用于限制本發(fā)明,凡在本發(fā)明的精神和原則之內(nèi),所做的任何修改、等同替換、改進等,均應(yīng)包含在本發(fā)明的保護范圍之內(nèi)。

當(dāng)前第1頁1 2 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1