新四季網

一種神經網絡優化方法及裝置與流程

2023-05-30 08:02:51 2


本發明涉及計算機視覺領域,特別涉及一種神經網絡優化方法及裝置。



背景技術:

近幾年來,深度神經網絡在計算機視覺領域的各類應用中取得了巨大的成功,如圖像分類、目標檢測、圖像分割等。但深度神經網絡的模型往往包含大量的模型參數,計算量大、處理速度慢,無法在一些低功耗、低計算能力的設備(如嵌入式設備、集成設備等)上進行實時計算。



技術實現要素:

鑑於上述問題,本發明提供一種神經網絡優化方法及裝置,以解決現有技術神經網絡處理速度慢、實時性差的問題。。

本發明實施例,一方面提供一種神經網絡優化方法,該方法包括:

對全連接層的輸入數據進行二值化和位打包操作得到包含多個數據元素的輸入數據序列;

將所述全連接層的網絡權重進行轉置,對轉置後的每一行權重進行二值化和位打包操作得到包含多個權重元素的權重序列;

將輸入數據序列中的數據元素分別與各行權重序列的權重元素進行內積運算,得到輸入數據序列與各行權重序列的內積結果;

根據輸入數據序列與各行權重序列的內積結果得到所述全連接層的輸出結果。

本發明實施例,另一方面提供一種神經網絡優化裝置,該裝置包括:

數據處理單元,用於對全連接層的輸入數據進行二值化和位打包操作得到包含多個數據元素的輸入數據序列;

權重處理單元,用於將所述全連接層的網絡權重進行轉置,對轉置後的每一行權重進行二值化和位打包操作得到包含多個權重元素的權重序列;

內積運算單元,用於將輸入數據序列中的數據元素分別與各行權重序列的權重元素進行內積運算,得到輸入數據序列與各行權重序列的內積結果;

結果輸出單元,用於根據輸入數據序列與各行權重序列的內積結果得到所述全連接層的輸出結果。

本發明技術方案,一方面,將神經網絡的全連接層的輸入數據和網絡權重進行二值化和位打包操作得到輸入數據序列和權重序列,不僅對輸入數據和網絡權重進行數據壓縮使得參與運算的數據量大大減少,而且輸入數據與網絡權重的運算由現有技術的浮點數與浮點數相乘變成了無符號整數與無符號整數之間的按位操作,提高了運算速度;另一方面,對網絡權重進行轉置之後的每一行權重處理成一行權重序列,從而使得輸入數據序列可以直接按行與網絡權重的每一行權重序列依次進行內積運算,從而加快矩陣乘法的數據讀取速度,從而進一步提高內積運算速度。

附圖說明

附圖用來提供對本發明的進一步理解,並且構成說明書的一部分,與本發明的實施例一起用於解釋本發明,並不構成對本發明的限制。

圖1為本發明實施例神經網絡優化方法的流程圖;

圖2為本發明實施例中全連接層的輸入數據和其對應的輸入數據序列的示意圖;

圖3a為本發明實施例中全連接層的網絡權重的示意圖;

圖3b為本發明實施例中轉置後的網絡權重的示意圖;

圖3c為本發明實施例中經過二值化處理和位打包操作之後的網絡權重;

圖4為本發明實施例中神經網絡優化裝置的結構示意圖。

具體實施方式

為了使本技術領域的人員更好地理解本發明中的技術方案,下面將結合本發明實施例中的附圖,對本發明實施例中的技術方案進行清楚、完整地描述,顯然,所描述的實施例僅僅是本發明一部分實施例,而不是全部的實施例。基於本發明中的實施例,本領域普通技術人員在沒有做出創造性勞動前提下所獲得的所有其他實施例,都應當屬於本發明保護的範圍。

實施例一

參見圖1,為本發明實施例提供的神經網絡優化方法的流程圖,該方法包括:

步驟101、對全連接層的輸入數據進行二值化和位打包操作得到包含多個數據元素的輸入數據序列。

步驟102、將所述全連接層的網絡權重進行轉置,對轉置後的每一行權重進行二值化和位打包操作得到包含多個權重元素的權重序列。

步驟103、將輸入數據序列中的數據元素分別與各行權重序列的權重元素進行內積運算,得到輸入數據序列與各行權重序列的內積結果。

步驟104、根據輸入數據序列與各行權重序列的內積結果得到所述全連接層的輸出結果。

