TWI762055B - 卷積神經網路、運算優化方法、裝置、電子設備及介質 - Google Patents

卷積神經網路、運算優化方法、裝置、電子設備及介質 Download PDF

Info

Publication number
TWI762055B
TWI762055B TW109142130A TW109142130A TWI762055B TW I762055 B TWI762055 B TW I762055B TW 109142130 A TW109142130 A TW 109142130A TW 109142130 A TW109142130 A TW 109142130A TW I762055 B TWI762055 B TW I762055B
Authority
TW
Taiwan
Prior art keywords
value
preset
output
matrix
layer
Prior art date
Application number
TW109142130A
Other languages
English (en)
Other versions
TW202223761A (zh
Inventor
易仁善
姚年豐
黃鉉智
Original Assignee
鴻海精密工業股份有限公司
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 鴻海精密工業股份有限公司 filed Critical 鴻海精密工業股份有限公司
Priority to TW109142130A priority Critical patent/TWI762055B/zh
Application granted granted Critical
Publication of TWI762055B publication Critical patent/TWI762055B/zh
Publication of TW202223761A publication Critical patent/TW202223761A/zh

Links

Images

Landscapes

  • Image Analysis (AREA)
  • Image Processing (AREA)

Abstract

本申請提供一種運算優化方法,包括獲取輸入圖像的輸入矩陣,在卷積計算層中,基於預設卷積核在所述輸入矩陣上移動,進行點積運算,輸出第一輸出矩陣,在啟動層中,基於預設啟動函數對所述第一輸出矩陣進行非線性映射,輸出第二輸出矩陣,將滿足預設條件的特徵值根據所述預設偏置值映射至所述第二輸出矩陣。本申請還提供一種卷積神經網路、裝置、電子設備及存儲介質,將卷積計算層進行點積運算的結果直接輸出給啟動層,在啟動層進行偏置運算,可以保證相同運算精度下,減少運算量。

Description

卷積神經網路、運算優化方法、裝置、電子設備及介質
本申請涉及一種神經網路模型技術領域,尤其涉及一種卷積神經網路、運算優化方法、裝置、電子設備及介質。
卷積神經網路是目前深度學習技術領域中具有代表性的神經網絡之一,可以應用於語音辨識、影像處理和圖像識別等領域,在學術界常用的標準圖像標注集上,基於卷積神經網路取得了很多成就,包括圖像特徵提取分類、目標檢測、場景識別等。
在要應用卷積神經網路之前,首先需要訓練出卷積神經網路模型。卷積神經網路的層級結構包括資料登錄層、卷積計算層、啟動層、池化層及全連接層,下面簡述卷積神經網路模型訓練實現方式:
首先,初始化卷積神經網路模型的模型參數,模型參數可以包括各個卷積計算層的初始卷積核、各個卷積計算層的初始偏置矩陣以及全連接層的初始權重矩陣和全連接層的初始偏置向量。在資料登錄層,從訓練集中選取每個訓練圖像,從每個訓練圖像中獲取待處理區域,將每個訓練圖像對應的待處理區域輸入待訓練的卷積神經網路模型。在卷積計算層,使用各個卷積層的初始卷積核和初始偏置矩陣對每個待處理區域進行卷積操作。在啟動層使用啟 動函數對卷積操作結果進行非線性映射,得到特徵圖像。接著,使用全連接層的初始權重矩陣和初始偏置向量對每個特徵圖像進行處理,得到每個待處理區域的類別概率。然後,根據每個訓練圖像的初始類別及類別概率計算類別誤差。根據所有訓練圖像的類別誤差計算類別誤差平均值。接下來,使用該類別誤差平均值調整待訓練卷積神經網路的模型參數。然後,使用調整後的模型參數及各個訓練圖像,反覆運算上述各個步驟到指定次數;最後,將反覆運算次數達到指定次數時所得到的模型參數作為訓練好的卷積神經網路模型的模型參數。
綜上所述,在卷積神經網路訓練完成得到的模型中,存在幾百甚至上千萬的參數,這些參數可以包括卷積神經網路模型中每一層卷積層的權重參數、偏置參數等,還可以包括每一層卷積層的特徵圖參數等。由於參數較多並且資料量較大,無論是在訓練過程還是在使用訓練好的卷積神經網路對圖像進行計算過程都需要消耗大量的存儲和計算資源。
目前,對於在不降低卷積神經網路精度的前提下降低卷積神經網絡的複雜度,減少計算量的解決方案主要是利用對卷積神經網路的參數進行量化(quantize)的方法實現。量化是將一組原始值域範圍內的數,通過一個數學變換將原始值域映射到另一個目標值域範圍的過程。可採用的方法如查表、移位、截位等。其中往往採用線性變換,通常使用乘法完成這個變換。
有鑑於此,有必要提供一種卷積神經網路、運算優化方法、裝置、電子設備及介質,可以保證相同精度下,減少運算量。
本申請一實施方式提供一種卷積神經網路運算優化方法,包括:獲取輸入圖像的輸入矩陣,其中,所述輸入矩陣中的每個資料為 所述輸入圖像的圖像資料;在卷積計算層中,根據預設卷積核在所述輸入矩陣上移動,並進行點積運算,以輸出第一輸出矩陣,其中,所述第一輸出矩陣包括所述輸入圖像特徵的特徵資料;在啟動層中,根據預設啟動函數對所述第一輸出矩陣進行非線性映射,以輸出第二輸出矩陣,其中,所述預設啟動函數用於根據所述卷積神經網路的預設偏置值對所述第一輸出矩陣的特徵值進行篩選,將滿足預設條件的特徵值根據所述預設偏置值映射至所述第二輸出矩陣,其中,所述第二輸出矩陣包括所述特徵資料經過篩選所獲得的資料。
根據本申請的一些實施方式,所述卷積神經網路運算優化方法還包括:針對每一卷積核,獲取其對應的預設偏置值;根據所述預設偏置值構建其對應的預設啟動函數。根據本申請的一些實施方式,所述根據所述預設偏置值構建其對應的預設啟動函數包括:獲取原始啟動函數及該函數對應的臨界值,其中,所述臨界值用於篩選被啟動的特徵值;根據所述預設偏置值及所述臨界值構建新臨界值;根據所述預設偏置值及所述原始啟動函數的映射值構建新的映射值;根據所述新臨界值和所述新映射值構建所述預設啟動函數。
根據本申請的一些實施方式,所述在啟動層中,根據預設啟動函數對所述第一輸出矩陣進行非線性映射,以輸出第二輸出矩陣包括:針對所述第一輸出矩陣上的任一數值,判斷該數值是否大於新臨界值;在該數值大於所述新臨界值時,將該數值映射為該數值與所述預設偏置值的和;在該數值小於或等於所述新臨界值時,將該數值映射為預設小值,其中所述預設小值包括0。
根據本申請的一些實施方式,所述原始啟動函數包括Relu啟動函數,所述Relu啟動函數包括:f(x)=max(0,x),其中,臨界值為0,x為特徵值,f(x)為映射值。
根據本申請的一些實施方式,所述輸入矩陣包括所述卷積神經網 絡上一層網路輸出的輸入矩陣,其中所述上一層網路包括輸入層、卷積計算層、啟動層或池化層。
本申請一實施方式提供一種卷積神經網路,包括:輸入層,用於輸出輸入圖像的輸入矩陣,其中,所述輸入矩陣中的每個資料為所述輸入圖像的圖像資料;卷積計算層,用於獲取所述輸入圖像的輸入矩陣,基於預設卷積核在所述輸入矩陣上移動,進行點積運算,輸出第一輸出矩陣,其中,所述第一輸出矩陣包括所述輸入圖像特徵的特徵資料;啟動層,用於基於預設啟動函數對所述第一輸出矩陣進行非線性映射,輸出第二輸出矩陣,其中,所述預設啟動函數用於根據所述卷積神經網路的預設偏置值對所述第一輸出矩陣的特徵值進行篩選,將滿足預設條件的特徵值根據所述預設偏置值映射至所述第二輸出矩陣,其中,所述第二輸出矩陣包括所述特徵資料經過篩選所獲得的資料;輸出層,用於輸出卷積神經網路最後運算的結果。
本申請一實施方式提供一種卷積神經網路運算優化裝置,包括:獲取模組,用於獲取輸入圖像的輸入矩陣,其中,所述輸入矩陣中的每個資料為所述輸入圖像的圖像資料;運算模組,用於基於預設卷積核在所述輸入矩陣上移動,進行點積運算,輸出第一輸出矩陣,其中,所述第一輸出矩陣包括所述輸入圖像特徵的特徵資料;啟動模組,用於基於預設啟動函數對所述第一輸出矩陣進行非線性映射,輸出第二輸出矩陣,其中,所述預設啟動函數用於根據所述卷積神經網路的預設偏置值對所述第一輸出矩陣的特徵值進行篩選,將滿足預設條件的 特徵值根據所述預設偏置值映射至所述第二輸出矩陣,其中,所述第二輸出矩陣包括所述特徵資料經過篩選所獲得的資料。
本申請一實施方式提供一種電子設備,所述電子設備包括:一個或多個處理器;當一個或多個程式被所述一個或多個處理器執行,使得所述一個或多個處理器實現如上所述的卷積神經網路運算優化方法。
本申請一實施方式提供一種電腦可讀存儲介質,其上存儲有計算機程式,所述電腦程式被處理器執行時實現如上任一項所述的卷積神經網路運算優化方法。
本申請提供一種卷積神經網路運算優化方法、裝置、電子設備及存儲介質,包括獲取輸入圖像的輸入矩陣,在卷積計算層中,基於預設卷積核在所述輸入矩陣上移動,進行點積運算,輸出第一輸出矩陣,在啟動層中,基於預設啟動函數對所述第一輸出矩陣進行非線性映射,輸出第二輸出矩陣,其中,所述預設啟動函數用於根據所述卷積神經網路的預設偏置值對所述第一輸出矩陣的特徵值進行篩選,將滿足預設條件的特徵值根據所述預設偏置值映射至所述第二輸出矩陣。在卷積計算層中不進行偏置運算,將卷積計算層進行點積運算的結果直接輸出給啟動層,在啟動層進行偏置運算,可以保證相同運算精度下,減少影像處理的運算量。
100:電子設備
10:卷積神經網路運算優化裝置
11:輸入裝置
12:處理器
01:輸入層
02:卷積計算層
03:啟動層
04:輸出層
41:獲取模組
42:運算模組
43:啟動模組
圖1是卷積神經網路結構示意圖;圖2為卷積計算層工作示意圖;圖3為一偏置運算示意圖; 圖4為一啟動操作示意圖;圖5為根據本申請一實施方式的電子設備示意圖;圖6為根據本申請一實施方式卷積神經網路運算優化方法的流程圖;圖7為根據本申請一實施方式的構建啟動函數方法流程示意圖;圖8為Relu函數示意圖;圖9為根據本申請一實施方式預設啟動函數示意圖;圖10為根據本申請一實施方式的點積運算示意圖;圖11為根據本申請一實施方式非線性映射方法流程示意圖;圖12為根據本申請一實施方式的卷積神經網路結構圖;圖13為根據本申請一實施方式的卷積神經網路運算優化裝置結構示意圖。
下面將結合本申請實施方式中的附圖,對本申請實施方式中的技術方案進行清楚、完整地描述,顯然,所描述的實施方式是本申請一部分實施方式,而不是全部的實施方式。
基於本申請中的實施方式,本領域普通技術人員在沒有付出創造性勞動前提下所獲得的所有其他實施方式,都是屬於本申請保護的範圍。
為了便於本領域技術人員深入理解本申請實施例,以下將首先介紹本申請實施例中所涉及的專業術語的定義。
神經網路中的每個神經元節點接受上一層神經元的輸出值作為本神經元的輸入值,並將輸入值傳遞給下一層,輸入層神經元節點會將輸入屬性值直接傳遞給下一層(隱藏層或輸出層)。
參見圖1,卷積神經網路是一類包含卷積計算且具有深度結構的前饋神經網路,可以應用於語音辨識、影像處理和圖像識別等領域,一般可以分為輸入層、隱藏層和輸出層,隱藏層可以分為卷積層、池化層和全連接層,其中卷積層包括卷積計算層及啟動層。
輸入層要做的處理主要是對輸入的圖像資料或語音資料進行預 處理,包括去均值、歸一化及PCA/白化。例如對輸入的圖像資料進行預處理,在神經網路中,輸入圖像資料的特徵值比較大,則卷積計算的結果值也會大,進行啟動函數輸出時,會導致對應位置數值變化量太小,易於擬合,為此,需要對輸入圖像資料去均值,各維度都減對應維度的均值,使得輸入圖像資料各個維度都中心化為0。歸一化包括最值歸一化和均值方差歸一化,進行歸一化可以把各輸入圖像資料的特徵值的尺度控制在相同的範圍內,便於找到最優解。PCA是指通過拋棄攜帶信息量較少的維度,保留主要的特徵資訊來對資料進行降維處理,可用於特徵提取、資料壓縮、去雜訊、降維等操作。白化去掉資料之間的相關聯度和令方差均一化,由於圖像中相鄰圖元之間具有很強的相關性,用於訓練時很多輸入資料是冗餘的,通過白化去除。
在本申請實施例中,輸入層接收使用者輸入的輸入圖像,對輸入圖像進行轉化,輸出一輸入矩陣,其中,所述輸入矩陣中的每個資料為所述輸入圖像的圖像資料。具體的,在輸入層對圖像資料進行灰度處理,使用一組數位陣列表示一張圖片。每張圖片裡的每一個圖元點的數值都表示該張圖片裡的某個圖元點的強度值。例如輸入7*7*3的圖片,7*7為圖像的圖元點,3為圖像的通道,對應RGB三個通道,該7*7*3的圖片對應3個7*7的矩陣。
卷積計算層是用來進行特徵提取,對輸入層輸出的輸入矩陣進行特徵提取。在進行卷積運算時,給定一個大小為F*F的方陣,稱為卷積核,該矩陣的大小稱為感受野。卷積核的深度d和輸入圖像的深度d一致,輸入圖像的深度d即為圖像的通道。因此可以得到大小為F*F*d的卷積核,即為d個F*F的矩陣。不同的模型會確定不同數量的卷積核,卷積核個數記為k,每個卷積核標記為Wi,Wi包含d個F*F的矩陣。
輸入矩陣的邊緣會比矩陣內部的元素計算次數少,且輸出矩陣的大小會在卷積運算中相比較於輸入變小。因此,可在輸入矩陣的四周補零,進行一個填充,其大小為P,當P=1時,表示在該輸入矩陣的四周補充了一圈零。卷積核在輸入矩陣上移動,進行卷積運算。移動的步長記為S。當S=2時,表示卷積核在輸入矩陣上每次移動2個單元。
下面簡述卷積計算層工作過程:
參見圖2,以輸入矩陣為7*7*3,填充P為1,卷積核有k=1個,每個篩檢程式的大小為3*3*3,即F=3,同時設定計算步長S=2,偏置值b=1。
在圖2中,輸入圖像中與卷積核相應大小的圖像塊中的數值與卷積核矩陣中的相應位置的數值相乘後,將各個乘積相加,將相加得到的值再與該卷積核對應的偏置值相加,得到該圖像塊所對應的特徵圖譜中的資料,該資料在特徵圖譜即輸出矩陣中的位置與所述圖像塊在輸入圖像中的位置相對應。
具體的,首先從輸入矩陣的最左邊開始取得3*3的感受野,每一個深度的輸入矩陣對應每一個深度的卷積核,進行點積運算,然後加上偏置值,得到矩陣中的第一個元素。輸入矩陣1對應第一深度的輸入矩陣,例如對應輸入圖像的Green通道,輸入矩陣2對應第二深度的輸入矩陣,例如對應輸入圖像的Red通道,輸入矩陣3對應第三深度的輸入矩陣,例如對應輸入圖像的Blue通道,詳細過程為:
輸入矩陣1:r10*0+0*1+0*1+0*(-1)+1*0+0*0+0*1+0*0+1*0=0。
輸入矩陣2:r2=0*0+0*0+0*0+0*1+0*0+0*1+0*0+2*0+0*0=0。
輸入矩陣3:r3=0*(-1)+0*(-1)+0*0+0*0+0*0+2*(-1)+0*(-1)+0*0+2*0=-2。
輸出矩陣第一個元素out11=r1+r2+r3+b=0+0+(-2)+(1)=-1。
可以理解的是,將感受野在輸入矩陣中依次移動,當完成第一個輸出矩陣的計算後,在該卷積計算層有多個卷積核時,繼續使用第二卷積核重複,輸出另一矩陣。
在傳統做法中,在卷積計算層中會進行偏置運算,在卷積核進行點積運算後得到的圖像特徵資料都會與卷積核對應的偏置值相加,基於卷積神經網路中可以包括多層卷積計算層,每層卷積計算層又可以包括多個卷積核,單對一層的卷積計算層來說,進行偏置運算的計算量為F*F*k,F是輸出矩陣的尺寸,k為該卷積計算層中卷積核的個數,在卷積核數量多且輸出的特徵圖的尺寸大的時候,單對一層的卷積計算層來說偏置運算量就很大,對於整個卷積神經網路來說偏置運算量就更大。
參見圖3,傳統的卷積運算過程中,示例性地,輸入圖像是一個42*42*3輸入矩陣,第i層卷積計算層有四個卷積核w1、w2、w3及w4,b1、b2、b3及b4分別為w1、w2、w3及w4對應的預設偏置值,填補padding=“same”,即輸出矩陣尺寸等於輸入矩陣尺寸,輸出矩陣尺寸也為42*42。卷積核移動的步長為1,在卷積核對輸入矩陣進行點積運算後,分別加上各自的預設偏置值b1、 b2、b3及b4,輸出代表輸入圖像資料的特徵圖,有關偏置運算的次數為42*42*4,對偏置運算後得到的結果值再通過啟動層中的啟動函數進行計算。
啟動層是把上一層卷積計算層輸出的特徵資料通過啟動函數進行非線性映射。參見圖4,卷積層包括相鄰的卷積計算層和啟動層,x1、x2、x3、xn代表輸入矩陣的圖像資料,w1、w2......wn代表卷積核的權重值,將該卷積計算層中的所有卷積核對輸入圖像的特徵資料進行點乘,再加上預設偏置值b1、b2、b3及b4,輸出的數值由啟動函數f(z)對其進行非線性映射,獲得經過篩選的特徵資料h。
池化層夾在連續的卷積層中間,用於壓縮資料和參數的量,減小過擬合。對於輸入的資料是圖像資料,則池化層作用是壓縮圖像。池化層可以包括最大池化和均值池化。
全連接層用於連接所有的特徵,將最終的圖像資料送給分類器,全連接層的每一個結點都與上一層的所有結點相連,用來把前邊提取到的特徵綜合起來。輸出層用於輸出卷積神經網路的最終結果,在應用於圖像分類時輸出層可以連接分類器。
參見圖5,卷積神經網路運算優化裝置10運行於電子設備100中。所述電子設備100包括,但不僅限於,輸入裝置11以及至少一個處理器12,上述元件之間可以通過匯流排連接。
需要說明的是,圖5僅為舉例說明電子設備100。在其他實施方式中,電子設備100也可以包括更多或者更少的元件,或者具有不同的元件配置。所述電子設備100可以包括各種物聯網終端或設備,包括平板電腦、膝上型可攜式電腦、車載電腦、臺式電腦等等。
在一個實施方式中,輸入裝置11為該電子設備100的輸入介面,用於接收輸入資料。所述卷積神經網路運算優化裝置10與所述輸入裝置11邏輯相連,從而通過所述卷積神經網路運算優化裝置10對輸入裝置11的資料進行處理。所述處理器12與所述輸入裝置11相連,對輸入的資料使用卷積神經網路進行處理。在本申請實施例中,在傳統卷積神經網路的運算方式中,卷積層對輸入圖像進行卷積運算的同時進行偏置運算,卷積運算得到的輸出矩陣上的輸入圖像的每個特徵值都會根據其所屬的卷積核所對應的預設偏置值做偏置運算。而本申請提供一種卷積神經網路優化運算方法,在卷積計算層對輸入圖像進行卷積計算後,不進行偏置運算,卷積核進行點積運算得到的輸出矩陣直接輸出 給啟動層,即在對輸入圖像進行特徵提取時不使用預設偏置值對特徵資料進行調整,直接將提取出的圖像資料輸出給啟動層,針對每個輸出矩陣的特徵資料,我們只需要在啟動層中做一次偏置運算,且其運算結果精度與傳統做法相同,且能減少運算量。而相對於現有的通過增加量化步驟來減少運算量,本申請的運算步驟不增加,且能減少偏置運算量。
參見圖6,本申請一實施方式提供一種卷積神經網路運算優化方法,應用於卷積神經網路運算優化裝置10,所述卷積神經網路運算優化方法包括以下步驟:
步驟S10:針對每一卷積核,獲取其對應的預設偏置值。
在本申請實施例中,偏置值是卷積神經網路中的重要參數,每一卷積核都有其對應的預先設置的偏置值,各個偏置值可相同可不同,根據實際情況設置。所述預設偏置值是用於對所述輸入圖像的圖像資料進行偏置操作。如圖3,W1、W2、W3、W4為卷積核,b1、b2、b3、b4分別為W1、W2、W3、W4的預設偏置值。
步驟S20:根據所述預設偏置值構建其對應的預設啟動函數。
在本申請實施例中,針對每一卷積計算層,根據所述預設偏置值構建其對應的預設啟動函數對輸入圖像進行特徵提取後,獲得所述輸入圖像的特徵資料,所述預設啟動函數用於對所述特徵資料進行啟動,即對所述特徵資料進行篩選。
根據本申請的一些實施方式,參見圖7,步驟S20根據所述預設偏置值構建其對應的預設啟動函數包括:
步驟S201:獲取原始啟動函數及該函數對應的臨界值,其中,所述臨界值用於篩選被啟動的特徵值。
步驟S202:根據所述預設偏置值及所述臨界值構建新臨界值。
步驟S203:根據所述預設偏置值及所述原始啟動函數的映射值構建新映射值;
步驟S204:根據所述新臨界值和所述新映射值構建所述預設激活函數。
根據本申請的一些實施方式,所述原始啟動函數包括Relu啟動函數。請參閱圖8,Relu啟動函數表示為:f(x)=max(0,x),其中,臨界值為0,x為卷積計算層輸出的第一輸出矩陣中的特徵資料的特徵值,在特徵值x大於臨 界值0時,啟動函數f(x)=x,在特徵值x小於或等於臨界值0時,啟動函數f(x)=0。即大於臨界值0的特徵值才被Relu啟動函數啟動,保留其數值,否則不保留其數值。
在本申請實施例中,以選用的原始啟動函數為Relu啟動函數為例進行說明。根據所述預設偏置值及所述臨界值構建新臨界值的邏輯為,預設偏置值bias加上特徵值x等於原始啟動函數的臨界值0,則該新臨界值為原始啟動函數的臨界值0減去所述預設偏置值的值,即-bias,以使得在啟動層構建的新臨界值與原始啟動函數的臨界值0在卷積計算層的篩選條件一致。根據所述預設偏置值及所述原始啟動函數的映射值構建新的映射值為,在特徵值x大於新臨界值(-bias)時,啟動函數的新映射值f(x)=x+預設偏置值,在特徵值x小於或等於新臨界值(-bias)時,啟動函數的新映射值f(x)=0。綜上可以得到預設啟動函數為:如果特徵值x小於或等於新臨界值(-bias),則新映射值f(x)=0,如果特徵值x大於新臨界值(-bias),則新映射值f(x)=x+bias,其中bias為各個卷積核對應的預設偏置值。
參見圖9,本申請預設啟動函數為虛線1和點劃線3,其是由原始啟動函數進行構建後得到的預設啟動函數,而實線2是原始啟動函數。
在本申請實施例中,根據原始啟動函數不同,構建的預設啟動函數不同,所述原始啟動函數可以包括其他符合上述構建條件的啟動函數,本申請對此不作具體限定。在本申請實施例中,根據每個卷積核對應的預設偏置值不同,則構建的預設啟動函數不同,本申請對此不作具體限定。
步驟S30:獲取輸入圖像的輸入矩陣及所述預設啟動函數。
根據本申請的一些實施方式,所述輸入矩陣包括所述卷積神經網絡上一層網路輸出的輸入矩陣,其中所述上一層網路包括輸入層、卷積計算層、啟動層或池化層。在本申請實施例中,所述輸入矩陣中的每個資料為所述輸入圖像的圖像資料。在上一層網路為輸入層時,則所述輸入矩陣中的每個資料為所述輸入圖像的原始圖像資料。在所述上一層網路為卷積計算層,則輸入矩陣中的每個資料為輸入圖像經過特徵提取後得到的包含輸入圖像特徵的圖像資料。在所述上一層網路為啟動層時,則所述輸入矩陣的每個資料為所述特徵資料經過篩選啟動後得到的圖像資料。在所述上一層網路為池化層時,則所述輸入矩陣的每個資料為對經過篩選後的特徵資料進行壓縮後的圖像資料。
在本申請實施例中,卷積神經網路可以包括多層卷積計算層、多 層啟動層等,對於第i層卷積計算層,該輸入圖像的輸入特徵為第i-1層卷積計算層和/或第i-1層啟動層輸出的結果。
步驟S40:在卷積計算層中,根據預設卷積核在所述輸入矩陣上移動,並進行點積運算,以輸出第一輸出矩陣,其中,所述第一輸出矩陣包括所述輸入圖像特徵的特徵資料。
在本申請實施例中,參見圖10,在卷積核進行點積運算後,輸出包括輸入圖像特徵資料的第一輸出矩陣,對輸入圖像特徵資料不進行偏置運算,將偏置運算操作放入啟動層進行。點積運算是指接受在實數R上的兩個向量並返回一個實數值標量的二元運算。例如對於兩個向量a=[a1,a2,...,an]和b=[b1,b2,...,bn]的點積定義為:a.b=a1b1+a2b2+……+anbn。
步驟S50:在啟動層中,根據預設啟動函數對所述第一輸出矩陣進行非線性映射,以輸出第二輸出矩陣,其中,所述預設啟動函數用於根據所述卷積神經網路的預設偏置值對所述第一輸出矩陣的特徵值進行篩選,將滿足預設條件的特徵值根據所述預設偏置值映射至所述第二輸出矩陣,其中,所述第二輸出矩陣包括所述特徵資料經過篩選所獲得的資料。
在本申請實施例中,每一卷積計算層將其內各個卷積核計算的結果相加後,會由相鄰啟動層的預設啟動函數對其進行非線性映射。在卷積計算層對輸入圖像進行特徵輸出第一輸出矩陣後,由預設啟動函數對所述第一輸出矩陣的圖像資料進行篩選,輸出第二輸出矩陣。
根據本申請的一些實施方式,參見圖11,步驟S50所述在啟動層中,基於預設啟動函數對所述第一輸出矩陣進行非線性映射,輸出第二輸出矩陣包括:
步驟S501:針對所述第一輸出矩陣上的任一數值,判斷該數值是否大於新臨界值。
在本申請實施例中,判斷所述第一輸出矩陣中的圖像資料與所述新臨界值的大小,以此對所述第一輸出矩陣中的圖像資料進行啟動。
步驟S502:在該數值大於所述新臨界值時,將該數值映射為該數值與所述預設偏置值的和。
在本申請實施例中,在所述第一輸出矩陣中的圖像資料大於所述 新臨界值時,將該圖像資料映射為該圖像資料的原數值與所述預設偏置值的和,以此啟動所述圖像資料。
步驟S503:在該數值小於或等於所述新臨界值時,將該數值映射為預設小值,以此不啟動所述圖像資料,其中所述預設小值包括0。
在本申請實施例中,在所述第一輸出矩陣中的圖像資料小於或等於所述新臨界值時,將該圖像資料映射為預設小值,以此不啟動所述圖像資料在本申請實施例中,在卷積計算層不進行偏置運算,在啟動層使用預設啟動函數f(x)=max(0,x+bias)進行偏置運算得到的結果與傳統做法得到的啟動值相似,其中x為特徵值,bias為預設偏置值,臨界值為0,在特徵值不滿足篩選條件就將該特徵值映射為預設小值0,在特徵值滿足篩選條件就將該特徵值映射為該特徵值與預設偏置值的和。以圖3中的輸入矩陣為例,假設其x>新臨界值(-bias)的概率為p,x<=新臨界值(-bias)的概率為1-p,0<=p<=1,如果特徵值x大於新臨界值(-bias),則f(x)=x+bias,如果特徵值x小於或等於新臨界值(-bias),則f(x)=0。需要進行偏置運算次數:4+p%*42*42*4,所以節省(1-p)*42*42*4-4次的偏置運算,其中,4為卷積核的數量。最後啟動層的輸出不變,保證相同運算精度,同時減少偏置運算次數,減少卷積神經網路的運算量,進而減少圖像資料處理的運算量,提高卷積神經網路對圖像資料處理的效率。
需要說明的是,本申請的卷積神經網路運算優化方法可以運用到神經網路的訓練過程,或是應用到已經訓練好的卷積神經網路的運算過程。
參見圖12,本申請一實施方式提供一種卷積神經網路,包括:
輸入層01,用於輸出輸入圖像的輸入矩陣,其中,所述輸入矩陣中的每個資料為所述輸入圖像的圖像資料。
卷積計算層02,用於獲取所述輸入圖像的輸入矩陣,基於預設卷積核在所述輸入矩陣上移動,進行點積運算,輸出第一輸出矩陣,其中,所述第一輸出矩陣包括所述輸入圖像特徵的特徵資料。
啟動層03,用於基於預設啟動函數對所述第一輸出矩陣進行非線性映射,輸出第二輸出矩陣,其中,所述預設啟動函數用於根據所述卷積神經網路的預設偏置值對所述第一輸出矩陣的特徵值進行篩選,將滿足預設條件的特徵值根據所述預設偏置值映射至所述第二輸出矩陣,其中,所述第二輸出矩陣包括所述特徵資料經過篩選所獲得的資料。
輸出層04,用於輸出卷積神經網路最後運算的結果。
參見圖13,本申請一實施方式提供一種卷積神經網路運算優化裝置,包括:獲取模組41,用於獲取輸入圖像的輸入矩陣,其中,所述輸入矩陣中的每個資料為所述輸入圖像的圖像資料;運算模組42,用於基於預設卷積核在所述輸入矩陣上移動,進行點積運算,輸出第一輸出矩陣,其中,所述第一輸出矩陣包括所述輸入圖像特徵的特徵資料;啟動模組43,用於基於預設啟動函數對所述第一輸出矩陣進行非線性映射,輸出第二輸出矩陣,其中,所述預設啟動函數用於根據所述卷積神經網路的預設偏置值對所述第一輸出矩陣的特徵值進行篩選,將滿足預設條件的特徵值根據所述預設偏置值映射至所述第二輸出矩陣,其中,所述第二輸出矩陣包括所述特徵資料經過篩選所獲得的資料。
本申請提供一種卷積神經網路運算優化方法、裝置、電子設備及存儲介質,包括獲取輸入圖像的輸入矩陣,在卷積計算層中,基於預設卷積核在所述輸入矩陣上移動,進行點積運算,輸出第一輸出矩陣,在啟動層中,基於預設啟動函數對所述第一輸出矩陣進行非線性映射,輸出第二輸出矩陣,其中,所述預設啟動函數用於根據所述卷積神經網路的預設偏置值對所述第一輸出矩陣的特徵值進行篩選,將滿足預設條件的特徵值根據所述預設偏置值映射至所述第二輸出矩陣。在卷積計算層中不進行偏置運算,將卷積計算層進行點積運算的結果直接輸出給啟動層,由啟動層進行偏置運算,在保證相同運算精度下,減少運算量。
在一實施方式中,所述處理器12可以是中央處理單元(Central Processing Unit,CPU),還可以是其他通用處理器、數位訊號處理器(Digital Signal Processor,DSP)、專用積體電路(Application Specific Integrated Circuit,ASIC)、現成可程式設計閘陣列(Field-Programmable Gate Array,FPGA)或者其他可程式設計邏輯器件、分立門或者電晶體邏輯器件、分立硬體元件等。通用處理器可以是微處理器或者所述處理器12也可以是其它任何常規的處理器等。
所述卷積神經網路運算優化裝置10中的模組如果以軟體功能單元的形式實現並作為獨立的產品銷售或使用時,可以存儲在一個電腦可讀取存儲介質中。基於這樣的理解,本申請實現上述實施例方法中的全部或部分流程,也可以通過電腦程式來指令相關的硬體來完成,所述的電腦程式可存儲於一電腦可讀存儲介質中,所述電腦程式在被處理器執行時,可實現上述各個方法實施例的步驟。其中,所述電腦程式包括電腦程式代碼,所述電腦程式代碼可以為原始程式碼形式、物件代碼形式、可執行檔或某些中間形式等。所述電腦可 讀介質可以包括:能夠攜帶所述電腦程式代碼的任何實體或裝置、記錄介質、U盤、移動硬碟、磁碟、光碟、電腦記憶體、唯讀記憶體(ROM,Read-Only Memory)、隨機存取記憶體(RAM,Random Access Memory)、電載波信號、電信信號以及軟體分發介質等。需要說明的是,所述電腦可讀介質包含的內容可以根據司法管轄區內立法和專利實踐的要求進行適當的增減,例如在某些司法管轄區,根據立法和專利實踐,電腦可讀介質不包括電載波信號和電信信號。
可以理解的是,以上所描述的模組劃分,為一種邏輯功能劃分,實際實現時可以有另外的劃分方式。另外,在本申請各個實施例中的各功能模組可以集成在相同處理單元中,也可以是各個模組單獨物理存在,也可以兩個或兩個以上模組集成在相同單元中。上述集成的模組既可以採用硬體的形式實現,也可以採用硬體加軟體功能模組的形式實現。在另一實施方式中,所述電子設備100還可包括記憶體(圖未示),所述一個或多個模組還可存儲在記憶體中,並由所述處理器12執行。所述記憶體可以是電子設備100的內部記憶體,即內置於所述電子設備100的記憶體。在其他實施例中,所述記憶體也可以是電子設備100的外部記憶體,即外接於所述電子設備100的記憶體。
在一些實施例中,所述記憶體用於存儲程式碼和各種資料,例如,存儲安裝在所述電子設備100中的卷積神經網路運算優化裝置10的程式碼,並在電子設備100的運行過程中實現高速、自動地完成程式或資料的存取。
所述記憶體可以包括隨機存取記憶體,還可以包括非易失性存儲器,例如硬碟、記憶體、插接式硬碟、智慧存儲卡(Smart Media Card,SMC)、安全數位(Secure Digital,SD)卡、快閃記憶體卡(Flash Card)、至少一個磁碟記憶體件、快閃記憶體器件、或其他易失性固態記憶體件。
對於本領域技術人員而言,顯然本申請不限於上述示範性實施例的細節,而且在不背離本申請的精神或基本特徵的情況下,能夠以其他的具體形式實現本申請。因此,無論從哪一點來看,均應將本申請上述的實施例看作是示範性的,而且是非限制性的。
S10~S50:步驟

Claims (10)

  1. 一種卷積神經網路運算優化方法,其中,包括:獲取輸入圖像的輸入矩陣,其中,所述輸入矩陣中的每個資料為所述輸入圖像的圖像資料;在卷積計算層中,根據預設卷積核在所述輸入矩陣上移動,並進行點積運算,以輸出第一輸出矩陣,其中,所述第一輸出矩陣包括所述輸入圖像特徵的特徵資料,其中所述特徵資料未經過偏置運算;在啟動層中,根據預設啟動函數對所述第一輸出矩陣進行非線性映射,以輸出第二輸出矩陣,其中,所述預設啟動函數用於根據所述卷積神經網路的預設偏置值對所述第一輸出矩陣的特徵值進行篩選,將滿足預設條件的特徵值根據所述預設偏置值映射至所述第二輸出矩陣,其中,所述第二輸出矩陣包括所述特徵資料經過所述偏置運算所獲得的資料。
  2. 如請求項1所述的卷積神經網路運算優化方法,其中,還包括:針對每一卷積核,獲取其對應的預設偏置值;根據所述預設偏置值構建其對應的預設啟動函數。
  3. 如請求項2所述的卷積神經網路運算優化方法,其中,所述根據所述預設偏置值構建其對應的預設啟動函數包括:獲取原始啟動函數及該函數對應的臨界值,其中,所述臨界值用於篩選被啟動的特徵值;根據所述預設偏置值及所述臨界值構建新臨界值;根據所述預設偏置值及所述原始啟動函數的映射值構建新映射值;根據所述新臨界值和所述新映射值構建所述預設啟動函數。
  4. 如請求項3項所述的卷積神經網路運算優化方法,其中, 所述在啟動層中,根據預設啟動函數對所述第一輸出矩陣進行非線性映射,以輸出第二輸出矩陣包括:針對所述第一輸出矩陣上的任一數值,判斷該數值是否大於所述新臨界值;在該數值大於所述新臨界值時,將該數值映射為該數值與所述預設偏置值的和;在該數值小於或等於所述新臨界值時,將該數值映射為預設小值,其中所述預設小值包括0。
  5. 如請求項3所述的卷積神經網路運算優化方法,其中,所述原始啟動函數包括Relu啟動函數,其中所述Relu啟動函數包括:f(x)=max(0,x),其中,臨界值為0,x為特徵值,f(x)為映射值。
  6. 如請求項1至5任一項所述的卷積神經網路運算優化方法,其中,所述輸入矩陣包括所述卷積神經網路上一層網路輸出的輸入矩陣,其中所述上一層網路包括輸入層、卷積計算層、啟動層或池化層。
  7. 一種卷積神經網路,其中,包括:輸入層,用於輸出輸入圖像的輸入矩陣,其中,所述輸入矩陣中的每個資料為所述輸入圖像的圖像資料;卷積計算層,用於獲取所述輸入圖像的輸入矩陣,根據預設卷積核在所述輸入矩陣上移動,並進行點積運算,以輸出第一輸出矩陣,其中,所述第一輸出矩陣包括所述輸入圖像特徵的特徵資料,其中所述特徵資料未經過偏置運算;啟動層,根據預設啟動函數對所述第一輸出矩陣進行非線性映射,以輸出第二輸出矩陣,其中,所述預設啟動函數用於根據所述卷積神經網路的預設偏置值對所述第一輸出矩陣的特徵值進行篩選,將滿足預設條件的 特徵值根據所述預設偏置值映射至所述第二輸出矩陣,其中,所述第二輸出矩陣包括所述特徵資料經過所述偏置運算所獲得的資料;輸出層,用於輸出卷積神經網路最後運算的結果。
  8. 一種卷積神經網路運算優化裝置,其中,包括:獲取模組,用於獲取輸入圖像的輸入矩陣,其中,所述輸入矩陣中的每個資料為所述輸入圖像的圖像資料;運算模組,用於根據預設卷積核在所述輸入矩陣上移動,並進行點積運算,以輸出第一輸出矩陣,其中,所述第一輸出矩陣包括所述輸入圖像特徵的特徵資料,其中所述特徵資料未經過偏置運算;啟動模組,用於根據預設啟動函數對所述第一輸出矩陣進行非線性映射,以輸出第二輸出矩陣,其中,所述預設啟動函數用於根據所述卷積神經網路的預設偏置值對所述第一輸出矩陣的特徵值進行篩選,將滿足預設條件的特徵值根據所述預設偏置值映射至所述第二輸出矩陣,其中,所述第二輸出矩陣包括所述特徵資料經過所述偏置運算所獲得的資料。
  9. 一種電子設備,其中,所述電子設備包括:一個或多個處理器;當一個或多個程式被所述一個或多個處理器執行,使得所述一個或多個處理器實現如請求項1至6任一項所述卷積神經網路運算優化方法。
  10. 一種存儲介質,其上存儲有電腦程式,所述電腦程式被處理器執行時實現如請求項1至6任一項所述卷積神經網路運算優化方法。
TW109142130A 2020-11-30 2020-11-30 卷積神經網路、運算優化方法、裝置、電子設備及介質 TWI762055B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
TW109142130A TWI762055B (zh) 2020-11-30 2020-11-30 卷積神經網路、運算優化方法、裝置、電子設備及介質

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
TW109142130A TWI762055B (zh) 2020-11-30 2020-11-30 卷積神經網路、運算優化方法、裝置、電子設備及介質

Publications (2)

Publication Number Publication Date
TWI762055B true TWI762055B (zh) 2022-04-21
TW202223761A TW202223761A (zh) 2022-06-16

Family

ID=82198855

Family Applications (1)

Application Number Title Priority Date Filing Date
TW109142130A TWI762055B (zh) 2020-11-30 2020-11-30 卷積神經網路、運算優化方法、裝置、電子設備及介質

Country Status (1)

Country Link
TW (1) TWI762055B (zh)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108073981A (zh) * 2016-11-07 2018-05-25 三星电子株式会社 处理卷积神经网络的方法和设备
CN108805265A (zh) * 2018-05-21 2018-11-13 Oppo广东移动通信有限公司 神经网络模型处理方法和装置、图像处理方法、移动终端
CN109688351A (zh) * 2017-10-13 2019-04-26 华为技术有限公司 一种图像信号处理方法、装置及设备
US20200364867A1 (en) * 2017-12-29 2020-11-19 Leica Biosystems Imaging, Inc. Processing of histology images with a convolutional neural network to identify tumors

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108073981A (zh) * 2016-11-07 2018-05-25 三星电子株式会社 处理卷积神经网络的方法和设备
CN109688351A (zh) * 2017-10-13 2019-04-26 华为技术有限公司 一种图像信号处理方法、装置及设备
US20200364867A1 (en) * 2017-12-29 2020-11-19 Leica Biosystems Imaging, Inc. Processing of histology images with a convolutional neural network to identify tumors
CN108805265A (zh) * 2018-05-21 2018-11-13 Oppo广东移动通信有限公司 神经网络模型处理方法和装置、图像处理方法、移动终端

Also Published As

Publication number Publication date
TW202223761A (zh) 2022-06-16

Similar Documents

Publication Publication Date Title
CN108364061B (zh) 运算装置、运算执行设备及运算执行方法
US10096134B2 (en) Data compaction and memory bandwidth reduction for sparse neural networks
Valueva et al. Application of the residue number system to reduce hardware costs of the convolutional neural network implementation
US20210004663A1 (en) Neural network device and method of quantizing parameters of neural network
CN110232661B (zh) 基于Retinex和卷积神经网络的低光照彩色图像增强方法
WO2019238029A1 (zh) 卷积神经网络系统和卷积神经网络量化的方法
WO2021062029A1 (en) Joint pruning and quantization scheme for deep neural networks
CN110610237A (zh) 模型的量化训练方法、装置及存储介质
US11636306B2 (en) Implementing traditional computer vision algorithms as neural networks
US20240062530A1 (en) Deep perceptual image enhancement
CN109800865B (zh) 神经网络生成及图像处理方法和装置、平台、电子设备
US10853694B2 (en) Processing input data in a convolutional neural network
Afifi et al. Cie xyz net: Unprocessing images for low-level computer vision tasks
US11875486B2 (en) Image brightness statistical method and imaging device
Yang Recursive approximation of the bilateral filter
US20200218777A1 (en) Signal Processing Method and Apparatus
CN113256504A (zh) 图像处理的方法和电子设备
CN111240746A (zh) 一种浮点数据反量化及量化的方法和设备
JP7274180B2 (ja) プログラム、ニューラルネットワーク処理コンピュータ、ニューラルネットワーク処理装置、およびニューラルネットワークの演算方法
TWI762055B (zh) 卷積神經網路、運算優化方法、裝置、電子設備及介質
CN113033448B (zh) 一种基于多尺度卷积和注意力的遥感影像去云残差神经网络系统、方法、设备及存储介质
CN113313162A (zh) 一种多尺度特征融合目标检测的方法及系统
CN111275166B (zh) 基于卷积神经网络的图像处理装置、设备及可读存储介质
CN114580605A (zh) 卷积神经网络、运算优化方法、装置、电子设备及介质
KR20200066215A (ko) 컨볼루션 신경망 입력 층을 위한 비트 해석