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

三值權(quán)重卷積網(wǎng)絡(luò)處理系統(tǒng)及方法與流程

文檔序號:11515426閱讀:377來源:國知局
三值權(quán)重卷積網(wǎng)絡(luò)處理系統(tǒng)及方法與流程

本發(fā)明涉及計算機(jī)技術(shù)領(lǐng)域,尤其涉及一種應(yīng)用于三值權(quán)重卷積網(wǎng)絡(luò)的處理系統(tǒng)。



背景技術(shù):

深度學(xué)習(xí)技術(shù)在近幾年得到了飛速的發(fā)展,深度神經(jīng)網(wǎng)絡(luò),尤其是卷積神經(jīng)網(wǎng)絡(luò),在圖像識別、語音識別、自然語言理解、天氣預(yù)測、基因表達(dá)、內(nèi)容推薦和智能機(jī)器人等領(lǐng)域取得了廣泛的應(yīng)用。通過深度學(xué)習(xí)獲得的深度網(wǎng)絡(luò)結(jié)構(gòu)是一種運算模型,其中包含大量數(shù)據(jù)節(jié)點,每個數(shù)據(jù)節(jié)點與其他數(shù)據(jù)節(jié)點相連,各個節(jié)點間的連接關(guān)系用權(quán)重表示。伴隨著神經(jīng)網(wǎng)絡(luò)復(fù)雜度的不斷提高,神經(jīng)網(wǎng)絡(luò)技術(shù)在實際應(yīng)用過程中存在占用資源多、運算速度慢、能量消耗大等問題。

在現(xiàn)有技術(shù)中,為解決上述問題,可以將三值權(quán)重卷積神經(jīng)網(wǎng)絡(luò)模型應(yīng)用到圖像識別、增強現(xiàn)實和虛擬現(xiàn)實等領(lǐng)域。值權(quán)重卷積神經(jīng)網(wǎng)絡(luò)通過將權(quán)重三值化(例如,采用1、0和-1表示權(quán)重和中間計算數(shù)據(jù))減少了數(shù)據(jù)位寬,極大地降低了參數(shù)容量并且提高了網(wǎng)絡(luò)模型運算速度。三值權(quán)重卷積神經(jīng)網(wǎng)絡(luò)的出現(xiàn)降低了圖像識別等復(fù)雜系統(tǒng)運行所需要的硬件配置,擴(kuò)展了卷積神經(jīng)網(wǎng)絡(luò)的應(yīng)用領(lǐng)域。

然而,目前大部分的深度學(xué)習(xí)應(yīng)用是使用中央處理器和圖形處理單元等實現(xiàn)的,這些技術(shù)能效不高,在嵌入式設(shè)備或低開銷數(shù)據(jù)中心等領(lǐng)域應(yīng)用時存在嚴(yán)重的能效問題和運算速度瓶頸,難以滿足應(yīng)用的性能要求,因此,很難將其應(yīng)用于移動電話、嵌入式電子設(shè)備等小型化輕量級設(shè)備中。



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

本發(fā)明針對三值權(quán)重卷積神經(jīng)網(wǎng)絡(luò)的網(wǎng)絡(luò)特征和計算特征,提供一種應(yīng)用于三值權(quán)重卷積網(wǎng)絡(luò)的處理系統(tǒng)及方法,以克服上述現(xiàn)有技術(shù)的缺陷。

根據(jù)本發(fā)明的第一方面,提供了一種三值權(quán)重卷積神經(jīng)網(wǎng)絡(luò)的處理系統(tǒng)。該系統(tǒng)包括:至少一個存儲單元,用于存儲數(shù)據(jù)和指令;至少一個控制單元,用于獲得保存在所述存儲單元的指令并發(fā)出控制信號;至少一個計算單元,用于從所述存儲單元獲得卷積神經(jīng)網(wǎng)絡(luò)中的一層的節(jié)點值和對應(yīng)的三值權(quán)重值數(shù)據(jù)并通過執(zhí)行加減操作獲得下一層的節(jié)點值。