優選地,本發明實施例中,前述步驟101,具體可通過以下步驟a1~步驟a2實現:

步驟a1、對輸入數據進行二值化處理得到二值化輸入數據;

步驟a2、從二值化輸入數據的第一個數據開始,將每m個連續數據打包成一個數據元素得到包含多個數據元素的輸入數據序列,m為32的整數倍。

m的取值可以為32、64、128、256等等,本申請不作嚴格限定。

如圖2所示為全連接層的輸入數據、以及該輸入數據對應的輸入數據序列的示意圖,輸入數據的長度為n,輸入數據序列的長度為n/m。

優選地,前述步驟102中,對轉置後的每一行權重進行二值化和位打包操作得到包含多個權重元素的權重序列,具體可通過以下步驟b1~步驟b2實現:

步驟b1、對一行權重進行二值化處理得到一行二值化權重;

步驟b2、從該行二值化權重的第一個權重開始,將每m個連續權重打包成一個權重元素得到包含多個權重元素的權重序列。

如圖3a所示為全連接層的網絡權重示意圖,網絡權重包含n行和h列,圖3b為轉置後的網絡權重示意圖,圖3c為經過二值化處理和位打包操作之後的網絡權重。

優選地,前述步驟103具體可通過以下步驟c1~步驟c2實現:

步驟c1、將每一行權重序列的每個權重元素與相應數據元素進行包含一次異或操作和bit-count操作的內積運算,以得到每個權重元素與相應數據元素的內積結果。

步驟c2、根據一行權重序列的各權重元素與相應元素的內積結果,得到輸入數據序列與該行權重序列的內積結果。

根據以下公式(1)計算得到輸入數據序列與一行權重序列的內積結果:

式(1)中,x·wi為輸入數據序列與第i行權重序列的內積結果,x為輸入數據序列,wi為第i行權重序列,n為輸入數據的數量,xj為輸入數據序列中第j個數據元素,wij為第i行權重序列中第j個權重元素。

在電腦程式代碼中,針對輸入數據序列與一行權重序列,需要進行n/m次乘法和累加運算,若採用循環語句則需要判斷n/m次,循環開銷較大。

優選地,為節省循環開銷,本發明實施例中,針對輸入數據序列與一行權重序列,為每一對需要進行卷積運算的數據元素和權重元素配置一個內積運算執行指令,即設置n/m個內積運算執行指令,直接根據該n/m個內積運算執行指令分別對n/m對數據元素和權重元素進行內積運算,無需進行循環判斷,節省循環開銷。因此,在前述步驟103中還包括以下步驟:

步驟c0、為每行權重序列的每個權重元素配置相應的一個內積運算執行指令;

此時,前述步驟c1具體實現如下:按照權重元素在一行權重序列中的先後順序,根據權重元素對應的內積運算執行指令對該權重元素與相應數據元素進行包含一次異或操作和bit-count操作的內積運算。

神經網絡的全連接層的w維一般是256的整數倍(例如alexnet第一個全連接層中w=4096,vggnet第一個全連接層中w=25088),avx提供的256位長度指令集可進一步加速二值化向量與矩陣的乘法,因此,本發明實施例,可將輸入數據和一行權重進行256位打包操作,即每256個連續的數據打包成一個avx支持的256位長度整型數據,用_mm256_xor_si256指令對兩個256位長度整型數據進行按位異或操作,再通過4次_mm_popcnt_u64指令累加得到上一步運算結果中1的總個數。

優選地,為進一步提高輸入數據序列與各行權重序列的內積運算速度,本發明實施例,將各行權重序列與輸入數據序列的內積運算分布到cpu(centralprocessingunit,中央處理器)的多個核上進行並行處理,由cpu的各個核對分配到該核上的輸入數據序列和行權重序列進行前述內積運算,並輸出內積運算的內積結果。例如,假設行權重序列總共為h個,cpu包含k個核,可以是直接將該h個行權重序列平均分配到k個核上,由該k個核分別依次對其分配得到的h/k個行權重序列與輸入數據序列進行內積運算;還可以是根據該k個核的負載量分配相應比例數量的行權重序列。本申請不做嚴格限定。

實施例二

基於前述實施例一提供的神經網絡優化方法的相同構思,本發明實施例二提供一種神經網絡優化裝置,該裝置的結構如圖4所示,包括:

