TWI813414B - 用於最佳化神經網路訓練之電腦實施之方法、系統及非暫時性電腦可讀取儲存媒體 - Google Patents
用於最佳化神經網路訓練之電腦實施之方法、系統及非暫時性電腦可讀取儲存媒體 Download PDFInfo
- Publication number
- TWI813414B TWI813414B TW111130736A TW111130736A TWI813414B TW I813414 B TWI813414 B TW I813414B TW 111130736 A TW111130736 A TW 111130736A TW 111130736 A TW111130736 A TW 111130736A TW I813414 B TWI813414 B TW I813414B
- Authority
- TW
- Taiwan
- Prior art keywords
- tensor
- sparse
- derivative
- weight
- dense
- Prior art date
Links
- 238000013528 artificial neural network Methods 0.000 title claims abstract description 112
- 238000000034 method Methods 0.000 title claims abstract description 78
- 238000012549 training Methods 0.000 title claims abstract description 62
- 230000006870 function Effects 0.000 claims description 31
- 230000015654 memory Effects 0.000 claims description 31
- 230000004913 activation Effects 0.000 claims description 18
- 230000017105 transposition Effects 0.000 claims description 3
- 238000004590 computer program Methods 0.000 abstract description 2
- 230000005284 excitation Effects 0.000 description 22
- 238000005070 sampling Methods 0.000 description 12
- 239000011159 matrix material Substances 0.000 description 10
- 238000004422 calculation algorithm Methods 0.000 description 7
- 238000004891 communication Methods 0.000 description 7
- 238000012986 modification Methods 0.000 description 4
- 230000004048 modification Effects 0.000 description 4
- 238000012545 processing Methods 0.000 description 4
- 238000007792 addition Methods 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 230000008569 process Effects 0.000 description 3
- 238000013138 pruning Methods 0.000 description 3
- 238000013473 artificial intelligence Methods 0.000 description 2
- 238000004364 calculation method Methods 0.000 description 2
- 230000008859 change Effects 0.000 description 2
- 238000013500 data storage Methods 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 238000010801 machine learning Methods 0.000 description 2
- 230000000873 masking effect Effects 0.000 description 2
- 101100153586 Caenorhabditis elegans top-1 gene Proteins 0.000 description 1
- 101100537629 Caenorhabditis elegans top-2 gene Proteins 0.000 description 1
- 101100370075 Mus musculus Top1 gene Proteins 0.000 description 1
- 101150107801 Top2a gene Proteins 0.000 description 1
- 238000013527 convolutional neural network Methods 0.000 description 1
- 238000013135 deep learning Methods 0.000 description 1
- 230000001934 delay Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 239000012634 fragment Substances 0.000 description 1
- 238000010191 image analysis Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000003058 natural language processing Methods 0.000 description 1
- 210000002569 neuron Anatomy 0.000 description 1
- 238000013468 resource allocation Methods 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 238000000638 solvent extraction Methods 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 230000001131 transforming effect Effects 0.000 description 1
- 239000013598 vector Substances 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR 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; CALCULATING OR 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/048—Activation functions
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR 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/0499—Feedforward networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR 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/084—Backpropagation, e.g. using gradient descent
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Health & Medical Sciences (AREA)
- Computing Systems (AREA)
- Biomedical Technology (AREA)
- Biophysics (AREA)
- Computational Linguistics (AREA)
- Data Mining & Analysis (AREA)
- Evolutionary Computation (AREA)
- Life Sciences & Earth Sciences (AREA)
- Molecular Biology (AREA)
- Artificial Intelligence (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Health & Medical Sciences (AREA)
- Complex Calculations (AREA)
- Measuring Volume Flow (AREA)
- Measuring Pulse, Heart Rate, Blood Pressure Or Blood Flow (AREA)
- Rehabilitation Tools (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
Abstract
本發明描述用於最佳化神經網路訓練之方法、系統及裝置,包含編碼在電腦儲存媒體上之電腦程式。該方法可包含:在一正向傳播期間於一神經網路之一當前層處,基於該當前層之一稀疏輸入張量及一稀疏權重張量產生一稠密輸出張量,及稀疏化該稠密輸出張量以獲得一稀疏輸出張量;在一反向傳播期間於該神經網路之該當前層處:基於該稀疏輸出張量判定一第一稀疏導數張量,基於該當前層之該第一稀疏導數張量及該稀疏權重張量獲得一稠密導數張量,及稀疏化該稠密導數張量以獲得一第二稀疏導數張量;及基於該第一稀疏導數張量及該第二稀疏導數張量來訓練該神經網路之權重張量。
Description
本發明大體上關於人工智慧(AI)模型之訓練,更具體地,關於一庫-平衡神經網路(NN)之聯合激勵-權重-稀疏(以下稱為聯合A-W-稀疏)訓練。
神經網路(NN)當前係諸多現代人工智慧(AI)應用之基礎,諸如影像及視訊識別、推薦系統、分類、醫學影像分析及自然語言處理。在部署一NN進行推理之前,需要對其進行訓練。訓練一NN模型涉及使用一訓練資料集反覆更新模型權重,以建立輸入至輸出之一精確映射。現今之NN訓練程序大體上包含大量正向傳播及反向傳播之反覆。歸因於要運算之大量訓練資料(例如,在一CNN中卷積)及在各訓練反覆期間要訓練/更新之權重之數量,NN模型之訓練係運算稠密的,且因此成本高昂。
近年來,已開發各種方法來藉由將稀疏性引入NN來提高NN之效率,諸如修剪NN之權重張量,以減少訓練NN模型之大小及要運算用於推理之資料量。然而,稀疏性尚未被充分利用來提升用於NN之訓
練速度。本發明描述一種在正向傳播及反向傳播兩者期間引入稀疏性之一新解決方案,以提高NN訓練程序之效率。此外,引入權重張量及激勵張量之稀疏性被調適為庫-平衡,以便最佳化硬體效率。
本說明書之各種實施例可包含用於最佳化神經網路訓練之系統、方法及非暫時性電腦可讀取媒體。
根據一個態樣,該方法可包含:在一正向傳播期間於一神經網路之一當前層處,基於該當前層之一稀疏輸入張量及一稀疏權重張量產生一稠密輸出張量;及藉由稀疏化該稠密輸出張量來獲得一稀疏輸出張量;在一反向傳播期間於該神經網路之該當前層處,基於該稀疏輸出張量判定一第一稀疏導數張量;基於該當前層之該第一稀疏導數張量及該稀疏權重張量獲得一稠密導數張量;及藉由稀疏化該稠密導數張量獲得一第二稀疏導數張量;及基於該第一稀疏導數張量及該第二稀疏導數張量來訓練該神經網路之權重張量。
在一些實施例中,該稠密輸出張量包括該當前層之該稀疏輸入張量及該稀疏權重張量之一張量積;且該稠密導數張量包括該當前層之該第一稀疏導數張量及該稀疏權重張量之一張量積。
在一些實施例中,訓練該神經網路之該等權重張量包括:基於該第二稀疏導數張量判定一前一層之一新稀疏權重張量。
在一些實施例中,訓練該神經網路之該等權重張量包括:基於該第一稀疏導數張量及該稀疏輸入張量來判定該當前層之一新稀疏權重張量。
在一些實施例中,該神經網路之該當前層對應於一權重張
量遮罩,且判定該當前層之一新稀疏權重張量包括:基於該第一稀疏導數張量及該稀疏輸入張量之一轉置之一張量積來獲得一稠密導數權重張量;及藉由將該權重張量遮罩應用於該稠密導數權重張量停用該稠密導數權重張量中之一個或多個權重,以獲得該當前層之該新稀疏權重張量。
在一些實施例中,該稠密導數權重張量包括對應於該神經網路之該當前層處之複數個權重參數之複數個梯度。
在一些實施例中,判定該當前層之一新稀疏權重張量包括:基於該第一稀疏導數張量及該稀疏輸入張量之一轉置之一張量積來獲得一稠密導數權重張量;及將一top-K激勵函數應用於該稠密導數權重張量,以獲得該當前層之該新稀疏權重張量。
在一些實施例中,應用該top-K激勵函數包括:將該稠密導數權重張量之各列或行劃分為對應於處理器之記憶體庫之複數個庫;且對於該複數個庫中之各者,判定該庫中之top-K個權重且停用該庫中不係該等top-K個權重之權重。
在一些實施例中,藉由稀疏化該稠密輸出張量來獲得一稀疏輸出張量包括:將一top-K激勵函數應用於該稠密輸出張量以獲得該稀疏輸出張量;且藉由稀疏化該稠密導數張量來獲得一第二稀疏導數張量包括:將該top-K激勵函數應用於該稠密導數張量以獲得該第二稀疏導數張量。
在一些實施例中,該神經網路之該當前層包括一稠密權重張量且對應於一權重張量遮罩,且該當前層之該稀疏權重張量藉由以下步驟獲得:藉由將該權重張量遮罩應用於該稠密權重張量停用該稠密權重張量中之一個或多個權重,以獲得該稀疏權重張量。
根據另一態樣,描述一種用於最佳化神經網路訓練之系統。該系統可包括一個或多個處理器及一個或多個非暫時性電腦可讀取記憶體,該等非暫時性電腦可讀取記憶體耦合至該一個或多個處理器且經組態有可由該一個或多個處理器執行之指令以使該系統執行操作,該等操作包含:在一正向傳播期間於一神經網路之一當前層處,基於該當前層之一稀疏輸入張量及一稀疏權重張量產生一稠密輸出張量;及藉由稀疏化該稠密輸出張量以獲得一稀疏輸出張量;在一反向傳播期間於該神經網路之該當前層處:基於該稀疏輸出張量判定一第一稀疏導數張量;基於該當前層之該第一稀疏導數張量及該稀疏權重張量獲得一稠密導數張量;及藉由稀疏化該稠密導數張量來獲得一第二稀疏導數張量;及基於該第一稀疏導數張量及該第二稀疏導數張量來訓練該神經網路之權重張量。
根據另一態樣,描述一種用於最佳化神經網路訓練之非暫時性電腦可讀取儲存媒體。該非暫時性電腦可讀取儲存媒體可經組態有可由一個或多個處理器執行之指令,以使該一個或多個處理器執行操作,該等操作包括:在一正向傳播期間於一神經網路之一當前層處,基於該當前層之一稀疏輸入張量及一稀疏權重張量產生一稠密輸出張量;及藉由稀疏化該稠密輸出張量以獲得一稀疏輸出張量;在一反向傳播期間於該神經網路之該當前層處,基於該稀疏輸出張量判定一第一稀疏導數張量;基於該當前層之該第一稀疏導數張量及該稀疏權重張量獲得一稠密導數張量;及藉由稀疏化該稠密導數張量來獲得一第二稀疏導數張量;及基於該第一稀疏導數張量及該第二稀疏導數張量來訓練該神經網路之權重張量。
本文揭示之該等系統、方法及非暫時性電腦可讀取媒體之此等及其他特徵,及結構之該等相關元件之該等操作方法及功能及部件之
組合及製造之經濟性,在參考附圖考慮以下描述及隨附申請專利範圍後將變得更加明白,所有附圖形成本說明書之一部分,其中相同元件符號指示各種附圖中之對應部件。然而,應明確理解,附圖僅用於說明及描述之目的,且不意在定義本發明之限制。
100:訓練程序
110:正向傳播/正向傳遞
120:反向傳播/反向傳遞
130:層/權重梯度更新
520:稀疏遮罩
530:庫
610:逐列稀疏化
620:逐行稀疏化
630:方法
640:方法
650:方法
700:方法
710:方塊
720:方塊
730:方塊
800:運算設備
802:匯流排
804:硬體處理器
807:主記憶體
809:儲存設備
810:通信介面
圖1繪示根據各種實施例之一神經網路(NN)之一例示性訓練程序。
圖2繪示根據各種實施例之NN之一例示性聯合-AW-稀疏訓練。
圖3繪示根據各種實施例之NN之一聯合-AW-稀疏訓練中之一例示性正向傳播。
圖4繪示根據各種實施例的之NN之一聯合-AW-稀疏訓練中之一例示性反向傳播。
圖5A繪示根據各種實施例之庫-平衡NN之一聯合-AW-稀疏訓練中之一例示性權重梯度更新程序。
圖5B繪示根據各種實施例之用於更新庫-平衡NN之一聯合-AW-稀疏訓練中權重梯度之一例示性方法。
圖5C繪示根據各種實施例之用於更新庫-平衡NN之一聯合-AW-稀疏訓練中之權重梯度之另一例示性方法。
圖6A繪示根據各種實施例之用於產生庫-平衡稀疏化張量之一例示性2D稀疏化。
圖6B繪示根據各種實施例之用於產生庫-平衡稀疏化張量之一例示性3D稀疏化。
圖7繪示根據各種實施例之用於一庫-平衡NN之聯合-AW-稀疏訓練之一實例方法。
圖8繪示其中可實施本文描述之任何實施例之一實例電腦系統。
本文描述之實施例提供用於一庫-平衡NN之聯合激勵權重稀疏(以下稱為聯合-A-W-稀疏)訓練之方法、系統、裝置。在下文描述中,將參考附圖描述本發明之特定非限制性實施例。本文揭示之任何實施例之特定特徵及態樣可與本文揭示之任何其他實施例之具體特徵及態樣一起使用及/或組合。亦應暸解,此等實施例為實例的,且僅為本發明之範疇內之少量實施例之說明。對於本發明所屬之習知技術者而言顯而易見之各種變化及修改被視為如隨附申請專利範圍中進一步定義之本發明之精神、範疇及設想之內。
圖1繪示根據各種實施例之一神經網路(NN)之一例示性訓練程序100。本發明中描述之實施例可被實施為圖1中之說明性訓練程序之一部分或另一合適NN訓練方法,以提高訓練效率。
如圖1所展示,一例示性NN包含複數個層130,例如,層1、2、3、…、L、…等。各層130可包含複數個參數,諸如一權重張量、一偏置張量等。「張量」指深度學習領域中之一主要資料結構,包含秩-1張量(向量)、秩-2張量(矩陣)及更高秩張量。
說明性訓練程序100包含複數個反覆以訓練NN之參數。各反覆可包含一正向傳播(或正向傳遞)110及一反向傳播(或反向傳遞)120。正向傳播110涉及以自輸入層至輸出層之順序為一神經網路計算及儲存中
間變數(包含輸出)。反向傳播120涉及計算NN參數之梯度,該梯度可用作更新NN之參數之基礎。
為了說明目的,選擇圖1中之層L作為一實例來描述正向傳播110及反向傳播120中涉及之操作。假設來自前面L-1層之一輸入張量係a[L-1],且層L具有一權重項(例如,一權重張量)w[L]及一偏置項(例如,一偏置張量)b[L]。中間變數可計算及表示為z[L]=w[L]a[L-1]+b[L],其中w及a都為張量,且z為w及a之一張量積。在透過一激勵函數Φ運行中間變數z後,可獲得一激勵張量,即a[L+1]=(z)。此激勵張量a[L+1]可用作L+1(下一)層處之正向傳播之一輸入。在某些情況下,z[L]可作為一中間變數儲存在一快取記憶體中,用於在反向傳播120期間進行計算(例如,避免重複運算)。此外,權重張量w[L]及偏置張量b[L]亦可儲存在一快取記憶體中,以避免反向傳播120期間不必要之外部記憶體存取。正向傳播程序繼續到NN之輸出層。輸出層之輸出張量可與訓練資料之(若干)訓練標籤一起被饋送到一損失函數中,以判定一損失(例如,有關當前參數之NN之一量化效能)。接著該損失可與一正則化項(諸如L2正則化)組合以判定一目標函數。
反向傳播120之目標係計算梯度。接著可使用梯度來更新NN之對應權重參數,以最小化損失或最大化目標函數。在反向傳播120期間,可穿過所有層反覆地運算激勵張量之導數。例如,在NN之第L層中,第L層之激勵張量之導數可獲得為▽a[L]。第L層w[L]之權重張量可乘以▽a[L]以獲得第(L-1)層之激勵張量之導數。此程序可繼續直至NN之第一層。此處,乘法可指獲得兩個張量之一張量積之一運算。在層L處,導數▽a[L]及輸入張量a[L]之轉置之張量積可運算為第L層處之權重張量之導
數,表示為▽W[L]。基於▽W[L],可相應地更新第L層處之權重參數以適於訓練資料。可注意到,以上描述之導數亦可稱為對應變數之梯度。
在一些實施例中,可將稀疏性引入以上描述之各步驟,包含正向傳播、反向傳播及權重梯度運算,以提高訓練效率。現有基於稀疏之NN訓練方法通常注重正向傳播(例如,藉由修剪正向傳遞中之張量),而忽略反向傳播。下面描述之實施例描述一種方法及一種系統,其中在正向傳播及反向傳播兩者中修剪之所有張量,包含導數張量,以最佳化訓練效率。此外,在各輪反向傳播之後,以一庫-平衡方式修剪各層處之更新權重張量,使得所得訓練NN針對底層硬體架構進行最佳化,諸如與處理器(例如,GPU、TPU、NPU)中之記憶體庫對齊。庫-平衡NN可支援使用多核心系統之平衡並行處理(核心上之負載為平衡的),且藉由最小化庫衝突(避免對某些庫之存取擁塞)來最佳化推理期間之記憶體存取。對於在庫中儲存資訊之記憶體類型,當使用隨機位址連續存取一相同庫時,可發生一庫衝突。例如,若兩個連續存取位於一相同庫中之不同列上,則此等兩個存取可不同時執行。事實上,對於諸多類型之記憶體(例如,DDR),在一相同庫上之各記憶體存取之間可存在多個延遲週期。例如,若一下一個記憶體存取位於相同庫中之一不同列上,則下一個記憶體存取可需要等待12個週期後才能完成。因此,庫衝突可導致系統中之嚴重延遲。
圖2繪示根據各種實施例之NN之一例示性聯合-AW-稀疏訓練。圖2所繪示之訓練程序涉及在一個NN層處發生之正向傳播110、反向傳播120及權重梯度更新130。圖2中使用之索引用於說明目的,且僅用於指示層之相對位置,其可推廣到NN之其他層。
在正向傳播110期間,可自前一層接收一輸入激勵張量。
在一些實施例中,可將此輸入激勵張量修剪成一稀疏輸入張量,在圖2中表示為A1,其中索引1指示當前層為層1。接著可使用張量乘法將稀疏輸入張量與層1處之權重張量相乘,以獲得下一層之一輸出張量。在一些實施例中,當前層1處之權重張量可被修剪成一稀疏權重張量,表示為W,以減小NN之大小及待處理之資料量。如圖2所展示,歸因於張量乘法之性質,基於兩個稀疏張量(即A1及W)產生之張量積R1可為稠密的。
在一些實施例中,此稠密張量積R1可經過激勵操作及/或top-K取樣以減少非零值且獲得表示為A2之一稀疏輸出張量,其中索引2指示A2將被用作正向傳播程序110中之下一層之輸入張量。激勵操作可包含將非線性引入NN之非線性激勵函數。例示性非線性激勵函數包含S形、雙曲正切及整流線性單元(ReLU)。ReLU函數可應用一逐元件激勵函數以過濾稠密張量積R1中之一些輸出(激勵)。一ReLU函數可不改變輸出激勵張量之大小,但可限制活動神經元之數量,以提高以下層之運算效率。top-K取樣可涉及選擇稠密張量積R1內之各庫中具有最大量值之K個值以保持其等值,且將庫中之其他值設置為零。此等激勵及/或top-k操作有效地減少訓練期間張量之足跡,而不犧牲準確性,因為只有具有小絕對值之非重要值/特徵被調到零或修剪。
以上描述之正向傳播110繼續且終止於NN之最後層(例如,輸出層)。之後,反向傳播120可在一反轉方向(例如,自NN之最後層至第一層)上執行,以運算梯度,以便更新NN之權重及/或其他參數。在一些實施例中,圖2中NN之層1處之反向傳播120可基於稀疏輸出張量A2從運算一導數張量開始,表示為▽R1。由於A2為稀疏的,導數張量▽R1亦為稀疏的。此處,可藉由對稀疏輸出張量A2中之各非零值執行導數運算來獲
得導數張量。在一些實施例中,此導數張量▽R1可以兩種方式使用。
首先,其可用作反向傳播120之一中間值。例如,層1處之稀疏權重張量之張量積可與稀疏導數張量▽R1相乘以獲得稀疏輸入張量A1之一導數版本,其可表示為▽A1。如上文所解釋,兩個稀疏張量(例如,W及▽R1)之積可為稠密的。在一些實施例中,激勵及/或top-K取樣可應用於修剪▽A1以獲得前一層(例如,層0)之一稀疏導數張量▽R0。稀疏導數張量▽R0可用於反向傳播120中之下一步。
其次,▽R1可用於更新層1處之權重梯度130。例如,如圖2所展示,層1處之稀疏輸入張量A1及層1處之稀疏導數張量▽R1之張量積可為指示權重參數梯度之一稠密張量,表示為▽W。權重參數之梯度▽W可進一步修剪成一稀疏梯度張量,用於更新權重參數。
如圖所展示,以上描述之NN之聯合-AW-稀疏訓練在訓練之各步驟中利用稀疏性,包含正向傳播110(例如,激勵及/或top-K操作將R1修剪成A2)及反向傳播120(例如,激勵及/或top-K操作將▽A1修剪成▽R0)兩者中之步驟。圖5進一步描述在更新權重梯度更新程序130中如何引入稀疏性。
圖3繪示根據各種實施例之NN之一聯合-AW-稀疏訓練中之一例示性正向傳播。圖3所繪示之程序提供關於圖2中之正向傳播110之更多細節。圖3中之值及表示用於說明目的。
在圖3中,在NN之當前層處接收稀疏輸入張量A1,以與當前層之一權重張量W執行運算,例如矩陣乘法。圖3將張量A1及W兩者展示為2D矩陣。在一些實施例中,可藉由應用一稀疏權重張量遮罩來修剪權重張量W,該稀疏權重張量遮罩遮罩掉權重張量中之一些權重。被遮罩
之權重可被認為被設置為零或被停用。在一些實施例中,NN之各層可具有一個對應稀疏權重張量遮罩。可基於權重張量中之權重之量值來判定稀疏權重張量遮罩,其中具有較小量值之權重具有一更大機會被遮罩為零。
在一些實施例中,可將稀疏A1及稀疏W相乘成一稠密張量R1,接著可藉由經歷一激勵函數、一top-K取樣或兩者修剪稠密張量R1,以獲得一稀疏張量A2。
圖4繪示根據各種實施例之NN之一聯合-AW-稀疏訓練中之一例示性反向傳播。圖3中所繪示之程序提供關於圖2中之反向傳播120之更多細節。圖4中之值及表示用於說明目的。
在圖4中,導數張量▽R1可基於圖2及圖3中之稀疏輸出張量A2產生。由於A2為稀疏的,且導數運算不改變零值,因此得到之導數張量▽R1亦為稀疏的。可使用圖3中描述之稀疏權重張量遮罩修剪NN之當前層處之權重張量W。兩個稀疏張量▽R1及W之產生可為一稠密張量,表示為▽A1,可藉由經歷一激勵、top-K取樣或兩者進一步修剪▽A1,以獲得稀疏張量▽R0。稀疏張量亦可用於更新前一層(例如,層0)處之權重張量,此於圖5A中描述。
圖5A繪示根據各種實施例之庫-平衡NN之一聯合-AW-稀疏訓練中之一例示性權重梯度更新程序。使用圖2至圖4中描述之正向傳播及反向傳播,對於NN之各層可獲得一稀疏導數張量,其中i係指該層之索引。在圖5A中,假設已獲得。
例如,在圖5A中之選項1中,圖3中描述之稀疏權重張量遮罩可應用於稠密導數張量▽ W 以獲得一稀疏導數張量▽ W '。稀疏權重張量遮罩可將一些權重識別為當前層處之非必要權重,且將此等權重設置為零(例如,停用此等權重或對應於此等權重之激勵)。圖5B繪示展示根據各種實施例之用於在庫-平衡NN之一聯合-AW-稀疏訓練中更新權重梯度之選項1之一圖式。如圖5B所展示,現有稀疏遮罩520被應用於稠密導數張量▽ W 以獲得一稀疏導數張量。現有稀疏遮罩520含有複數個零值,以遮罩稠密導數張量▽ W 中之對應權重。
作為另一實例,在圖5A中之選項2中,稠密導數張量▽ W 可被分段成大小相等之複數個庫。圖5C繪示展示根據各種實施例之用於更新在庫-平衡NN之一聯合-AW-稀疏訓練中之權重梯度之選項2之一圖式。圖5C中之庫530可取決於實施方案以不同方式定義。例如,庫530可為稠密導數張量▽ W 內之一行或一列。在各庫530內,可執行一top-K取樣以識別具有最大量值(最大正值及負值)之K個權重,且將庫530內之其他權重設置為零,藉此產生稀疏導數張量▽ W '。使用此基於top-K取樣之修剪方法,產生之▽ W '可為庫-平衡的,即,各庫530包含相同數量之非零值。在實際應用中,張量之各庫530可對應於(例如,儲存於)底層硬體之一區域記憶體(例如,一NN訓練加速器中之一快取記憶體、一外部記憶體)中之一片段。因此,一庫-平衡張量可在區域記憶體之不同片段之間均勻地分佈非零值,此可促成用於訓練及推理之一更平衡並行處理方案。在下文描述中,圖6A及圖6B中描述產生庫-平衡稀疏化張量之不同方式。
圖6A繪示根據各種實施例之用於產生庫-平衡稀疏化張量之一例示性2D稀疏化。在圖6A中,要修剪之張量為一2D矩陣。例如,假
設一輸入張量或一權重張量為一3D張量,則可將其與三個維度中之一個維度(例如通道維度)一起分段,以獲得複數個2D矩陣。圖6A中所繪示之例示性2D稀疏化方法可應用於複數個2D矩陣中之各者。圖6A中之張量可指NN上下文中之一權重張量或一激勵張量。
如圖所展示,指示為Y 1之一2D稠密矩陣可具有大量非零值。有兩種方法可產生矩陣之一庫-平衡及稀疏化版本:逐列稀疏化610及逐行稀疏化620。例如,在一逐列稀疏化610中,2D稠密矩陣之各列可被分段成一大小相等之複數個庫。在各庫內,執行一top-K取樣,以保留具有最大量值之K個非零值,且將其他值設置為零。在圖6A中,2D矩陣之各列被分段成兩個庫,且對各庫應用一top-2取樣以在其中保持2個非零值。作為另一實例,在一逐行稀疏化620中,2D稠密矩陣之各行可被分段成一大小相等之複數個庫。在各庫中,執行一top-K取樣,以保留具有最大量值之K個非零值,且將其他值設置為零。在圖6A中,2D稠密矩陣之各行被分段成2個庫,且對各庫應用一top-1取樣以在其中保持1個非零值。
在一些實施例中,在以上描述之聯合-AW-稀疏訓練程序期間,逐列稀疏化或逐行稀疏化可應用於NN之不同層。例如,在圖5A所展示之權重梯度更新步驟期間,可使用逐列或逐行稀疏化來修剪稠密權重梯度張量▽ W ,以獲得稀疏權重梯度張量。不同層可部署不同稀疏化方法以實現最佳效能。
圖6B繪示根據各種實施例之用於產生庫-平衡稀疏化張量之一例示性3D稀疏化。在圖6B中,假設要修剪之張量為一3D矩陣,其可為在一NN中之一個層處獲得之一激勵張量或一權重張量。作為圖6B所展
示之一實例,激勵張量Y1可為基於一輸入張量X、一權重張量W及一偏置張量B獲得。激勵張量Y1可具有三個維度:一高度維度、一寬度維度及一通道維度。
有若干方法可基於3D稠密矩陣產生庫-平衡及稀疏化張量,諸如圖6B所繪示之630至650。此等方法在如何定義一庫上有所不同。例如,在方法630中,一個通道被視為一庫,例如,前平面/表面可被視為一庫。作為另一實例,在方法640中,各通道可被劃分為相同大小之複數個庫。作為另一實例,在方法650中,可將多個通道視為一個庫。在定義庫之後,可對各庫執行一top-K取樣,以保留具有最大量值之K個非零值,且將其他值設置為零。在一些實施例中,將庫分段之不同方式可需要不同儲存方案,以容許各庫內之資料實體上位於記憶體中的相同位置。連續儲存各庫可促成順序讀取(減少記憶體存取之數量),且均勻分佈非零資料,以便更好地進行並行處理。
與圖6A中描述之2D稀疏化方法相比,3D稀疏化可在更多維度上保持固有權重關係,而2D稀疏化可更易於實施。取決於用例及偏好,可部署任一稀疏化方法來產生庫-平衡及稀疏張量。
圖7繪示根據各種實施例之用於一庫-平衡NN之聯合-AW-稀疏訓練之一實例方法。方法700可由用於最佳化資源配置之一設備、裝置或系統來執行。下文呈現之方法700之操作意在說明性的。取決於實施方案,方法700可包含以各種順序或並存執行之額外、更少或替代步驟。
方塊710包含在一正向傳播期間於一神經網路之一當前層處:基於當前層之一稀疏輸入張量及一稀疏權重張量產生一稠密輸出張量;且藉由稀疏化稠密輸出張量來獲得一稀疏輸出張量。在一些實施例
中,稠密輸出張量包括當前層之稀疏輸入張量及稀疏權重張量之一張量積;且稠密導數張量包括當前層之第一稀疏導數張量及稀疏權重張量之一張量積。在一些實施例中,藉由稀疏化稠密輸出張量來獲得一稀疏輸出張量包括:將一top-K激勵函數應用於稠密輸出張量以獲得稀疏輸出張量;且藉由稀疏化稠密導數張量來獲得一第二稀疏導數張量包括:將top-K激勵函數應用於稠密導數張量以獲得第二稀疏導數張量。在一些實施例中,神經網路之當前層包括一稠密權重張量且對應於一權重張量遮罩,且當前層之稀疏權重張量藉由以下方式獲得:藉由將權重張量遮罩應用於稠密權重張量來停用稠密權重張量中之一個或多個權重,以獲得稀疏權重張量。
方塊720包含在一反向傳播期間於神經網路之當前層處:基於稀疏輸出張量判定一第一稀疏導數張量;基於當前層之第一稀疏導數張量及稀疏權重張量來獲得一稠密導數張量;及藉由稀疏化稠密導數張量來獲得一第二稀疏導數張量。
方塊730基於第一稀疏導數張量及第二稀疏導數張量來訓練神經網路之權重張量。在一些實施例中,訓練神經網路之權重張量包括:基於第二稀疏導數張量判定一前一層之一新稀疏權重張量。在一些實施例中,訓練神經網路之權重張量包括:基於第一稀疏導數張量及稀疏輸入張量判定當前層之一新稀疏權重張量。
在一些實施例中,神經網路之當前層對應於一權重張量遮罩,且判定當前層之一新稀疏權重張量包括:基於第一稀疏導數張量及稀疏輸入張量之一轉置之一張量積來獲得一稠密導數權重張量;及藉由將權重張量遮罩應用於稠密導數權重張量來停用稠密導數權重張量中之一個或多個權重,以獲得當前層之新稀疏權重張量。
在一些實施例中,稠密導數權重張量包括對應於神經網路之當前層處之複數個權重參數之複數個梯度。在一些實施例中,判定當前層之一新稀疏權重張量包括:基於第一稀疏導數張量及稀疏輸入張量之一轉置之一張量積獲得一稠密導數權重張量;及將一top-K激勵函數應用於稠密導數權重張量以獲得當前層之新稀疏權重張量。
在一些實施例中,應用top-K激勵函數包括:將稠密導數權重張量之各列或行劃分為對應於處理器之記憶體庫之複數個庫;且對於複數個庫中之各者,判定庫中之top-K個權重且停用該庫中不為top-K個權重之權重。
圖8繪示其中可實施本文描述之任何實施例之一實例運算設備。運算設備可用於實施圖1至圖7所展示之系統及方法之一個或多個組件。運算設備800可包括用於通信資訊之一匯流排802或其他通信機制,及與匯流排802耦合用於處理資訊之一個或多個硬體處理器804。(若干)硬體處理器804可為例如一個或多個通用微處理器。
運算設備800亦可包含一主記憶體807,諸如隨機存取記憶體(RAM)、快取記憶體及/或其他動態儲存設備,其耦合至匯流排802,用於儲存資訊及將由(若干)處理器804執行之指令。主記憶體807亦可用於在將由(若干)處理器804執行之指令之執行期間儲存臨時變數或其他中間資訊。當此等指令儲存在(若干)處理器804可存取之儲存媒體中時,可將運算設備800呈現為一專用機器,該專用機器被定制為執行指令中指定之操作。主記憶體807可包含非揮發性媒體及/或揮發性媒體。非揮發性媒體可包含例如光碟或磁碟。揮發性媒體可包含動態記憶體。常見形式之媒體可包含,例如,一軟碟、一軟性磁碟、硬碟、固體驅動器、磁帶或任何其他
磁性資料儲存媒體、一CD-ROM、任何其他光學資料儲存媒體、具有孔之圖案之任何實體媒體、一RAM、一DRAM、一PROM,及EPROM、一FLASH-EPROM、NVRAM、任何其他記憶體晶片或匣,或其等之網路版本。
運算設備800可使用定制之硬佈線邏輯、一個或多個ASIC或FPGA、韌體及/或程式邏輯來實施本文描述之技術,其等與運算設備組合可使運算設備800成為或程式化為一專用機器。根據一個實施例,本文中之技術由運算設備800回應於(若干)處理器804執行主記憶體807中含有之一個或多個指令之一個或多個序列而執行。此等指令可自另一儲存媒體(諸如儲存設備809)讀入主記憶體807。主記憶體807中所含有之指令序列之執行可導致(若干)處理器804執行本文描述之處理步驟。例如,本文揭示之程序/方法可由儲存在主記憶體807中之電腦程式指令來實施。當此等指令由(若干)處理器804執行時,其等可執行如對應圖所展示及上文所描述之步驟。在替代實施例中,硬佈線電路可代替軟體指令或與軟體指令組合使用。
運算設備800亦包含耦合至匯流排802之一通信介面810。通信介面810可提供一雙向資料通信,其耦合至一個或更多個網路鏈路,該等網路鏈路連接至一個或多個網路。作為另一實例,通信介面810可為一區域網路(LAN)卡,用以提供到一相容LAN(或要與一WAN通信之WAN組件)之一資料通信連接。亦可實施無線鏈路。
某些操作之效能可分佈在處理器之間,不僅駐留在一單一機器內,而且部署在多台機器上。在一些實例實施例中,處理器或處理器實施引擎可位於一單一地理位置(例如,在一家庭環境、一辦公室環境或
一伺服器場內)。在其他實例實施例中,處理器或處理器實施引擎可分佈在多個地理位置上。
前面章節中描述之程序、方法及演算法之各者可體現在由一個或多個電腦系統或包括電腦硬體之電腦處理器執行之代碼模組中,且由其完全或部分自動化。程序及演算法可部分地或全部地在專用電路中實施。
當本文揭示之功能以軟體功能單元之形式實施且作為一獨立產品銷售或使用時,其等可儲存在一處理器可執行非揮發性電腦可讀取儲存媒體中。本文(全部或部分)揭示之特定技術解決方案或有助於當前技術之態樣可依一軟體產品之形式實施。軟體產品可儲存在一儲存媒體中,該儲存媒體包括多個指令,以使一運算設備(其可為一個人電腦、一伺服器、一網路設備及其類似者)執行本申請案之實施例之方法之所有或一些步驟。儲存媒體可包括一快閃記憶體隨身碟、一可攜式硬碟機、ROM、RAM、一磁碟、一光碟、可操作以儲存程式碼之另一媒體或其任意組合。
特定實施例進一步提供一種系統,該系統包括一處理器及儲存可由處理器執行之指令之一非暫時性電腦可讀取儲存媒體,以使系統執行對應於以上揭示之實施例之任何方法中之步驟之操作。特定實施例進一步提供一種非暫時性電腦可讀取儲存媒體,其經組態有可由一個或多個處理器執行之指令,以使一個或多個處理器執行對應於以上揭示之實施例之任何方法中之步驟之操作。
本文揭示之實施例可透過與一用戶端互動之一雲端平台、一伺服器或一伺服器群組(以下統稱為「服務系統」)來實施。用戶端可為
一終端設備,或由一使用者在一平台上註冊之一用戶端,其中終端設備可為一行動終端機、一個人電腦(PC)及可安裝有一平台應用程式之任何設備。
以上描述之各種特徵及程序可彼此獨立使用,或可以各種方式組合。所有可能組合及子組合意在落入本發明之範疇內。此外,在一些實施方案中可省略某些方法或程序方塊。本文描述之方法及程序亦不限於任何特定序列,且與之相關之方塊或狀態可以適當之其他序列執行。例如,所描述之方塊或狀態可以不同於具體揭示之一循序執行,或多個方塊或狀態可組合在一單一方塊或狀態中。實例方塊或狀態可串列、並行或以某種其他方式執行。可將方塊或狀態新增至所揭示之實例實施例或自所揭示之實例實施例移除。本文描述之例示性系統及組件可經組態為與所描述之不同。例如,與所揭示之實例實施例相比,可新增、移除或重新配置元件。
本文描述之例示性方法之各種操作可至少部分地由一演算法執行。該演算法可包括在儲存於一記憶體(例如,以上描述之一非暫時性電腦可讀取儲存媒體)中之程式代碼或指令中。此演算法可包括一機器學習演算法。在一些實施例中,一機器學習演算法可不顯式地程式化電腦以執行一功能,但可自訓練資料學習以生成執行該功能之一預測模型。
本文描述之例示性方法之各種操作可至少部分地由一個或多個處理器執行,該等處理器被臨時組態(例如,藉由軟體)或永久組態以執行相關操作。無論係臨時或永久組態,此等處理器可構成處理器實施引擎,其等操作以執行本文描述之一個或多個操作或功能。
類似地,本文描述之方法可至少部分地由處理器實施,其
中一個或多個特定處理器係硬體之一實例。例如,一方法之至少一些操作可由一個或多個處理器或處理器實施引擎執行。此外,一個或多個處理器亦可在一「雲端運算」環境中或作為一「軟體即服務」(SaaS)中操作以支援相關操作之效能。例如,至少一些操作可由一群組電腦(作為包含處理器之機器之實例)執行,其中此等操作可經由一網路(例如,網際網路)及經由一個或多個適當介面(例如,一應用程式介面(API))存取。
某些操作之效能可分佈在處理器之間,不僅駐留在一單一機器內,而且部署在多台機器上。在一些實例實施例中,處理器或處理器實施引擎可位於一單一地理位置(例如,在一家庭環境、一辦公室環境或一伺服器場內)。在其他實例實施例中,處理器或處理器實施引擎可分佈在多個地理位置上。
在本說明書中,多個例項可實施描述為一單一例項之組件、操作或結構。儘管一個或多個方法之單個操作被繪示且描述為單獨操作,但一個或多個之單個操作可同時執行,且並未要求以所繪示之循序執行操作。在實例組態中呈現為單獨組件之結構及功能可實施為一組合結構或組件。類似地,呈現為一單一組件之結構及功能可實施為單獨組件。此等及其他變化、修改、新增及改進落入本文標的之範疇內。
如本文所用,「或」係包含性的而非排他性的,除非另有明確指示或上下文另有指示。因此,在本文中,「A、B或C」意謂著「A、B、A及B、A及C、B及C或A、B及C」,除非另有明確指示或上下文另有指示。此外,「及」既係聯合的又係多個的,除非另有明確指示或上下文另有指示。因此,在本文中,「A及B」意謂著「聯合地或多個A及B」,除非另有明確指示或上下文另有指示。此外,本文描述之資源、操
作或結構之多個例項可被提供為一單一例項。此外,各種資源、操作、引擎及資料儲存之間的邊界在某種程度上係任意的,且在特定說明性組態之一上下文中繪示特定操作。可設想其他功能分配,且可落入本發明之各種實施例之一範疇內。通常,在實例組態中呈現為單獨資源之結構及功能可實施為一組合結構或資源。類似地,呈現為一單一資源之結構及功能可實施為單獨資源。此等及其他變動、修改、新增及改進落入如由隨附申請專利範圍表示之本發明之實施例之一範疇內。因此,說明書及圖式應視為說明性的,而非限制性的。
術語「包含」或「包括」用於指示隨後聲明之特徵之存在,但不排除新增其他特徵。條件性語言,諸如「可(can/could/might/may)」,除非另有特別說明,或在所使用之上下文中以其他方式理解,一般意在傳達某些實施例包含,而其他實施例不包含某些特徵、元件及/或步驟。因此,此條件性語言一般不意在暗示特徵、元件及/或步驟以任何方式對於一個或多個實施例係必需的,或一個或多個實施例必須包含用於在有或沒有使用者輸入或提示之情況下決定此等特徵、元件及/或步驟是否包含在任何特定實施例中或將在任何特定實施例中執行之邏輯。
雖然已參考特定實例實施例描述標的之一概述,但可對該等實施例進行各種修改及改變,而不背離本發明之實施例之更廣泛範疇。本標的之此等實施例可在本文中單獨或共同地被稱為術語「本發明」,僅為方便起見,且若事實上揭示多個,則無意將本申請書之範疇自願限制為任何單一揭示或概念。
本文所繪示之實施例被足夠詳細地描述,以使習知技術者
能夠實踐所揭示之教示。可使用其他實施例且從中衍生,使得可在不背離本發明之範疇之情況下進行結構及邏輯替換及改變。因此,[實施方式]不應被視為限制性的,且各種實施例之範疇僅由隨附申請專利範圍及此等申請專利範圍所享有之全部等效物範圍來定義。
100:訓練程序
110:正向傳播/正向傳遞
120:反向傳播/反向傳遞
130:層/權重梯度更新
Claims (17)
- 一種用於最佳化神經網路訓練之電腦實施之方法,其包括:在一正向傳播(forward propagation)期間於一神經網路之一當前層處:基於該當前層之一稀疏輸入張量及一稀疏權重張量產生一稠密輸出張量,及稀疏化(sparsifying)該稠密輸出張量以獲得一稀疏輸出張量;在一反向傳播(backward propagation)期間於該神經網路之該當前層處:基於該稀疏輸出張量判定一第一稀疏導數張量,基於該當前層之該第一稀疏導數張量及該稀疏權重張量獲得一稠密導數張量,及稀疏化該稠密導數張量以獲得一第二稀疏導數張量;及基於該第一稀疏導數張量及該第二稀疏導數張量來訓練該神經網路之權重張量,其中該訓練包括基於該第一稀疏導數張量及該稀疏輸入張量來判定該當前層之一新稀疏權重張量。
- 如請求項1之方法,其中該稠密輸出張量包括該當前層之該稀疏輸入張量及該稀疏權重張量之一張量積;且該稠密導數張量包括該當前層之該第一稀疏導數張量及該稀疏權重張量之一張量積。
- 如請求項1之方法,其中訓練該神經網路之該等權重張量包括:基於該第二稀疏導數張量判定一前一層之一新稀疏權重張量。
- 如請求項1之方法,其中該神經網路之該當前層對應於一權重張量遮罩,及判定該當前層之一新稀疏權重張量包括:基於該第一稀疏導數張量及該稀疏輸入張量之一轉置之一張量積來獲得一稠密導數權重張量;及藉由將該權重張量遮罩應用於該稠密導數權重張量停用該稠密導數權重張量中之一個或多個權重,以獲得該當前層之該新稀疏權重張量。
- 如請求項4之方法,其中該稠密導數權重張量包括對應於該神經網路之該當前層處之複數個權重參數之複數個梯度。
- 如請求項1之方法,其中判定該當前層之一新稀疏權重張量包括:基於該第一稀疏導數張量及該稀疏輸入張量之一轉置之一張量積來獲得一稠密導數權重張量;及將一top-K激勵函數應用於該稠密導數權重張量,以獲得該當前層之該新稀疏權重張量。
- 如請求項6之方法,其中應用該top-K激勵函數包括:將該稠密導數權重張量之各列或行劃分為對應於處理器之記憶體庫之複數個庫;及 對於該複數個庫中之各者,判定該庫中之top-K個權重且停用該庫中不係該等top-K個權重之權重。
- 如請求項1之方法,其中稀疏化該稠密輸出張量以獲得一稀疏輸出張量包括:將一top-K激勵函數應用於該稠密輸出張量以獲得該稀疏輸出張量;及稀疏化該稠密導數張量以獲得一第二稀疏導數張量包括:將該top-K激勵函數應用於該稠密導數張量以獲得該第二稀疏導數張量。
- 如請求項1之方法,其中該神經網路之該當前層包括一稠密權重張量且對應於一權重張量遮罩,且該當前層之該稀疏權重張量藉由以下步驟獲得:藉由將該權重張量遮罩應用於該稠密權重張量停用該稠密權重張量中之一個或多個權重,以獲得該稀疏權重張量。
- 一種用於最佳化神經網路訓練之系統,其包括一個或多個處理器及一個或多個非暫時性電腦可讀取記憶體,該等非暫時性電腦可讀取記憶體耦合至該一個或多個處理器且經組態有可由該一個或多個處理器執行之指令以使該系統執行操作,該等操作包括:在一正向傳播期間於一神經網路之一當前層處:基於該當前層之一稀疏輸入張量及一稀疏權重張量產生一稠密輸 出張量,及稀疏化該稠密輸出張量以獲得一稀疏輸出張量;在一反向傳播期間於該神經網路之該當前層處:基於該稀疏輸出張量判定一第一稀疏導數張量,基於該當前層之該第一稀疏導數張量及該稀疏權重張量獲得一稠密導數張量,及稀疏化該稠密導數張量以獲得一第二稀疏導數張量;及基於該第一稀疏導數張量及該第二稀疏導數張量來訓練該神經網路之權重張量,其中該訓練包括基於該第一稀疏導數張量及該稀疏輸入張量來判定該當前層之一新稀疏權重張量。
- 如請求項10之系統,其中該神經網路之該當前層對應於一權重張量遮罩,及判定該當前層之一新稀疏權重張量包括:基於該第一稀疏導數張量及該稀疏輸入張量之一轉置之一張量積來獲得一稠密導數權重張量;及藉由將該權重張量遮罩應用於該稠密導數權重張量停用該稠密導數權重張量中之一個或多個權重,以獲得該當前層之該新稀疏權重張量。
- 如請求項10之系統,其中該神經網路之該當前層對應於一權重張量遮罩,及判定該當前層之一新稀疏權重張量包括:基於該第一稀疏導數張量及該稀疏輸入張量之一轉置之一張量積來 獲得一稠密導數權重張量;及藉由將該權重張量遮罩應用於該稠密導數權重張量停用該稠密導數權重張量中之一個或多個權重,以獲得該當前層之該新稀疏權重張量。
- 如請求項10之系統,其中稀疏化該稠密輸出張量以獲得一稀疏輸出張量包括:將一top-K激勵函數應用於該稠密輸出張量以獲得該稀疏輸出張量;及稀疏化該稠密導數張量以獲得一第二稀疏導數張量包括:將該top-K激勵函數應用於該稠密導數張量以獲得該第二稀疏導數張量。
- 一種非暫時性電腦可讀取儲存媒體,其經組態有可由一個或多個處理器執行之指令,以使該一個或多個處理器執行操作,該等操作包括:在一正向傳播期間於一神經網路之一當前層處:基於該當前層之一稀疏輸入張量及一稀疏權重張量產生一稠密輸出張量,及稀疏化該稠密輸出張量以獲得一稀疏輸出張量;在一反向傳播期間於該神經網路之該當前層處:基於該稀疏輸出張量判定一第一稀疏導數張量,基於該當前層之該第一稀疏導數張量及該稀疏權重張量獲得一稠密導數張量,及稀疏化該稠密導數張量以獲得一第二稀疏導數張量;及 基於該第一稀疏導數張量及該第二稀疏導數張量來訓練該神經網路之權重張量,其中該訓練包括基於該第一稀疏導數張量及該稀疏輸入張量來判定該當前層之一新稀疏權重張量。
- 如請求項14之非暫時性電腦可讀取儲存媒體,其中該神經網路之該當前層對應於一權重張量遮罩,且判定該當前層之一新稀疏權重張量包括:基於該第一稀疏導數張量及該稀疏輸入張量之一轉置之一張量積來獲得一稠密導數權重張量;及藉由將該權重張量遮罩應用於該稠密導數權重張量停用該稠密導數權重張量中之一個或多個權重,以獲得該當前層之該新稀疏權重張量。
- 如請求項14之非暫時性電腦可讀取儲存媒體,其中該神經網路之該當前層對應於一權重張量遮罩,且判定該當前層之一新稀疏權重張量包括:基於該第一稀疏導數張量及該稀疏輸入張量之一轉置之一張量積來獲得一稠密導數權重張量;及藉由將該權重張量遮罩應用於該稠密導數權重張量停用該稠密導數權重張量中之一個或多個權重,以獲得該當前層之該新稀疏權重張量。
- 如請求項14之非暫時性電腦可讀取儲存媒體,其中稀疏化該稠密輸出張量以獲得一稀疏輸出張量包括:將一top-K激勵函數應用於該稠密輸出張量以獲得該稀疏輸出張量; 及稀疏化該稠密導數張量以獲得一第二稀疏導數張量包括:將該top-K激勵函數應用於該稠密導數張量以獲得該第二稀疏導數張量。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US17/403,668 | 2021-08-16 | ||
US17/403,668 US11429864B1 (en) | 2021-08-16 | 2021-08-16 | System and method for bank-balanced sparse activation and joint-activation-weight-sparse training of neural networks |
Publications (2)
Publication Number | Publication Date |
---|---|
TW202312040A TW202312040A (zh) | 2023-03-16 |
TWI813414B true TWI813414B (zh) | 2023-08-21 |
Family
ID=83007777
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW111130736A TWI813414B (zh) | 2021-08-16 | 2022-08-16 | 用於最佳化神經網路訓練之電腦實施之方法、系統及非暫時性電腦可讀取儲存媒體 |
Country Status (7)
Country | Link |
---|---|
US (1) | US11429864B1 (zh) |
EP (1) | EP4388455A1 (zh) |
JP (1) | JP2024529717A (zh) |
KR (1) | KR20240042505A (zh) |
CN (1) | CN116157808B (zh) |
TW (1) | TWI813414B (zh) |
WO (1) | WO2023020419A1 (zh) |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20200104692A1 (en) * | 2018-09-28 | 2020-04-02 | Qualcomm Incorporated | Exploiting activation sparsity in deep neural networks |
US20200285649A1 (en) * | 2019-03-04 | 2020-09-10 | Walmart Apollo, Llc | Systems and methods for a machine learning framework |
Family Cites Families (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10528864B2 (en) * | 2016-08-11 | 2020-01-07 | Nvidia Corporation | Sparse convolutional neural network accelerator |
US11544545B2 (en) * | 2017-04-04 | 2023-01-03 | Hailo Technologies Ltd. | Structured activation based sparsity in an artificial neural network |
US10366322B2 (en) * | 2017-10-06 | 2019-07-30 | DeepCube LTD. | System and method for compact and efficient sparse neural networks |
CN107832847A (zh) * | 2017-10-26 | 2018-03-23 | 北京大学 | 一种基于稀疏化后向传播训练的神经网络模型压缩方法 |
US11461628B2 (en) * | 2017-11-03 | 2022-10-04 | Samsung Electronics Co., Ltd. | Method for optimizing neural networks |
US10832139B2 (en) * | 2018-06-22 | 2020-11-10 | Moffett Technologies Co. Limited | Neural network acceleration and embedding compression systems and methods with activation sparsification |
EP3745314A1 (en) * | 2019-05-27 | 2020-12-02 | Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. | Method, apparatus and computer program for training deep networks |
EP3748545A1 (en) * | 2019-06-07 | 2020-12-09 | Tata Consultancy Services Limited | Sparsity constraints and knowledge distillation based learning of sparser and compressed neural networks |
CN112508190A (zh) * | 2020-12-10 | 2021-03-16 | 上海燧原科技有限公司 | 结构化稀疏参数的处理方法、装置、设备及存储介质 |
-
2021
- 2021-08-16 US US17/403,668 patent/US11429864B1/en active Active
-
2022
- 2022-08-15 WO PCT/CN2022/112435 patent/WO2023020419A1/en active Application Filing
- 2022-08-15 JP JP2024509037A patent/JP2024529717A/ja active Pending
- 2022-08-15 KR KR1020247007848A patent/KR20240042505A/ko not_active Application Discontinuation
- 2022-08-15 CN CN202280005926.2A patent/CN116157808B/zh active Active
- 2022-08-15 EP EP22857731.8A patent/EP4388455A1/en active Pending
- 2022-08-16 TW TW111130736A patent/TWI813414B/zh active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20200104692A1 (en) * | 2018-09-28 | 2020-04-02 | Qualcomm Incorporated | Exploiting activation sparsity in deep neural networks |
US20200285649A1 (en) * | 2019-03-04 | 2020-09-10 | Walmart Apollo, Llc | Systems and methods for a machine learning framework |
Non-Patent Citations (3)
Title |
---|
期刊 Wiedemann et al. Dithered backprop: A sparse and quantized backpropagation algorithm for more efficient deep neural network training 2020 IEEE/CVF Conference on Computer Vision and Pattern Recognition Workshops IEEE; * |
網路文獻 Hubara et al. Accelerated Sparse Neural Training: A Provable and Efficient Method to Find N:M Transposable Masks 16 Feb 2021 https://arxiv.org/abs/2102.08124 * |
網路文獻 Kostopoulou et al. DeepReduce: A Sparse-tensor Communication Framework for Distributed Deep Learning 5 Feb 2021 https://arxiv.org/abs/2102.03112; * |
Also Published As
Publication number | Publication date |
---|---|
TW202312040A (zh) | 2023-03-16 |
KR20240042505A (ko) | 2024-04-02 |
WO2023020419A1 (en) | 2023-02-23 |
JP2024529717A (ja) | 2024-08-08 |
CN116157808A (zh) | 2023-05-23 |
EP4388455A1 (en) | 2024-06-26 |
CN116157808B (zh) | 2024-02-02 |
US11429864B1 (en) | 2022-08-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11308398B2 (en) | Computation method | |
CN110288030B (zh) | 基于轻量化网络模型的图像识别方法、装置及设备 | |
US9886377B2 (en) | Pipelined convolutional operations for processing clusters | |
US10970619B1 (en) | Method and system for hierarchical weight-sparse convolution processing | |
US20180260709A1 (en) | Calculating device and method for a sparsely connected artificial neural network | |
US11763150B2 (en) | Method and system for balanced-weight sparse convolution processing | |
US11775832B2 (en) | Device and method for artificial neural network operation | |
WO2022095984A1 (en) | Method and system for convolution with workload-balanced activation sparsity | |
US20210312278A1 (en) | Method and apparatus with incremental learning moddel | |
JP7150651B2 (ja) | ニューラルネットワークのモデル縮約装置 | |
CN116457794A (zh) | 用于神经网络模型的组平衡式稀疏激活特征图 | |
TWI813414B (zh) | 用於最佳化神經網路訓練之電腦實施之方法、系統及非暫時性電腦可讀取儲存媒體 | |
CN116384471A (zh) | 模型剪枝方法、装置、计算机设备、存储介质和程序产品 | |
WO2022105348A1 (zh) | 神经网络的训练方法和装置 | |
JP7572753B2 (ja) | ニューラルネットワークモデルのためのバンクバランストスパース活性化特徴マップ | |
CN113673591B (zh) | 一种自调整采样优化的图像分类方法、设备及介质 | |
CN116261736B (zh) | 用于双稀疏卷积处理和并行化的方法和系统 | |
Ahn et al. | Incremental Learning With Adaptive Model Search and a Nominal Loss Model | |
KR20230110355A (ko) | 계층별 분석을 통한 신경망 프루닝 방법 및 시스템 | |
CN114503122A (zh) | 深度神经网络的结构学习和简化方法 |