在本發(fā)明的系統(tǒng)中,所述計算單元包括卷積單元和累加器,其中,所述卷積單元接收卷積神經(jīng)網(wǎng)絡(luò)中的一層的節(jié)點值和對應(yīng)的三值權(quán)重值數(shù)據(jù),所述卷積單元的輸出耦合到所述累加器。

在本發(fā)明的系統(tǒng)中,所述卷積單元包括數(shù)值取反單元、多路選擇單元和加法器,其中,輸入數(shù)據(jù)分別通過所述數(shù)值取反單元接入至所述多路選擇單元以及直接接入至所述多路選擇單元,三值權(quán)重值數(shù)據(jù)接入至所述多路選擇單元以控制所述多路選擇單元的信號選通,所述多路選擇單元的輸出接入至所述加法器。

在本發(fā)明的系統(tǒng)中,所述三值權(quán)重值為1,0和-1,其中,在卷積時去除或不予考慮數(shù)值為0的權(quán)重值。

在本發(fā)明的系統(tǒng)中,所述三值權(quán)重值進(jìn)一步重映射為函數(shù)r(z):

其中,z表示輸入操作數(shù),r(z)表示映射結(jié)果。

在本發(fā)明的系統(tǒng)中,在卷積時去除或不予考慮數(shù)值為0的權(quán)重值包括:針對數(shù)值為1或-1的權(quán)重值,設(shè)置與其相關(guān)聯(lián)的步進(jìn)值,該步進(jìn)值用于指示當(dāng)前權(quán)重值與下一個數(shù)值為1或-1的權(quán)重值之間的距離。

根據(jù)本發(fā)明的第二方面,提供了一種三值權(quán)重卷積神經(jīng)網(wǎng)絡(luò)的處理方法。該方法包括:獲得卷積神經(jīng)網(wǎng)絡(luò)中的一層的節(jié)點值和對應(yīng)的三值權(quán)重值數(shù)據(jù);通過執(zhí)行加減操作進(jìn)行卷積來獲得下一層的節(jié)點值。

在本發(fā)明的方法中,所述三值權(quán)重值為1,0和-1,其中,在卷積時去除或不予考慮數(shù)值為0的權(quán)重值。

在本發(fā)明的方法中,通過執(zhí)行加減操作進(jìn)行卷積來獲得下一層的節(jié)點值包括:當(dāng)權(quán)重值為1時,將原始輸入數(shù)據(jù)傳送到加法器;以及當(dāng)權(quán)重值為-1時,將經(jīng)過數(shù)值取反后的輸入數(shù)據(jù)傳送到加法器。

在本發(fā)明的方法中,在卷積時去除或不予考慮數(shù)值為0的權(quán)重值包括:針對數(shù)值為1或-1的權(quán)重值,設(shè)置與其相關(guān)聯(lián)的步進(jìn)值,該步進(jìn)值用于指示當(dāng)前權(quán)重值與下一個數(shù)值為1或-1的權(quán)重值之間的距離。

與現(xiàn)有技術(shù)相比,本發(fā)明的優(yōu)點在于:本發(fā)明的處理系統(tǒng)和方法在三值權(quán)重神經(jīng)網(wǎng)絡(luò)計算過程中采用異或非操作來代替?zhèn)鹘y(tǒng)卷積神經(jīng)網(wǎng)絡(luò)中的乘法和加法操作,提供了運算速度和能效,減少了硬件開銷并提高了數(shù)據(jù)利用率。

附圖說明

以下附圖僅對本發(fā)明作示意性的說明和解釋,并不用于限定本發(fā)明的范圍,其中:

圖1示出了根據(jù)本發(fā)明一個實施例的三值權(quán)重神經(jīng)網(wǎng)絡(luò)的模型示意圖;

圖2示出了根據(jù)本發(fā)明一個實施例的三值權(quán)重神經(jīng)網(wǎng)絡(luò)處理系統(tǒng)的結(jié)構(gòu)框圖;

圖3示出了根據(jù)本發(fā)明另一實施例的三值權(quán)重神經(jīng)網(wǎng)絡(luò)處理系統(tǒng)的結(jié)構(gòu)框圖;