數據處理單元41,用於對全連接層的輸入數據進行二值化和位打包操作得到包含多個數據元素的輸入數據序列;

權重處理單元42,用於將所述全連接層的網絡權重進行轉置,對轉置後的每一行權重進行二值化和位打包操作得到包含多個權重元素的權重序列;

內積運算單元43,用於將輸入數據序列中的數據元素分別與各行權重序列的權重元素進行內積運算,得到輸入數據序列與各行權重序列的內積結果;

結果輸出單元44,用於根據輸入數據序列與各行權重序列的內積結果得到所述全連接層的輸出結果。

優選地,所述內積運算單元43包括:

內積運算模塊,用於將每一行權重序列的每個權重元素與相應數據元素進行包含一次異或操作和bit-count操作的內積運算,以得到每個權重元素與相應數據元素的內積結果;

確定模塊,用於根據一行權重序列的各權重元素與相應元素的內積結果,得到輸入數據序列與該行權重序列的內積結果。

具體可根據前述公式(1)計算得到輸入數據序列與一行權重序列的內積結果,在此不再贅述。

優選地,為進一步節省循環開銷,所述內積運算單元43還進一步包括:

指令生成模塊,用於為每行權重序列的每個權重元素配置相應的一個內積運算執行指令;

內積運算模塊具體用於:按照權重元素在一行權重序列中的先後順序,根據權重元素對應的內積運算執行指令對該權重元素與相應數據元素進行包含一次異或操作和bit-count操作的內積運算。

優選地,所述內積運算單元43,具體用於:將各行權重序列與輸入數據序列的內積運算,分布到cpu的多個核上進行並行處理,從所述多個核中得到輸入數據序列與各行權重序列的內積結果。

優選地,所述數據處理單元41具體用於:對輸入數據進行二值化處理得到二值化輸入數據;從二值化輸入數據的第一個數據開始,將每m個連續數據打包成一個數據元素得到包含多個數據元素的輸入數據序列,所述m為32的整數倍。

優選地,所述權重處理單元42對轉置後的每一行權重進行二值化和位打包操作得到包含多個權重元素的權重序列,具體包括:對一行權重進行二值化處理得到一行二值化權重;從該行二值化權重的第一個權重開始,將每m個連續權重打包成一個權重元素得到包含多個權重元素的權重序列。

本發明技術方案,一方面,將神經網絡的全連接層的輸入數據和網絡權重進行二值化和位打包操作得到輸入數據序列和權重序列,不僅對輸入數據和網絡權重進行數據壓縮使得參與運算的數據量大大減少,而且輸入數據與網絡權重的運算由現有技術的浮點數與浮點數相乘變成了無符號整數與無符號整數之間的按位操作,提高了運算速度;另一方面,對網絡權重進行轉置之後的每一行權重處理成一行權重序列,從而使得輸入數據序列可以直接按行與網絡權重的每一行權重序列依次進行內積運算,從而加快矩陣乘法的數據讀取速度,從而進一步提高內積運算速度;再一方面,在將輸入數據序列與一行權重序列進行卷積運算時,直接根據各個數據元素的內積運算執行指令進行數據元素與相應權重元素的內積運算,無需循環判斷,節省循環開銷;最後一方面,通過cpu的多個核並行處理輸入數據序列與各行權重序列的內積運算,進一步提高輸入數據序列與各行權重序列的內積運算速度和效率。

以上是本發明的核心思想,為了使本技術領域的人員更好地理解本發明實施例中的技術方案,並使本發明實施例的上述目的、特徵和優點能夠更加明顯易懂,下面結合附圖對本發明實施例中技術方案作進一步詳細的說明。

顯然,本領域的技術人員可以對本發明進行各種改動和變型而不脫離本發明的精神和範圍。這樣,倘若本發明的這些修改和變型屬於本發明權利要求及其等同技術的範圍之內,則本發明也意圖包含這些改動和變型在內。

同类文章

一種新型多功能組合攝影箱的製作方法

一種新型多功能組合攝影箱的製作方法【專利摘要】本實用新型公開了一種新型多功能組合攝影箱,包括敞開式箱體和前攝影蓋,在箱體頂部設有移動式光源盒,在箱體底部設有LED脫影板,LED脫影板放置在底板上;移動式光源盒包括上蓋,上蓋內設有光源,上蓋部設有磨沙透光片,磨沙透光片將光源封閉在上蓋內;所述LED脫影

