TWI664585B - 使用浮點標號位元表示的神經網路訓練方法 - Google Patents
使用浮點標號位元表示的神經網路訓練方法 Download PDFInfo
- Publication number
- TWI664585B TWI664585B TW107111198A TW107111198A TWI664585B TW I664585 B TWI664585 B TW I664585B TW 107111198 A TW107111198 A TW 107111198A TW 107111198 A TW107111198 A TW 107111198A TW I664585 B TWI664585 B TW I664585B
- Authority
- TW
- Taiwan
- Prior art keywords
- group
- adjustment
- weight
- network
- value
- Prior art date
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/38—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
- G06F7/48—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
- G06F7/4824—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices using signed-digit representation
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/38—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
- G06F7/48—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
- G06F7/483—Computations with numbers represented by a non-linear combination of denominational numbers, e.g. rational numbers, logarithmic number system or floating-point numbers
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/38—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
- G06F7/48—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
- G06F7/483—Computations with numbers represented by a non-linear combination of denominational numbers, e.g. rational numbers, logarithmic number system or floating-point numbers
- G06F7/4833—Logarithmic number system
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N20/00—Machine learning
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/0464—Convolutional networks [CNN, ConvNet]
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/0495—Quantised networks; Sparse networks; Compressed networks
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
- G06N3/09—Supervised learning
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N5/00—Computing arrangements using knowledge-based models
- G06N5/04—Inference or reasoning models
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/045—Combinations of networks
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/06—Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
- G06N3/063—Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Artificial Intelligence (AREA)
- Mathematical Physics (AREA)
- Data Mining & Analysis (AREA)
- Evolutionary Computation (AREA)
- Computational Mathematics (AREA)
- Mathematical Analysis (AREA)
- Pure & Applied Mathematics (AREA)
- Computational Linguistics (AREA)
- Mathematical Optimization (AREA)
- Biophysics (AREA)
- Life Sciences & Earth Sciences (AREA)
- Health & Medical Sciences (AREA)
- Biomedical Technology (AREA)
- Molecular Biology (AREA)
- General Health & Medical Sciences (AREA)
- Nonlinear Science (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Medical Informatics (AREA)
- Complex Calculations (AREA)
Abstract
一種神經網路訓練的方法,其中該神經網路包含有多個網路權重以及多個神經元,且該方法包含每一網路權重使用浮點標號位元數表示,其中該網路權重之尾數是以多個尾數標號位元群組表示,且該網路權重之指數是以一指數位元群組表示;以及使用該網路權重的該指數位元群組以及該多個尾數標號位元群組中的至少一群組,進行權重調整值計算與神經網路推理運算。
Description
本發明係指一種神經網路訓練方法,尤指一種使用浮點標號位元表示的神經網路訓練方法,以簡化網路訓練的計算複雜度。
深度神經網路(Deep Neural Network)或稱深度學習(Deep learning)的蓬勃發展,使得人工智慧(Artificial Intelligence,AI)可實現物件偵測、影像識別、語音辨識、醫療診斷以及自駕車等應用。
網路推理(inference)指的是將輸入資料輸入一神經網路模型後,經過一連串內部計算,最後得到該神經網路模型的推理結果。在取得適當的神經網路模型前,需先進行神經網路訓練(training),建立適當的神經網路權重(weight),讓神經網路模型可根據輸入資料及權重來產生適當的推理結果,以實現上述應用。
神經網路訓練包含初始設定(Setup)、向前傳遞(Forward pass)計算、反向傳遞(Backward pass)計算及權重更新(Weight update),且神經網路模型可包含一輸入層、多個隱藏層、及一輸出層。以一隱藏層的神經網路訓練為例,首先於神經網路初始化時設定權重值,以進行初始設定;根據已知的輸入值,計算並輸出此層的輸出值,以進行向前傳遞計算;根據已知的輸入值、輸出值與權重值,計算此層的誤差值與權重調整值,以進行反向傳遞計算;最後根據權重調整值來進行權重更新。藉由重複上述操作來調整權重,直到取得適當的神經網路權重,如此可讓神經網路模型根據輸入資料及權重來產生適當的推理結果。一般來說,多筆神經網路訓練的輸入資料通過神經網路的所有層之後,累積的調整值才會調整權重一次。
可見,當神經網路模型的尺寸越來越大(尤其是深度神經網路),進行神經網路訓練的計算量及記憶體存取頻寬需求也會越來越大。目前無論是在業界或是學界,大多採用32位元標準浮點數(floating-point number)做神經網路訓練計算,其中處理標準浮點數的硬體功耗以及複雜度都較高。
因此,如何簡化神經網路訓練的計算複雜度,以降低硬體功耗及設計複雜度,實乃本領域的重要課題。
因此,本發明的主要目的即在於提供一種使用浮點標號位元表示的神經網路訓練方法,以簡化神經網路訓練的計算複雜度。
本發明揭露一種神經網路訓練的方法,用於一神經網路,該方法包含有使用一浮點標號位元數(Floating-Point Signed Digit number,簡稱FloatSD數)表示該神經網路的一網路權重,其中該網路權重的一尾數是以多個尾數標號位元群組表示,且該網路權重的一指數是以一指數位元群組表示;以及使用該網路權重的該指數位元群組以及該多個尾數標號位元群組中的至少一群組,進行權重調整值計算與神經網路推理運算。
本發明另揭露一種調整網路權重的方法,用於一神經網路的神經網路訓練,包含有:使用該神經網路的一網路權重的指數位元群組以及多個尾數標號位元群組中的至少一群組,計算該網路權重的一權重調整值;以及根據該權重調整值,調整該網路權重對應的一調整前網路權重,以產生一調整後網路權重;其中該網路權重用於計算權重調整值及神經網路推理運算時是使用浮點標號位元(FloatSD)數表示,該網路權重之尾數是以該多個尾數標號位元群組表示,且該網路權重之指數是以該指數位元群組表示。
為簡化神經網路訓練與推理的計算過程,本發明使用浮點標號位元(FloatSD)數表示法來表示網路權重值,並於神經網路訓練時,使用網路權重與神經元輸出值來計算權重調整值及進行神經網路推理運算。如此一來,本發明可降低網路權重中的非零位元數目,使得與網路權重有關的乘法計算可使用位移加法器來取代傳統浮點乘法器,以降低網路訓練(例如向前傳遞計算及反向傳遞計算)的計算複雜度。此外,由於神經網路具高容錯率特性,本發明在進行神經網路推理運算、向前傳遞計算及反向傳遞計算時,使用兩組尾數群組搭配指數群組來減少網路權重的位元數,如此可簡化神經元與網路權重相乘的複雜度,進而簡化神經網路訓練與推理的計算複雜度,降低記憶體存取量與硬體功耗。
第1圖為本發明實施例一神經網路10進行訓練的操作示意圖。神經網路10可根據一組輸入資料X與其對應的權重W來產生一組輸出資料A;再透過一損失運算單元11來計算輸出資料A與一期望值EXP間的一誤差值ERR;最後透過一權重更新單元12,根據誤差值ERR來調整權重W。神經網路10可包含一輸入層(例如輸入資料X)、至少一隱藏層以及一輸出層(例如輸出資料A),每一層可包含多個神經元(又稱節點),上層神經元與下層神經元之間可透過一連結(connection)來傳遞神經元及權重的資料。
第2圖為本發明實施例神經網路10的一神經元100的運算示意圖。假設上層三個神經元連接到神經元100,用來分別輸出神經元值X1~X3到神經元100。神經元100可根據神經元值X1~X3及網路權重W1~W3,進行加權總合運算(即,卷積運算(convolution))後,再通過一非線性函數f(.),稱做激活函數(Activation function),以得到神經元輸出值A(100),又稱神經元激活值。
於一實施例中,假設神經網路10係一多層感知器(Multilayer perceptron,MLP),並由數個全連接層(Fully connected layer)組成,其網路訓練的向前傳遞計算可由如下數學式(1.1)表示:
(1.1)
其中
係於數個全連接層中第k層的第j個經過激活函數之後的神經元激活值,f(×)為激活函數,
係第k層的第j個經過激活函數之前的神經元輸入值,
是第k層中連接到第j個神經元的第i個網路權重,
為第k-1層(上層)中連接到下層神經元
的第i個神經元(共N個),b為偏移值(bias)。
網路訓練的反向傳遞計算可採用梯度下降法(Gradient descend method)來找出損失函數(cost function)的最小值,其中損失函數用來量化表示目前網路輸出結果與正確解答的差距,例如第1圖中輸出資料A與期望值EXP的誤差值ERR。損失函數對網路權重的梯度值可透過鏈鎖律(chain rule)微分計算而得,由如下數學式(1.2)表示:
(1.2)
其中C為損失函數,
為網路權重,
為回傳梯度值。
數學式(1.2)中各項整理如下數學式(1.3)、(1.4)、(1.5)、(1.6):
(1.3)
(1.4)
(1.5)
其中回傳梯度值可如下數學式(1.6)表示:
(1.6)
權重調整值可由如下數學式(1.7)表示:
(1.7)
其中
為權重調整值(即,第1圖誤差值ERR),
為一常數。權重調整值可表示為損失函數對網路權重的梯度值與常數的乘積。
簡言之,多層感知器的反向計算包含:計算回傳梯度值
並將之與網路權重
做加權總合,即數學式(1.6);以及將回傳梯度值
與神經元激活值
做點對點相乘,即數學式(1.2)。
於一實施例中,假設神經網路10係一卷積神經網路(Convolution neural network,CNN),並由數個卷積層(convolution layer)、池化層(Pooling layer)以及少量的全連接層所組成,其網路訓練的前向傳遞計算可由如下數學式(2.1)表示:
(2.1)
其中
代表卷積運算(convolution),
為第k層中經過激活函數之前的神經元,Ker
l為第k層的卷積核(kernel),又稱卷積視窗(convolutional window),
及
為上層(第k-1層)神經元,
為第k層的網路權重,
為偏移值,m為卷積核的數量,n、c為二維輸入影像的通道數。
卷積神經網路的網路訓練的反向傳遞計算可由如下數學式(2.2)、(2.3)表示:
(2.2)
(2.3)
其中
代表卷積運算(convolution),
為第k層的回傳梯度值,
為第k+1層的回傳梯度值,
為第k-1層的神經元值,
為第k+1層的網路權重,C為損失函數。
為激活函數,其可為一線性整流函數(Rectified Linear Unit,ReLU);
為激活函數的一階微分函數。
權重調整值可由如下數學式(2.4)表示:
(2.4)
其中
為一常數,
為第k層卷積核中位置(
)的網路權重,
為第k-1層卷積核中位置(
)的神經元。
簡言之,卷積神經網路的反向計算包含:網路權重值
與回傳梯度值
做卷積計算,即數學式(2.3);以及回傳梯度值
與神經元值
做卷積計算,即數學式(2.2)。卷積神經網路與多層感知器不同的是梯度值與調整值計算是透過不同視窗大小的卷積完成,即數學式(2.4),而非點對點相乘。
由上可見,卷積神經網路與多層感知器在進行網路訓練時,涉及了多項數學式運算,所需的計算量及記憶體存取頻寬需求也相當大。於一實施例中,為簡化神經網路訓練的計算複雜度,權重更新單元12可使用浮點標號位元群組表示法(Floating-Point Signed Digit Group Representation)的FloatSD數來表示權重的近似值。浮點標號位元群組表示法指的是將包含多個位元的尾數資料(mantissa)分為多個群組,其中每一群組至多包含一個非零位元。例如將標號位元群組表示法套用在二進位表示法中,一個四位元的群組可包含一個非零位元以及三個零位元,或是四個零位元,共可表示9個數值,如下表格1。
| 表格1 – 四位元標號位元群組表示法 | |
| 正數值 | 1000(8) |
| 0100(4) | |
| 0010(2) | |
| 0001(1) | |
| 零 | 0000(0) |
| 負數值 | 000-1(-1) |
| 00-10(-2) | |
| 0-100(-4) | |
| -1000(-8) |
以十進位表示的乘數63為例,其可轉換為二進位表示的「0111111」,以及標號位元群組表示的「1000 000-1」,即「64 - 1」。在此表示法下,任一被乘數與乘數63相乘時,僅需將被乘數向左位移六位元後再減去被乘數即可,因此硬體設計上只需一個加法器來進行相加反向被乘數(即,減去被乘數)的運算。例如於第2圖中,假設權重W1可表示為「1000 000-1」,則神經元100計算「X1*W1」時,僅需將神經元資料X1向左位移六位元後再減去神經元資料X1即可。如此一來,使用標號位元群組表示法來表示權重的近似值,可簡化網路訓練的計算複雜度。
在標號位元群組表示法的系統下,調整某群組數值大小的方式是依據表格1的群組排序位置,將群組的位元值往大或往小的方向調動一個位置。當群組的大小需要增加且未達上限時,例如,假設該群組為負值000-1(-1),則調大時將該群組設為0000(0);假設該群組為正值0010(2),則調大時將該群組設為0100(4)。當群組的大小需要減少且未達下限時,例如,假設該群組為負值000-1(-1),則調小時將該群組設為00-10(-2);如果該群組的值為正值,如0010(2),則調小時將該群組設為0001(1)。
當群組到達所能表示的上限時,則產生一進位(carry)訊號到較靠近最大有效位元(Most significant group,最大有效群組MSG)的前一群組,原群組且並回到所能表示的下限。以計算十進位表示的「40 + 8」為例,可改為「0010 1000 + 0000 1000 ~ 0100 -1000」,即改以「64 - 8 = 56」來近似實際值48。
當群組到達所能表示的下限時,則產生一借位(borrow)訊號到較靠近最大有效位元的前一群組,原群組並且回到所能表示的上限;以計算十進位表示的「24 - 8 = 16」為例,可改為「0010 -1000 + 0000 -1000 ~ 0001 1000」,即改以「16 + 8 = 24」來近似實際值16。
由於神經網路的高容錯特性,在進行訓練網路的前向計算與反向計算中,實驗發現使用權重的部分近似值來取代精確值,可得到逼近使用精確值的運算結果。例如,使用32位元標準浮點數(32-bit floating-point number)中的尾數部分最大有效位元,並將尾數剩餘位元設為零,可在進行訓練網路時得到逼近使用精確值的運算結果。此外,實驗發現使用權重的尾數全部近似值來進行訓練網路的權重更新的情況下,可確保訓練網路的推理結果維持收斂狀態,使神經網路10產生的輸出資料A可逼近期望值EXP。例如於第2圖中,假設取32位元標準浮點數中的8位元指數(Exponent)以及6位最大有效位元尾數來表示權重W1,其中尾數使用兩組三位元的標號位元群組表示,則可在向前與反向傳遞計算時僅使用兩套位移加法器來進行尾數運算,因為尾數的每一組標號位元群組只需使用一套位移加法器,如此可減少記憶體存取與計算量。然而,在調整權重時使用32位元來表示權重W1,可使神經元100產生的輸出資料A(100)逼近期望值。
於一實施例中,網路權重W對應於一調整前網路權重W
BEFORE及一調整後網路權重W
AFTER,權重更新單元12可根據權重調整值,適當改變調整前網路權重W
BEFORE,以產生調整後網路權重W
AFTER。
於一實施例中,調整前網路權重W
BEFORE、權重調整值及調整後網路權重W
AFTER是使用標準浮點數表示。需調整網路權重時,權重更新單元12可將權重調整值(其可為正值或負值)加到調整前網路權重W
BEFORE,以產生調整後網路權重W
AFTER。當神經網路10進行前向或反向神經網路運算以計算下一個權重調整值以及網路推理運算時,權重更新單元12可將調整後網路權重W
AFTER的尾數由標準浮點數轉換為浮點標號位元(FloatSD)數之後傳遞到神經網路10。在使用標準浮點數表示調整前網路權重W
BEFORE、權重調整值及調整後網路權重W
AFTER的情況下,相當於使用網路權重的尾數精確值來進行訓練網路的權重更新,如此可確保調整網路權重的精確度。
於一實施例中,權重調整值是使用標準浮點數表示,調整前網路權重W
BEFORE及調整後網路權重W
AFTER是使用浮點標號位元(FloatSD)數表示。第3圖繪示本發明實施例使用浮點標號位元表示的一權重W0。假設權重W0係以32位元浮點標號位元(FloatSD)數來表示,包含8位元用來表示浮點標號位元數的指數,以及24位元用來表示浮點標號位元數的尾數。
於本實施例中,權重W0包含一指數群組G_EXP以及多個尾數群組G0~G7。指數群組G_EXP的寬度為8,包含位元B31~B24,其中位元B31是最大有效位元,位元B24是最小有效位元。尾數群組G7~G0是以標號位元群組表示,每一組以3個位元代表,分別包含位元B23~B21、B20~B18、B17~B15、B14~B12、B11~B9、B8~B6、B5~B3、B2~B0,且每一群組至多包含一個非零位元。尾數群組G7是最大有效群組(Most Significant Group,MSG),而尾數群組G0是最小有效群組(Least Significant Group,LSG)。
在標號位元群組表示法的系統下,尾數群組G7~G0的每一者可表示7個數值,如下表格2。
| 表格2 - 三位元標號位元群組表示法 | |
| 正數值 | 100(4) |
| 010(2) | |
| 001(1) | |
| 零 | 000(0) |
| 負數值 | 00-1(-1) |
| 0-10(-2) | |
| -100(-4) |
由於尾數群組G7~G0的每一者至多出現一個非零位元,因此在硬體設計上,計算時所需的位移加法器數量即是所使用群組數。例如在進行網路訓練時,計算權重調整值的運算只需要使用最有效前兩個群組,即2套位移加法器。如此一來,相較於傳統使用24套位移加法器來進行24位元的浮點尾數計算,本發明在使用在標號位元群組表示法的系統下,當進行網路訓練時,可以較少的位移加法器來進行計算,以簡化網路訓練的計算與硬體複雜度。
於本實施例中,權重W0的調整方式是先調整尾數群組G7~G0再調整指數群組G_EXP,且依序由靠近最小有效群組的組別往靠近最大有效群組的組別進行調整。權重更新單元12可根據一權重調整值的絕對值,決定至少一適當群組開始進行調整,並根據該權重調整值來決定各適當群組非零位元的調整方向(即,調大或調小)。針對一適當群組,在完成該群組調整後,可能會產生進位訊號或借位訊號。如產生進位或借位訊號時,在調整完當前群組後,權重更新單元12可朝最大有效群組(MSG)方向,移到下一個群組,並根據進位訊號(或借位訊號)進行調整,以此類推。當進行至最大有效群組時,仍有進位或借位訊號,則需調整指數群組G_EXP。
於一實施例中,權重調整值指示至少一適當群組,且每一適當群組對應至少一進位或借位訊號。當有多個適當群組時,每一適當群組的調整方式相同。例如,當調整完尾數群組G3時,權重更新單元12可將尾數群組G4設為新的當前調整群組。假設在調整尾數群組G3時有產生進位訊號或借位訊號,則權重更新單元12可根據權重調整值以及進位訊號(或借位訊號),調大或調小當前調整群組G4的大小,以及判斷是否產生新的進位訊號(或新的借位訊號)。若當前調整群組G4的大小到達所能表示的上限(例如,「100」),則權重更新單元12可產生新的進位訊號;若當前調整群組G4的大小到達所能表示的下限(例如,「-100」),則權重更新單元12可產生新的借位訊號。以此類推,權重更新單元12會重複上述調整流程,直到調整完最大有效群組(即,尾數群組G7),權重更新單元12接著調整指數群組G_EXP。
於一實施例中,當最大有效群組(MSG)到達所能表示的上限時(例如,尾數群組G7為「100(4)」),或最大有效群組到達所能表示的下限時(例如,尾數群組G7為「-100(-4)」),則權重更新單元12將指數群組G_EXP的加1,並將所有尾數群組(G7~G0)向右移一個位元。其中假如某群組的值為100(4),010(2),000(0),-100(-4),0-10(-2),則向右移一個位元後的值分別為010(2),001(1),000(0),0-10(-2),00-1(-1);如某群組的值為001(1),00-1(-1),則向右移一個位元後的值皆為000(0)。另一種做法中權重更新單元12增加指數群組G_EXP的大小(群組位元數),並將尾數群組G7~G1的位元向右移一個群組的位元數到尾數群組G6~G0,並將尾數群組G7設為000(0)。
於一實施例中,當最大有效群組為零時(例如,尾數群組G7為「000」),則權重更新單元12減少指數群組G_EXP的大小(例如,將指數群組G_EXP減少單一尾數群組所包含的位元數3);以及將其餘尾數群組G6~G0的位元向左移到尾數群組G7~G1,並將尾數群組G0(LSG)設為000(0),如此使得有效群組的位元值正規化到最左側,以避免浪費尾數的精準度位元數,如下表格3。
| 表格3 | |
| 調整前 | G_EXP「0000 0101」;G7~G0「000 001 100 000 000 000 000 001」 |
| 調整後 | G_EXP「0000 0010」;G7~G0「001 100 000 000 000 000 001 000」 |
根據表格3可知,上述操作相當於將網路權重的浮點(或小數點)向右移動三位元(即係單一尾數群組所包含的位元數,相當於將網路權重乘以2
3,8倍),因此需將指數群組G_EXP減少3(相當於將網路權重乘以2
-3,1/8倍),以維持網路權重的大小不變。
於一實施例中,權重的指數值係以指數群組G_EXP的數值與一常數的乘積所表示,如下數學式(3.1)表示:
EXP = G_EXP × B (3.1)
其中EXP為指數值,B為常數,且常數B等於單一尾數群組所包含的位元數或為1。以表格1為例,常數B等於4;以表格2為例,常數B等於3;以表格3為例,常數B等於1。
於一實施例中,假設常數B等於3,當最大有效群組為零時(例如,尾數群組G7為「000」),則權重更新單元12將指數群組G_EXP減少一,而指數值相對應減少一常數B,如下表格4。
| 表格4 | |
| 調整前 | G_EXP「0000 0101」;G7~G0「000 001 100 000 000 000 000 001」 |
| 調整後 | G_EXP「0000 0100」;G7~G0「001 100 000 000 000 000 001 000」 |
根據表格4可知,上述操作相當於將網路權重的浮點向右移動三位元,由於權重的指數值係由常數B=3的整數倍所表示,因此只需將指數群組G_EXP減少1,以維持網路權重的大小不變。換言之,當常數B等於3且指數群組G_EXP減少或增加1時,則將權重數值的指數值對應減少或增加常數B。
上述關於神經網路10的操作可歸納為一網路訓練流程40,如第4圖所示。網路訓練流程40可編譯為一程式碼而儲存於一記憶體裝置,用來指示神經網路10進行以下步驟。
步驟401:使用浮點標號位元(FloatSD)數表示神經網路的多個網路權重,其中每一網路權重的尾數是以多個尾數標號位元群組表示,且每一網路權重的指數是以一指數位元群組表示。
步驟402:使用該指數位元群組以及該多個尾數標號位元群組中的至少一群組,進行權重調整值計算。
於網路訓練流程40中,神經網路10可使用多個尾數標號位元群組G7~G0表示權重W0的尾數,以及使用指數位元群組G_EXP表示權重W0的指數(步驟401);接著,神經網路10使用指數位元群組G_EXP以及多個尾數標號位元群組G7~G0中的至少一群組,進行計算權重調整值(步驟402)。
於一實施例中,神經網路10可使用尾數群組中的最大有效群組與第二大有效群組,且尾數群組的寬度為3位元,以進行網路訓練的向前傳遞計算及反向傳遞計算。神經元與網路權重相乘的複雜度直接取決於其中一者的非零位元數目;由於神經網路10已將網路權重的尾數位元進行簡化,因此在進行網路訓練的向前傳遞計算及反向傳遞計算時,可簡化神經元與網路權重相乘的複雜度,進而簡化網路訓練的計算複雜度並降低記憶體存取量。例如,可將尾數簡化為2組*3位元=6位元,且尾數位元僅包含2個非零位元,因此在硬體設計上只需兩套位移加法器來進行尾數運算。
上述關於權重更新單元12進行調整網路權重的操作可歸納為一權重調整流程50,如第5圖所示。權重調整流程50可編譯為一程式碼而儲存於一記憶體裝置,用來指示權重更新單元12進行以下步驟。
步驟500:開始。
步驟501:根據一權重調整值的大小,判斷一網路權重的一當前調整尾數群組;以及根據該權重調整值,產生至少一進位訊號或一借位訊號並傳送至該當前調整尾數群組;其中該網路權重包含一指數群組及多個尾數群組。
步驟502:判斷該當前調整群組是否為該多個尾數群組的最大有效群組?若否,進行步驟503;若是,進行步驟506。
步驟503:根據該進位訊號或借位訊號,判斷該當前調整群組於調整前是否已達最大臨界值或最小臨界值而無法再調整?若是,進行步驟504;若否,進行步驟505。
步驟504:先將該當前調整群組的大小調整為反向臨界值後,將下一調整群組設為該當前調整群組並將進位訊號或借位訊號傳至該群組,其中該下一調整群組比該當前調整群組更接近該最大有效群組,回到步驟502。
步驟505:根據該進位訊號或借位訊號,調整該當前調整群組,進行步驟511。
步驟506:根據該進位訊號或借位訊號,判斷最大有效群組於調整前是否已達最大臨界值或最小臨界值而無法再調整?若是,進行步驟507;若否,進行步驟508。
步驟507:增加該指數群組的大小,將所有尾數群組向右移動至少一個位元。進行步驟508。
步驟508:根據該進位訊號或借位訊號,調大或調小該最大有效群組。
步驟509:判斷該最大有效群組調整後是否為零?若為零,進行步驟510;若否,進行步驟511。
步驟510:減少該指數群組的大小,將所有尾數群組向最大有效群組移動一個群組,並將最小有效群組設為零。
步驟511:結束。
於權重調整流程50中,於步驟501,權重更新單元12可根據權重調整值的大小,判斷網路權重W0的當前調整群組;以及根據權重調整值,產生進位訊號或借位訊號並傳送至該當前調整群組;其中網路權重W0包含指數群組G_EXP及多個尾數群組G7~G0。
於步驟502~503,當權重更新單元12判斷當前調整群組不是尾數群組的最大有效群組G7時,則根據進位訊號或借位訊號,判斷當前調整群組於調整前是否已達最大臨界值或最小臨界值而無法再調整。
於步驟504,若當前調整群組於調整前已達最大臨界值或最小臨界值而無法再調整時,則權重更新單元12先將當前調整群組的大小調整為反向臨界值後(例如,若當前調整群組的大小已達最大臨界值時,則將之調整為最小臨界值;若當前調整群組的大小已達最小臨界值時,則將之調整為最大臨界值),並且將下一群組設為當前調整群組並將進位訊號或借位訊號傳至下一群組,其中下一調整群組比當前調整群組更接近最大有效群組。
於步驟505,若當前調整群組於調整前未達最大臨界值或最小臨界值而能夠再調整時,則權重更新單元12根據進位訊號或借位訊號,調整當前調整群組,以完成本次網路權重之調整動作。
於步驟506~507,當權重更新單元12判斷當前調整群組是尾數群組的最大有效群組G7且判斷最大有效群組於調整前已達最大臨界值或最小臨界值而無法再調整時,則增加指數群組G_EXP的大小,將所有尾數群組向右移動至少一個位元。
於步驟508,當權重更新單元12判斷當前調整群組是尾數群組的最大有效群組G7且判斷最大有效群組於調整前未達最大臨界值或最小臨界值而能夠再調整時,則根據進位訊號或借位訊號,調大或調小最大有效群組G7。
於步驟509,權重更新單元12判斷最大有效群組G7於調整後是否為零,以使得有效群組的位元值正規化到最左側,以避免浪費尾數的精準度位元數。於步驟510,若權重更新單元12判斷最大有效群組G7於調整後為零時,則減少指數群組G_EXP的大小,將所有尾數群組向最大有效位元移動一個群組(例如,將群組G6~G0的大小移動到群組G7~G1),並將最小有效群組G0設為零,以完成本次網路權重之調整動作。若權重更新單元12判斷最大有效群組G7於調整後不為零時,表示本次網路權重之調整動作已完成。
上述關於權重更新單元12進行調整網路權重的操作可歸納為一權重調整流程60,如第6圖所示。權重調整流程60可編譯為一程式碼而儲存於一記憶體裝置,用來指示權重更新單元12進行以下步驟。
步驟600:開始。
步驟601:根據一權重調整值,調整一調整前網路權重,以產生一調整後網路權重,其中該調整前網路權重、該權重調整值及該調整後網路權重是使用標準浮點數表示。
步驟602:將該調整後網路權重的尾數由標準浮點數表示轉換為浮點標號位元數。
步驟603:結束。
於流程60中,需調整網路權重時,權重更新單元12可根據權重調整值,適當改變調整前網路權重W
BEFORE,以產生調整後網路權重W
AFTER,其中調整前網路權重W
BEFORE、權重調整值及調整後網路權重W
AFTER是使用標準浮點數表示(步驟601);接著,權重更新單元12將調整後網路權重W
AFTER的尾數由標準浮點數表示轉換為浮點標號位元數送至神經網路進行下階段權重調整值計算與推理運算(步驟602)。因此,透過流程60,可使用網路權重的尾數精確值(以標準浮點數表示)來進行權重更新,並有效縮減網路權重的尾數位元(以浮點標號位元數表示),以兼顧權重調整的精確度並簡化神經網路推理運算及網路訓練的計算複雜度。
綜上所述,為簡化神經網路訓練的計算過程,本發明使用浮點數標號位元群組表示法來表示網路權重值,並於神經網路訓練時,使用網路權重與神經元輸出值來計算權重調整值。如此一來,本發明可降低網路權重中的非零位元數目,使得與網路權重有關的乘法計算可使用位移加法器來取代傳統浮點乘法器,以降低網路訓練(例如向前傳遞計算及反向傳遞計算)的計算複雜度。此外,由於神經網路具高容錯率特性,本發明在進行向前傳遞計算及反向傳遞計算時,使用兩組尾數群組搭配指數群組來減少網路權重的位元數,如此可簡化神經元與網路權重相乘的複雜度,進而簡化神經網路訓練的計算複雜度,降低記憶體存取量與硬體功耗 以上所述僅為本發明之較佳實施例,凡依本發明申請專利範圍所做之均等變化與修飾,皆應屬本發明之涵蓋範圍。
10‧‧‧神經網路
X‧‧‧輸入資料
W、W1~W3、W0‧‧‧網路權重
A、A(100)‧‧‧輸出資料
f(×)‧‧‧非線性函數
11‧‧‧損失運算單元
EXP‧‧‧期望值
ERR‧‧‧誤差值
12‧‧‧權重更新單元
100‧‧‧神經元
X1~X3‧‧‧神經元資料
G_EXP‧‧‧指數群組
G0~G7‧‧‧尾數群組
B31~B0‧‧‧位元
40、50、60‧‧‧流程
401、402、500~511、600~603‧‧‧步驟
第1圖為本發明實施例一神經網路進行網路訓練的操作示意圖。 第2圖為本發明實施例第1圖的神經網路的一神經元的運算示意圖。 第3圖繪示本發明實施例使用浮點標號位元表示的一權重。 第4圖為本發明實施例一網路訓練流程的流程圖。 第5圖為本發明實施例一權重調整流程的流程圖。 第6圖為本發明實施例一權重調整流程的流程圖。
Claims (14)
- 一種神經網路訓練的方法,用於一神經網路,包含有:使用一浮點標號位元數表示該神經網路的一網路權重,其中該網路權重的一尾數是以多個尾數標號位元群組表示,且該網路權重的一指數是以一指數位元群組表示;以及使用該網路權重的該指數位元群組以及該多個尾數標號位元群組中的至少一群組,進行權重調整值計算與神經網路推理運算;其中該網路權重對應於一調整前網路權重,使用該網路權重的該指數位元群組以及該多個尾數標號位元群組中的至少一群組,計算該網路權重的一權重調整值;以及根據該權重調整值,調整該調整前網路權重,以產生一調整後網路權重;且其中該權重調整值是使用標準浮點數表示,該調整前網路權重及該調整後網路權重是使用浮點標號位元數表示;將該權重調整值由標準浮點數轉換浮點標號位元數;其中該權重調整值指示至少一適當群組,且每一適當群組對應至少一進位或借位訊號。
- 如請求項1所述的方法,其中該調整前網路權重是先調整該調整前網路權重的尾數再調整該調整前網路權重的指數,且依序從該調整前網路權重的多個尾數標號位元群組的一當前調整群組朝一最大有效群組進行調整。
- 如請求項2所述的方法,其中根據該權重調整值,調整該調整前網路權重的步驟包含:根據該權重調整值,判斷該調整前網路權重的該當前調整群組;根據該權重調整值,產生至少一進位訊號或一借位訊號並將該進位訊號或該借位訊號送至該當前調整群組;當判斷該當前調整群組不為該多個尾數標號位元群組的該最大有效群組時,根據該進位訊號或借位訊號,判斷該當前調整群組於調整前是否已達一最大臨界值或一最小臨界值而無法再調整;以及當判斷該當前調整群組為該多個尾數標號位元群組的該最大有效群組時,根據該進位訊號或借位訊號,判斷該最大有效群組於調整前是否已達該最大臨界值或該最小臨界值而無法再調整。
- 如請求項3所述的方法,其中當判斷該當前調整群組不為該多個尾數標號位元群組的該最大有效群組時,根據該進位訊號或借位訊號,判斷該當前調整群組於調整前是否已達該最大臨界值或該最小臨界值而無法再調整的步驟包含:當判斷該當前調整群組於調整前已達該最大臨界值或該最小臨界值而無法再調整時,先將該當前調整群組的大小調整為一反向臨界值後,將下一調整群組設為該當前調整群組並將進位訊號或借位訊號傳至該群組,其中該下一調整群組比該當前調整群組更接近該最大有效群組;以及當判斷該當前調整群組於調整前未達該最大臨界值或該最小臨界值而能夠再調整時,根據該進位訊號或借位訊號,調整該當前調整群組。
- 如請求項3所述的方法,其中當判斷該當前調整群組為該多個尾數標號位元群組的該最大有效群組時,根據該進位訊號或借位訊號,判斷該最大有效群組於調整前是否已達該最大臨界值或該最小臨界值而無法再調整的步驟包含:當判斷該最大有效群組於調整前已達該最大臨界值或該最小臨界值而無法再調整時,增加該指數位元群組的大小,將所有尾數標號位元群組向右移動至少一個位元;根據該進位訊號或借位訊號,調大或調小該最大有效群組;以及判斷該最大有效群組調整後是否為零,以判斷是否調整該多個尾數標號位元群組。
- 如請求項5所述的方法,其中判斷該最大有效群組調整後是否為零,以判斷是否調整該多個尾數標號位元群組的步驟包含:當判斷該最大有效群組調整後為零時,減少該指數位元群組的大小,將其餘多個尾數標號位元群組向最大有效群組分別移動一個群組,並將該最小有效群組設為零;以及當判斷該最大有效群組調整後不為零時,不調整該多個尾數標號位元群組。
- 如請求項1所述的方法,其中該權重調整值是根據該網路權重的該指數位元群組以及該多個尾數標號位元群組中的該至少一群組以及該神經網路的一神經元輸出值,進行計算而產生,其中該神經元輸出值是使用定點數或浮點數表示。
- 一種調整網路權重的方法,用於一神經網路的神經網路訓練,包含有:使用該神經網路的一網路權重的指數位元群組以及多個尾數標號位元群組中的至少一群組,計算該網路權重的一權重調整值;以及根據該權重調整值,調整該網路權重對應的一調整前網路權重,以產生一調整後網路權重;其中該網路權重是使用浮點標號位元數表示,該網路權重之尾數是以該多個尾數標號位元群組表示,且該網路權重之指數是以該指數位元群組表示;其中該權重調整值是使用標準浮點數表示,該調整前網路權重及該調整後網路權重是使用浮點標號位元數表示;且將該權重調整值由標準浮點數轉換浮點標號位元數;其中該權重調整值指示至少一適當群組,且每一適當群組對應至少一進位或借位訊號。
- 如請求項8所述的方法,其中該調整前網路權重是先調整該調整前網路權重的尾數再調整該調整前網路權重的指數,且依序從該調整前網路權重的多個尾數標號位元群組的一當前調整群組朝一最大有效群組進行調整。
- 如請求項9所述的方法,其中根據該權重調整值,調整該調整前網路權重的步驟包含:根據該權重調整值,判斷該調整前網路權重的該當前調整群組;根據該權重調整值,產生至少一進位訊號或一借位訊號並將該進位訊號或該借位訊號送至該當前調整群組;當判斷該當前調整群組不為該多個尾數標號位元群組的該最大有效群組時,根據該進位訊號或借位訊號,判斷該當前調整群組於調整前是否已達一最大臨界值或一最小臨界值而無法再調整;以及當判斷該當前調整群組為該多個尾數標號位元群組的該最大有效群組時,根據該進位訊號或借位訊號,判斷該最大有效群組於調整前是否已達該最大臨界值或該最小臨界值而無法再調整。
- 如請求項10所述的方法,其中當判斷該當前調整群組不為該多個尾數標號位元群組的該最大有效群組時,根據該進位訊號或借位訊號,判斷該當前調整群組於調整前是否已達該最大臨界值或該最小臨界值而無法再調整的步驟包含:當判斷該當前調整群組於調整前已達該最大臨界值或該最小臨界值而無法再調整時,先將該當前調整群組的大小調整為一反向臨界值後,將下一調整群組設為該當前調整群組並將進位訊號或借位訊號傳至該群組,其中該下一調整群組比該當前調整群組更接近該最大有效群組;以及當判斷該當前調整群組於調整前未達該最大臨界值或該最小臨界值而能夠再調整時,根據該進位訊號或借位訊號,調整該當前調整群組。
- 如請求項11所述的方法,其中當判斷該當前調整群組為該多個尾數標號位元群組的該最大有效群組時,根據該進位訊號或借位訊號,判斷該最大有效群組於調整前是否已達該最大臨界值或該最小臨界值而無法再調整的步驟包含:當判斷該最大有效群組於調整前已達該最大臨界值或該最小臨界值而無法再調整時,增加該指數位元群組的大小,將所有尾數標號位元群組向右移動至少一個位元;根據該進位訊號或借位訊號,調大或調小該最大有效群組;以及判斷該最大有效群組調整後是否為零,以判斷是否調整該多個尾數標號位元群組。
- 如請求項12所述的方法,其中判斷該最大有效群組調整後是否為零,以判斷是否調整該多個尾數標號位元群組的步驟包含:當判斷該最大有效群組調整後為零時,減少該指數位元群組的大小,將其餘多個尾數標號位元群組向最大有效群組分別移動一個群組,並將該最小有效群組設為零;以及當判斷該最大有效群組調整後不為零時,不調整該多個尾數標號位元群組。
- 如請求項8所述的方法,其中該權重調整值是根據該網路權重的該指數位元群組以及該多個尾數標號位元群組中的該至少一群組以及該神經網路的一神經元輸出值,進行計算而產生,其中該神經元輸出值是使用定點數或浮點數表示。
Priority Applications (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| TW107111198A TWI664585B (zh) | 2018-03-30 | 2018-03-30 | 使用浮點標號位元表示的神經網路訓練方法 |
| US16/000,857 US11170297B2 (en) | 2018-03-30 | 2018-06-05 | Method of neural network training using floating-point signed digit representation |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| TW107111198A TWI664585B (zh) | 2018-03-30 | 2018-03-30 | 使用浮點標號位元表示的神經網路訓練方法 |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| TWI664585B true TWI664585B (zh) | 2019-07-01 |
| TW201942807A TW201942807A (zh) | 2019-11-01 |
Family
ID=68049437
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| TW107111198A TWI664585B (zh) | 2018-03-30 | 2018-03-30 | 使用浮點標號位元表示的神經網路訓練方法 |
Country Status (2)
| Country | Link |
|---|---|
| US (1) | US11170297B2 (zh) |
| TW (1) | TWI664585B (zh) |
Cited By (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| WO2021044227A1 (en) * | 2019-09-03 | 2021-03-11 | International Business Machines Corporation | Neural network circuitry having floating point format with asymmetric range |
Families Citing this family (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US10817042B2 (en) * | 2018-09-27 | 2020-10-27 | Intel Corporation | Power savings for neural network architecture with zero activations during inference |
Citations (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| TWI579694B (zh) * | 2015-10-08 | 2017-04-21 | 上海兆芯集成電路有限公司 | 同時執行長短期記憶胞計算之神經網路單元 |
| TWI635446B (zh) * | 2014-07-22 | 2018-09-11 | 英特爾股份有限公司 | 權重位移裝置、方法、系統以及機器可存取儲存媒體 |
Family Cites Families (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| GB2537419B (en) * | 2015-04-17 | 2021-09-01 | Advanced Risc Mach Ltd | Accumulation of floating-point values |
| US10713558B2 (en) * | 2016-12-30 | 2020-07-14 | Intel Corporation | Neural network with reconfigurable sparse connectivity and online learning |
-
2018
- 2018-03-30 TW TW107111198A patent/TWI664585B/zh active
- 2018-06-05 US US16/000,857 patent/US11170297B2/en active Active
Patent Citations (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| TWI635446B (zh) * | 2014-07-22 | 2018-09-11 | 英特爾股份有限公司 | 權重位移裝置、方法、系統以及機器可存取儲存媒體 |
| TWI579694B (zh) * | 2015-10-08 | 2017-04-21 | 上海兆芯集成電路有限公司 | 同時執行長短期記憶胞計算之神經網路單元 |
Cited By (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| WO2021044227A1 (en) * | 2019-09-03 | 2021-03-11 | International Business Machines Corporation | Neural network circuitry having floating point format with asymmetric range |
Also Published As
| Publication number | Publication date |
|---|---|
| US20190303756A1 (en) | 2019-10-03 |
| TW201942807A (zh) | 2019-11-01 |
| US11170297B2 (en) | 2021-11-09 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| KR102732517B1 (ko) | 뉴럴 네트워크에서 파라미터를 처리하는 방법 및 장치 | |
| CN109308520B (zh) | 实现softmax函数计算的FPGA电路及方法 | |
| CN111758104B (zh) | 适合于硬件实现的神经网络参数优化方法、神经网络计算方法和装置 | |
| JP7174243B2 (ja) | 情報処理装置、ニューラルネットワークプログラム、ニューラルネットワークの処理方法 | |
| WO2018034163A1 (ja) | 積和演算装置 | |
| TW201508694A (zh) | 影像形狀校正方法以及應用影像形狀校正方法之影像形狀校正裝置 | |
| JPH0713949A (ja) | ニューラルネットワークおよびその使用方法 | |
| US11106431B2 (en) | Apparatus and method of fast floating-point adder tree for neural networks | |
| KR20220033713A (ko) | 데이터 처리 시스템 및 그 동작 방법 | |
| CN114556373B (zh) | 用于大规模并行神经推理引擎的多模式低精度内积计算电路 | |
| TWI664585B (zh) | 使用浮點標號位元表示的神經網路訓練方法 | |
| CN118569342A (zh) | 用于以降低精度进行深度神经网络训练的损失缩放 | |
| KR20220040234A (ko) | 뉴럴 네트워크의 파라미터들을 양자화하는 방법 및 장치 | |
| Wei et al. | P-SFA: Probability based sigmoid function approximation for low-complexity hardware implementation | |
| JPH07191950A (ja) | 計算ネットワーク | |
| Niknia et al. | ASIC Design of Nanoscale Artificial Neural Networks for Inference/Training by Floating-Point Arithmetic | |
| KR102494095B1 (ko) | 인공 신경망 학습 장치 및 방법 | |
| WO2022247368A1 (en) | Methods, systems, and mediafor low-bit neural networks using bit shift operations | |
| CN113516171B (zh) | 基于贝叶斯神经网络随机加法分解结构的图像分类方法 | |
| KR102478256B1 (ko) | 랭크 오더 코딩 기반 스파이킹 cnn 연산 방법 및 그 처리기 | |
| CN115329936A (zh) | 一种神经形态计算平台 | |
| WO2023128792A1 (en) | Transformations, optimizations, and interfaces for analog hardware realization of neural networks | |
| CN117852596A (zh) | 用于硬件量化过程的数学建模的系统和方法 | |
| Su et al. | Processing element architecture design for deep reinforcement learning with flexible block floating point exploiting signal statistics | |
| CN114444667A (zh) | 训练神经网络的方法及装置、电子设备 |