圖4示出了根據(jù)本發(fā)明的一個實施例的三值權(quán)重神經(jīng)網(wǎng)絡(luò)處理系統(tǒng)中計算單元的結(jié)構(gòu)框圖;

圖5示出了根據(jù)本發(fā)明一個實施例的三值權(quán)重神經(jīng)網(wǎng)絡(luò)的處理系統(tǒng)中的卷積單元的示意圖;

圖6示出了根據(jù)本發(fā)明的一個實施例的權(quán)重壓縮方式的示意圖;

圖7示出了根據(jù)本發(fā)明另一實施例的權(quán)重壓縮方式的示意圖;

圖8示出了基于本發(fā)明的一個實施例的進(jìn)行卷積操作的過程示意圖。

具體實施方式

為了使本發(fā)明的目的、技術(shù)方案、設(shè)計方法及優(yōu)點更加清楚明了,以下結(jié)合附圖通過具體實施例對本發(fā)明進(jìn)一步詳細(xì)說明。應(yīng)當(dāng)理解,此處所描述的具體實施例僅用以解釋本發(fā)明,并不用于限定本發(fā)明。

神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)包括輸入層、多個隱藏層和輸出層,在三值權(quán)重卷積神經(jīng)網(wǎng)絡(luò)中,多層結(jié)構(gòu)的第一層輸入值為原始圖像(在本發(fā)明中的“原始圖像”指的是待處理的原始數(shù)據(jù),不僅僅是狹義的通過拍攝照片獲得的圖像),因此在第一層(輸入層)計算時需要采用正常位寬來進(jìn)行計算,其余層可以采用三值計算方式,通過對該層的節(jié)點的值和其對應(yīng)的權(quán)重進(jìn)行三值運算來得到下一層的節(jié)點。對于三值權(quán)重神經(jīng)網(wǎng)絡(luò)是指每層節(jié)點對應(yīng)的權(quán)重是三值數(shù)據(jù),例如,-1、1和0表示權(quán)重。

圖1示出三值神經(jīng)網(wǎng)絡(luò)模型的示意圖。如圖1所示,假設(shè)表示神經(jīng)網(wǎng)絡(luò)中某一層的幾個節(jié)點,它們與下一層的節(jié)點y相連。表示對應(yīng)連接的權(quán)重,因為所有的權(quán)重都是三值數(shù)據(jù),可以用1、0和-1表示三值的三個取值。通過函數(shù)f來計算y的取值,則可以定義運算:y=x×w。因此,針對各層的運算存在大量的乘加操作。

本發(fā)明旨在提供一種面向三值權(quán)重神經(jīng)網(wǎng)絡(luò)的處理系統(tǒng)或稱作處理器,該系統(tǒng)在三值權(quán)重神經(jīng)網(wǎng)絡(luò)計算過程中采用基本的加減操作來代替?zhèn)鹘y(tǒng)卷積神經(jīng)網(wǎng)絡(luò)中的乘加操作,能夠提升神經(jīng)網(wǎng)絡(luò)的運算速度及能效。

在本發(fā)明提供的基于三值權(quán)重神經(jīng)網(wǎng)絡(luò)處理系統(tǒng)中,為了減少存儲空間并提高運算效率,可將權(quán)重數(shù)據(jù)進(jìn)一步縮減。具體過程如下:

在傳統(tǒng)卷積神經(jīng)網(wǎng)絡(luò)計算過程中,輸入圖形數(shù)據(jù)與卷積核進(jìn)行乘加運算完成卷積操作。在三值權(quán)重神經(jīng)網(wǎng)絡(luò)中,權(quán)重數(shù)據(jù)采用邏輯值1、-1和0三個數(shù)值表示,各層的節(jié)點值采用正常位寬(例如,8位、16位等)表示。

在三值神經(jīng)網(wǎng)絡(luò)中,可采用兩比特二進(jìn)制數(shù)描述被三值化的權(quán)重數(shù)據(jù),其中高位為符號位,低位為數(shù)據(jù)位,-1采用其對應(yīng)的二進(jìn)制補碼為11表示,1采用其對應(yīng)的二進(jìn)制原碼01表示,0采用其對應(yīng)的二進(jìn)制原碼00表示。