壓縮模式圖樣重疊檢測方法與裝置與流程

本發明涉及通信領域,特別涉及一種壓縮模式圖樣重疊檢測方法與裝置。背景技術:在寬帶碼分多址(WCDMA,WidebandCodeDivisionMultipleAccess)系統頻分復用(FDD,FrequencyDivisionDuplex)模式下,為了進行異頻硬切換、FDD到時分復用(TDD,Ti

個性化檯曆的製作方法

專利名稱::個性化檯曆的製作方法技術領域::本實用新型涉及一種檯曆,尤其涉及一種既顯示月曆、又能插入照片的個性化檯曆,屬於生活文化藝術用品領域。背景技術::公知的立式檯曆每頁皆由月曆和畫面兩部分構成,這兩部分都是事先印刷好,固定而不能更換的。畫面或為風景,或為模特、明星。功能單一局限性較大。特別是畫

一種實現縮放的視頻解碼方法

專利名稱:一種實現縮放的視頻解碼方法技術領域:本發明涉及視頻信號處理領域,特別是一種實現縮放的視頻解碼方法。背景技術: Mpeg標準是由運動圖像專家組(Moving Picture Expert Group,MPEG)開發的用於視頻和音頻壓縮的一系列演進的標準。按照Mpeg標準,視頻圖像壓縮編碼後包

基於加熱模壓的纖維增強PBT複合材料成型工藝的製作方法

本發明涉及一種基於加熱模壓的纖維增強pbt複合材料成型工藝。背景技術:熱塑性複合材料與傳統熱固性複合材料相比其具有較好的韌性和抗衝擊性能,此外其還具有可回收利用等優點。熱塑性塑料在液態時流動能力差,使得其與纖維結合浸潤困難。環狀對苯二甲酸丁二醇酯(cbt)是一種環狀預聚物,該材料力學性能差不適合做纖

一種pe滾塑儲槽的製作方法

專利名稱:一種pe滾塑儲槽的製作方法技術領域:一種PE滾塑儲槽一、 技術領域 本實用新型涉及一種PE滾塑儲槽,主要用於化工、染料、醫藥、農藥、冶金、稀土、機械、電子、電力、環保、紡織、釀造、釀造、食品、給水、排水等行業儲存液體使用。二、 背景技術 目前,化工液體耐腐蝕貯運設備,普遍使用傳統的玻璃鋼容

釘的製作方法

專利名稱:釘的製作方法技術領域:本實用新型涉及一種釘,尤其涉及一種可提供方便拔除的鐵(鋼)釘。背景技術:考慮到廢木材回收後再加工利用作業的方便性與安全性,根據環保規定,廢木材的回收是必須將釘於廢木材上的鐵(鋼)釘拔除。如圖1、圖2所示,目前用以釘入木材的鐵(鋼)釘10主要是在一釘體11的一端形成一尖

直流氧噴裝置的製作方法

專利名稱:直流氧噴裝置的製作方法技術領域:本實用新型涉及ー種醫療器械,具體地說是ー種直流氧噴裝置。背景技術:臨床上的放療過程極易造成患者的局部皮膚損傷和炎症,被稱為「放射性皮炎」。目前對於放射性皮炎的主要治療措施是塗抹藥膏,而放射性皮炎患者多伴有局部疼痛,對於止痛,多是通過ロ服或靜脈注射進行止痛治療

新型熱網閥門操作手輪的製作方法

專利名稱:新型熱網閥門操作手輪的製作方法技術領域:新型熱網閥門操作手輪技術領域:本實用新型涉及一種新型熱網閥門操作手輪,屬於機械領域。背景技術::閥門作為流體控制裝置應用廣泛,手輪傳動的閥門使用比例佔90%以上。國家標準中提及手輪所起作用為傳動功能,不作為閥門的運輸、起吊裝置,不承受軸向力。現有閥門

用來自動讀取管狀容器所載識別碼的裝置的製作方法

專利名稱:用來自動讀取管狀容器所載識別碼的裝置的製作方法背景技術:1-本發明所屬領域本發明涉及一種用來自動讀取管狀容器所載識別碼的裝置,其中的管狀容器被放在循環於配送鏈上的文檔匣或託架裝置中。本發明特別適用於,然而並非僅僅專用於,對引入自動分析系統的血液樣本試管之類的自動識別。本發明還涉及專為實現讀