在另一個實施例中,為了提高神經(jīng)網(wǎng)絡(luò)運算速率,進(jìn)一步減少參加運算的權(quán)重數(shù)量。本發(fā)明還提供一種適用于三值權(quán)重神經(jīng)網(wǎng)絡(luò)的權(quán)重壓縮方法,該權(quán)重壓縮方法對權(quán)重數(shù)據(jù)進(jìn)行重編碼,僅保留數(shù)值為1和-1的權(quán)重值,將數(shù)值為0的權(quán)重值去除或不予考慮,進(jìn)而實現(xiàn)權(quán)重壓縮。

在一個實施例中,為了進(jìn)一步減少存儲空間并提高運算效率,將上述權(quán)重數(shù)據(jù)進(jìn)行重映射,重映射函數(shù)r(z)為:

式(1)表達(dá)的操作可理解為,當(dāng)輸入操作數(shù)z等于1時,所述操作數(shù)保持?jǐn)?shù)值1不變;當(dāng)操作數(shù)z為-1時,操作數(shù)被映射為數(shù)值0。

通過這種方式,在本發(fā)明中,采用數(shù)值0代表三值權(quán)重神經(jīng)網(wǎng)絡(luò)中數(shù)值為-1的權(quán)重值,采用數(shù)值1代表三值權(quán)重神經(jīng)網(wǎng)絡(luò)中數(shù)值為1的權(quán)重值,而數(shù)值為0的權(quán)重值被去除或不予考慮。載入至權(quán)重神經(jīng)網(wǎng)絡(luò)處理器的權(quán)重值需要在片外或處理系統(tǒng)外進(jìn)行預(yù)處理,所述預(yù)處理包括根據(jù)函數(shù)r(z)進(jìn)行重映射。

圖2示出了根據(jù)本發(fā)明一個實施例的應(yīng)用于三值權(quán)重神經(jīng)網(wǎng)絡(luò)的處理系統(tǒng)的框圖。

概括而言,本發(fā)明提供的神經(jīng)網(wǎng)絡(luò)處理系統(tǒng)基于存儲-控制-計算的結(jié)構(gòu)。存儲結(jié)構(gòu)用于存儲參與計算的數(shù)據(jù)、神經(jīng)網(wǎng)絡(luò)權(quán)重及處理器操作指令;控制結(jié)構(gòu)包括譯碼電路與控制邏輯電路,用于解析操作指令,生成控制信號,該信號用于控制片上數(shù)據(jù)的調(diào)度與存儲以及神經(jīng)網(wǎng)絡(luò)計算過程;計算結(jié)構(gòu)包括計算單元,用于參與該處理器中的神經(jīng)網(wǎng)絡(luò)計算操作,其中應(yīng)包括數(shù)據(jù)檢索結(jié)構(gòu),保證被壓縮的數(shù)據(jù)在計算單元中能夠正確地與相應(yīng)權(quán)重進(jìn)行計算。

具體地,參見圖2所示,本發(fā)明提供了面向三值權(quán)重神經(jīng)網(wǎng)絡(luò)的處理系統(tǒng)200,包括至少一個存儲單元210、至少一個控制單元220和至少一個計算單元230??刂茊卧?20與存儲單元210、計算單元230連接。計算單元230和存儲單元210連接,用于從存儲單元210讀取或輸出數(shù)據(jù)。存儲單元210、控制單元220和計算單元230之間的數(shù)據(jù)通路包括h-tree或fat-tree等互聯(lián)技術(shù)。

存儲單元210用于存儲神經(jīng)網(wǎng)絡(luò)處理系統(tǒng)外部傳來的數(shù)據(jù)(例如,原始特征圖數(shù)據(jù))或用于存儲處理過程中產(chǎn)生的數(shù)據(jù),包括處理過程中產(chǎn)生的處理結(jié)果或中間結(jié)果,這些結(jié)果可以來自于神經(jīng)網(wǎng)絡(luò)處理系統(tǒng)的核心運算部件或其他運算部件。此外,存儲單元還可用于存儲參與計算的指令信息(例如,將數(shù)據(jù)載入存儲單元、計算開始、計算結(jié)束等)。存儲單元可以是靜態(tài)隨機(jī)存儲器(sram)、動態(tài)隨機(jī)存儲器(dram)、寄存器堆等常見存儲介質(zhì),也可以是3d存儲器件等新型的存儲器類型。

控制單元220用于獲取保存在存儲單元的指令并進(jìn)行解析,進(jìn)而根據(jù)解析指令得到的控制信號來控制計算單元230進(jìn)行神經(jīng)網(wǎng)絡(luò)的相關(guān)運算。控制單元220可以通過硬件電路實現(xiàn),例如包括但不限于fpga、專用集成電路asic等。

計算單元230用于根據(jù)從控制單元220獲得的控制信號來執(zhí)行相應(yīng)的神經(jīng)網(wǎng)絡(luò)計算,計算單元230與存儲單元210相連,以獲得數(shù)據(jù)進(jìn)行計算并可將計算結(jié)果寫入到存儲單元210。計算單元230可完成神經(jīng)網(wǎng)絡(luò)中的大部分計算,如,卷積操作、池化操作等。池化操作通常在卷積操作之后進(jìn)行,其作用為降低卷積層特征向量。通常包括平均值池化和最大值池化兩類。平均值池化的方法為計算圖層內(nèi)所有元素的平均值作為輸出結(jié)果,最大值池化的方法為計算圖層內(nèi)所有元素的最大值最為輸出結(jié)果。通過池化操作可以改善圖層出現(xiàn)過擬合現(xiàn)象。

本領(lǐng)域的技術(shù)人員應(yīng)理解的是,盡管圖2中未示出,該處理系統(tǒng)還包括地址尋址功能,用于根據(jù)輸入的索引映射到正確的存儲地址,以從存儲單元中獲得需要的數(shù)據(jù)或指令,地址尋址功能可以實現(xiàn)在控制單元中或以獨立單元的形式實現(xiàn)。

圖3是根據(jù)本發(fā)明另一實施例的神經(jīng)網(wǎng)絡(luò)處理系統(tǒng)的結(jié)構(gòu)框圖。其與圖2的神經(jīng)網(wǎng)絡(luò)處理系統(tǒng)的區(qū)別是:在圖3(其中未示出各單元的連接關(guān)系)的神經(jīng)網(wǎng)絡(luò)處理系統(tǒng)300中,根據(jù)存儲數(shù)據(jù)的類型不同,劃分成多個存儲單元,即輸入數(shù)據(jù)存儲單元311、權(quán)重存儲單元312、指令存儲單元313和輸出數(shù)據(jù)存儲單元314;計算單元包括多個可以并行處理的子計算單元1至n,以及用于尋址數(shù)據(jù)的檢索單元。

輸入數(shù)據(jù)存儲單元311用于存儲參與計算的數(shù)據(jù),該數(shù)據(jù)包括原始特征圖數(shù)據(jù)和參與中間層計算的數(shù)據(jù);權(quán)重存儲單元312用于存儲已經(jīng)訓(xùn)練好的神經(jīng)網(wǎng)絡(luò)權(quán)重;指令存儲單元313用于存儲參與計算的指令信息,指令可被控制單元320解析為控制流來調(diào)度神經(jīng)網(wǎng)絡(luò)的計算;輸出數(shù)據(jù)存儲單元314用于存儲計算得到的神經(jīng)元響應(yīng)值。通過將存儲單元進(jìn)行細(xì)分,可將數(shù)據(jù)類型基本一致的數(shù)據(jù)集中存儲,以便于選擇合適的存儲介質(zhì)并可以簡化數(shù)據(jù)尋址等操作。

此外,通過采用多個并行的計算單元,可以提供神經(jīng)網(wǎng)絡(luò)的計算速度。

本發(fā)明提供的面向三值權(quán)重神經(jīng)網(wǎng)絡(luò)的處理系統(tǒng)通過特有架構(gòu)及電路設(shè)計,可以滿足三值權(quán)重神經(jīng)網(wǎng)絡(luò)的網(wǎng)絡(luò)特征及計算特性,實現(xiàn)了對三值權(quán)重神經(jīng)網(wǎng)絡(luò)的運算加速。

圖4示出了圖2和圖3中的計算單元的結(jié)構(gòu)框圖。參見圖4所示,計算單元由卷積單元、加法單元(或加法器)、累加器單元、中間層緩沖單元、池化及批量歸一化單元等運算部件組成。應(yīng)注意的是,在本文中,所述的卷積單元指的是通過加法操作來完成卷積的結(jié)果。

卷積單元可由原碼-補碼轉(zhuǎn)換單元、多路選擇器和加法器等單元組成,用于完成圖層數(shù)據(jù)與權(quán)重的卷積操作,輸出結(jié)果作為加法單元的輸入數(shù)據(jù)。

累加器由加法器單元組成,用于保存和累加加法單元的部分?jǐn)?shù)據(jù)和結(jié)果。

中間層緩沖單元由存儲器組成,用于存儲單個卷積核完成卷積操作后的結(jié)果。

池化及批量歸一化單元對卷積輸出層進(jìn)行池化操作。

在本發(fā)明的實施例中,可采用或門實現(xiàn)加法單元,或門的輸入為來自卷積單元的輸出結(jié)果,輸出值為單比特值,采用或門實現(xiàn)加法單元可以簡化運算、增加運算效率。在另一實施例中,可以采用漢明重量計算單元來實現(xiàn)加法單元。漢明重量計算單元的輸入為卷積單元的輸出結(jié)果,輸出值為輸入數(shù)據(jù)中邏輯1的數(shù)量,即漢明重量。采用漢明重量計算單元實現(xiàn)加法單元能夠精確實現(xiàn)求和操作。

本發(fā)明提供的適用于三值權(quán)重神經(jīng)網(wǎng)絡(luò)的卷積單元,如圖5所示。卷積單元由數(shù)值取反單元、多路選擇單元和加法器單元組成。輸入數(shù)據(jù)(例如,卷積神經(jīng)網(wǎng)絡(luò)中的一層的節(jié)點值)分別接入到數(shù)值取反單元以及多路選擇單元的一個輸入,數(shù)值取反單元接入至多路選擇單元的另一個輸入,權(quán)重數(shù)據(jù)接入至多路選擇單元中作為信號選通單元,多路選擇單元的輸出結(jié)果接入至加法器單元中,加法器單元的輸出結(jié)果作為卷積單元的輸出結(jié)果。通過本發(fā)明提供的適用于三值權(quán)重神經(jīng)網(wǎng)絡(luò)的權(quán)重壓縮方法,僅保留了數(shù)值為1和-1的權(quán)重值,并將數(shù)值為0的權(quán)重值去除或不予考慮,從而使得圖5所示的卷積單元能夠用于高效地實現(xiàn)三值權(quán)重卷積網(wǎng)絡(luò)處理,其中,當(dāng)作為信號選通單元的權(quán)重數(shù)據(jù)為1時,多路選擇單元選擇原始輸入數(shù)據(jù),當(dāng)作為信號選通單元的權(quán)重數(shù)據(jù)為-1時,多路選擇單元選擇經(jīng)過數(shù)值取反后的輸入數(shù)據(jù)。

數(shù)值取反單元用于將輸入數(shù)值(例如,輸入的卷積網(wǎng)絡(luò)各層的節(jié)點值)做取反操作。在本發(fā)明提供的應(yīng)用于三值權(quán)重卷積神經(jīng)網(wǎng)絡(luò)處理中,正數(shù)采用原碼表示,負(fù)數(shù)采用補碼表示,數(shù)值取反單元可將輸入數(shù)據(jù)做數(shù)值取反處理。例如,對于具有符號位的二進(jìn)制正數(shù)0101(+5),輸入至數(shù)值取反單元后輸出的二進(jìn)制補碼為1011(-5);對于采用補碼表示的具有符號位的二進(jìn)制負(fù)數(shù)1010(-6),輸入至數(shù)值取反單元后輸出的二進(jìn)制數(shù)為0110(+6)。

在卷積單元中原始輸入數(shù)據(jù)和數(shù)值取反后的輸入數(shù)據(jù)接入至多路選擇器中,當(dāng)權(quán)重值為-1時,多路選擇器輸出經(jīng)過數(shù)值取反后的輸入數(shù)據(jù),當(dāng)權(quán)重值為1時,多路選擇器輸出原始輸入數(shù)據(jù)。加法器單元用于完成卷積運算中加法操作。

參見圖6所示,該權(quán)重壓縮方法采用步進(jìn)壓縮的方式,提供一種權(quán)重壓縮格式,權(quán)重壓縮格式包括<權(quán)重,步進(jìn)值>兩部分組成。權(quán)重值是指通過訓(xùn)練得到的權(quán)重值,在三值卷積神經(jīng)網(wǎng)絡(luò)中,步進(jìn)值代表從當(dāng)前權(quán)重值開始,相隔指定步進(jìn)值后得到下一個權(quán)重值的有效位置。權(quán)重采用m比特數(shù)據(jù)表示,低n位為權(quán)重原始值,即訓(xùn)練得到的權(quán)重數(shù)據(jù);其余位數(shù)(m-n)代表步進(jìn)值。在本發(fā)明中,權(quán)重值只有1、-1和0三個數(shù)值,采用本發(fā)明提供的權(quán)重壓縮及重映射方法后,權(quán)重值可采用單比特表示,即n為1;權(quán)重值壓縮格式位寬m可根據(jù)用戶需要、處理系統(tǒng)架構(gòu)及所需的步進(jìn)長度來選定。

具體而言,在圖6所示的權(quán)重壓縮方法的實施例中,壓縮后的位寬為5比特,其中權(quán)重值位寬為1比特,步進(jìn)值位寬為4比特。對于未壓縮的權(quán)重原始值,每個權(quán)重數(shù)據(jù)采用兩比特二進(jìn)制數(shù)表示,第一個非零權(quán)重值為1(實際值1),第二個非零權(quán)重值為1(實際值1)與第一個非零權(quán)重值1(實際值1)相隔四個數(shù)值為零的數(shù)據(jù),因此,步進(jìn)值為4,第一個非零權(quán)重值壓縮后采用二進(jìn)制數(shù)10100表示。第三個非零權(quán)重值0(實際值-1)與第二個非零權(quán)重值1(實際值1)之間相隔九個數(shù)值為零的數(shù)據(jù),因此,步進(jìn)值為9,第二個非零權(quán)重值1(實際值1)壓縮后采用二進(jìn)制數(shù)11001表示。第四個非零權(quán)重值1(實際值1)與第三個非零權(quán)重值0(實際值-1)之間相隔八個數(shù)值為零的數(shù)據(jù),因此,步進(jìn)值為8,第三個非零權(quán)重值0(實際值-1)壓縮后采用二進(jìn)制數(shù)00111表示。

圖7示出了根據(jù)本發(fā)明又一實施例的壓縮方式,其將權(quán)重進(jìn)行分組,每組內(nèi)的權(quán)重元素數(shù)由計算單元規(guī)模和調(diào)度方式?jīng)Q定。以每組權(quán)重包含四個元素為例來詳細(xì)描述權(quán)重壓縮過程,在第一組權(quán)重中,數(shù)值為1和-1的元素分別為第0個和第1個元素,在重新編碼后,該組權(quán)重保留了兩個非零元素,標(biāo)示元素位置的偏移量分別為0和1;在第二組的原始權(quán)重數(shù)據(jù)中包含三個非零元素,分別為第0個、第2個和第3個元素,因此偏移量分別為0、2和3;在第三組權(quán)重值中,包含1和-1兩個非零元素,偏移量分別為2和3。在本實施例中,在計算單元前加入解壓單元,以保證對應(yīng)權(quán)重元素和數(shù)據(jù)進(jìn)行乘加操作。應(yīng)當(dāng)理解,可采用的壓縮方法包括但不局限于本發(fā)明實施例中提供的壓縮方法,壓縮及計算效率也會由于不同數(shù)據(jù)結(jié)構(gòu)和電路結(jié)構(gòu)而變化。

在本發(fā)明提供的三值卷積神經(jīng)網(wǎng)絡(luò)處理系統(tǒng)中,數(shù)值為零的權(quán)重數(shù)據(jù)在片外通過離線方式進(jìn)行壓縮,不參與卷積運算;數(shù)值為1和-1的權(quán)重數(shù)據(jù)在參與卷積運算時可以通過基本的加法和減法等基本邏輯完成,不需要較為復(fù)雜的乘法運算。

本發(fā)明提供的三值卷積神經(jīng)網(wǎng)絡(luò)處理器進(jìn)行卷積操作的過程如圖8所示。采用本發(fā)明所述權(quán)重壓縮格式存儲的權(quán)重存儲在權(quán)重存儲單元,數(shù)據(jù)存儲在數(shù)據(jù)存儲單元中。權(quán)重值依次序載入至計算單元中,檢索單元根據(jù)權(quán)重壓縮格式中的步進(jìn)值在數(shù)據(jù)存儲單元中檢索與權(quán)重相對應(yīng)的數(shù)據(jù),并將其載入至計算單元中。在圖8中,第一個權(quán)重值1與數(shù)據(jù)n0載入至計算單元中進(jìn)行卷積運算;該第一個權(quán)重值1的步進(jìn)值為1,因此檢索單元檢索數(shù)據(jù)n0之后的第一個數(shù)據(jù)n1,并將n1和權(quán)重存儲單元中的第二數(shù)據(jù)一起載入至計算單元中;權(quán)重存儲單元中第二個權(quán)重值-1的步進(jìn)值為3,因此,檢索單元檢索數(shù)據(jù)n1之后的第三個數(shù)據(jù)n4,并將n4和權(quán)重存儲單元中第三個數(shù)據(jù)1一起載入至計算單元中。

本發(fā)明的卷積神經(jīng)網(wǎng)絡(luò)處理系統(tǒng)可應(yīng)用了各種電子設(shè)備,例如、移動電話、嵌入式電子設(shè)備等。

綜上所述,基于本發(fā)明的系統(tǒng)可以實現(xiàn)面向三值卷積網(wǎng)絡(luò)的處理器或芯片,通過將數(shù)據(jù)位寬降低為單比特,減少了存儲電路的開銷,降低了計算復(fù)雜度,此外,也降低的片上數(shù)據(jù)傳輸帶寬。與采用普通位寬的神經(jīng)網(wǎng)絡(luò)相比,本發(fā)明提供的處理系統(tǒng)可以在不損失過多計算精度的情況下,有效降低芯片功耗和電路面積。

以上已經(jīng)描述了本發(fā)明的各實施例,上述說明是示例性的,并非窮盡性的,并且也不限于所披露的各實施例。在不偏離所說明的各實施例的范圍和精神的情況下,對于本技術(shù)領(lǐng)域的普通技術(shù)人員來說許多修改和變更都是顯而易見的。本文中所用術(shù)語的選擇,旨在最好地解釋各實施例的原理、實際應(yīng)用或?qū)κ袌鲋械募夹g(shù)改進(jìn),或者使本技術(shù)領(lǐng)域的其它普通技術(shù)人員能理解本文披露的各實施例。

當(dāng)前第1頁1 2 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
屏东市| 巴中市| 云安县| 焉耆| 巴南区| 体育| 嘉峪关市| 仙居县| 吴桥县| 辰溪县| 定安县| 讷河市| 盐津县| 东丰县| 娄底市| 蒙城县| 元阳县| 广河县| 长兴县| 共和县| 泸西县| 西和县| 克拉玛依市| 葫芦岛市| 革吉县| 隆德县| 越西县| 漳平市| 伊金霍洛旗| 碌曲县| 安岳县| 浦东新区| 天等县| 布拖县| 安宁市| 安国市| 沾化县| 固阳县| 壤塘县| 泰顺县| 鹤壁市|