TW202316365A - 用於實施分組卷積之神經網路架構 - Google Patents
用於實施分組卷積之神經網路架構 Download PDFInfo
- Publication number
- TW202316365A TW202316365A TW111118802A TW111118802A TW202316365A TW 202316365 A TW202316365 A TW 202316365A TW 111118802 A TW111118802 A TW 111118802A TW 111118802 A TW111118802 A TW 111118802A TW 202316365 A TW202316365 A TW 202316365A
- Authority
- TW
- Taiwan
- Prior art keywords
- feature map
- convolution
- grouped
- input
- extended
- Prior art date
Links
- 238000013528 artificial neural network Methods 0.000 title description 38
- 238000013527 convolutional neural network Methods 0.000 claims abstract description 67
- 238000000034 method Methods 0.000 claims abstract description 50
- 238000012545 processing Methods 0.000 claims abstract description 50
- 230000009471 action Effects 0.000 claims description 9
- 238000001228 spectrum Methods 0.000 claims description 4
- 239000010410 layer Substances 0.000 description 127
- 239000011159 matrix material Substances 0.000 description 31
- 230000001537 neural effect Effects 0.000 description 29
- 230000000875 corresponding effect Effects 0.000 description 25
- 238000010801 machine learning Methods 0.000 description 21
- 230000004913 activation Effects 0.000 description 12
- 238000001994 activation Methods 0.000 description 12
- 238000005192 partition Methods 0.000 description 12
- 230000008569 process Effects 0.000 description 12
- 238000004590 computer program Methods 0.000 description 11
- 230000000750 progressive effect Effects 0.000 description 10
- 238000010586 diagram Methods 0.000 description 6
- 230000010339 dilation Effects 0.000 description 6
- 230000008901 benefit Effects 0.000 description 5
- 238000004891 communication Methods 0.000 description 5
- 238000001514 detection method Methods 0.000 description 5
- 238000013507 mapping Methods 0.000 description 3
- 238000003909 pattern recognition Methods 0.000 description 3
- 230000004927 fusion Effects 0.000 description 2
- 230000003993 interaction Effects 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 230000037452 priming Effects 0.000 description 2
- 230000009467 reduction Effects 0.000 description 2
- 238000000926 separation method Methods 0.000 description 2
- XGRYDJSRYGHYOO-UHFFFAOYSA-N Thesine Natural products C1=CC(O)=CC=C1C1C(C(=O)OCC2C3CCCN3CC2)C(C=2C=CC(O)=CC=2)C1C(=O)OCC1C2CCCN2CC1 XGRYDJSRYGHYOO-UHFFFAOYSA-N 0.000 description 1
- 238000009825 accumulation Methods 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 238000012512 characterization method Methods 0.000 description 1
- 230000001276 controlling effect Effects 0.000 description 1
- 238000011156 evaluation Methods 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 238000003709 image segmentation Methods 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 230000000644 propagated effect Effects 0.000 description 1
- 230000000306 recurrent effect Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 230000001953 sensory effect Effects 0.000 description 1
- 238000004088 simulation Methods 0.000 description 1
- 239000002356 single layer Substances 0.000 description 1
- 238000000638 solvent extraction Methods 0.000 description 1
- 239000000758 substrate Substances 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
Images
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/08—Learning methods
- G06N3/082—Learning methods modifying the architecture, e.g. adding, deleting or silencing nodes or connections
-
- 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/0464—Convolutional networks [CNN, ConvNet]
-
- 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/045—Combinations of 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
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)
- Image Analysis (AREA)
- Complex Calculations (AREA)
Abstract
本發明描述用於使用一卷積神經網路(CNN)處理一輸入影像之方法、系統及設備,包含電腦可讀媒體。該CNN包含一層區塊序列。該序列中之該等層區塊之一第一子集之各者經組態以執行操作,該等操作包括:i)接收該層區塊之一輸入特徵圖譜;ii)使用一分組卷積從該輸入特徵圖譜產生一擴展特徵圖譜;及iii)從該擴展特徵圖譜產生一簡化特徵圖譜。該輸入特徵圖譜係具有c1個通道之一h×w特徵圖譜。該擴展特徵圖譜係具有c2個通道之一h×w特徵圖譜,而該簡化特徵圖譜係具有c1個通道之一h×w特徵圖譜。c2大於c1。從該簡化特徵圖譜針對該層區塊產生一輸出特徵圖譜。
Description
本說明書大體上係關於使用積體硬體電路來對一卷積(convolutional)神經網路執行分組卷積。
神經網路係採用一或多層之節點以針對一經接收輸入產生一輸出(例如,一分類)的機器學習模型。一些神經網路除了一輸出層之外亦包含一或多個隱藏層。一些神經網路可為經組態用於影像處理之卷積神經網路或經組態用於語音及語言處理之遞歸神經網路(RNN)。不同類型之神經網路架構可用於執行與分類或型樣辨識、涉及資料模型化之預測及資訊叢集化有關之各種任務。
一神經網路層可具有一組對應參數或權重。權重係用於透過該神經網路層處理輸入(例如,一批次輸入)以產生該層之一對應輸出以用於運算一神經網路推理。一批次輸入及內核組可表示為輸入及權重之一張量(即,一多維陣列)。一硬體加速器係用於實施神經網路之一專用積體電路。該電路包含具有可使用電路之控制邏輯來遍歷或存取之對應於一張量之元素之位置的記憶體。
本說明書描述用於在一硬體神經網路加速器上高效地實施分組卷積之技術。分組卷積藉由沿著一輸入矩陣之一通道維度對其等之輸入特徵圖譜進行分組來卷積其等,其中表示一分組卷積之各輸入分組與一對應輸出分組相關聯。特定言之,基於此等技術,當使用在一實例運算裝置(諸如一平板電腦或智慧型電話)上實施之一機器學習模型之一卷積神經網路(CNN)處理一輸入影像時,可利用分組卷積來實現某些硬體及運算效率。
例如,獲得一輸入影像用於使用該CNN進行處理。該CNN包含一層區塊序列,且該序列中之該等層區塊之一第一子集之各者經組態以執行操作,該等操作包含:i)接收該層區塊之一輸入特徵圖譜;ii)使用一分組卷積從該輸入特徵圖譜產生一擴展特徵圖譜;及iii)從該擴展特徵圖譜產生一簡化特徵圖譜。該層區塊之該輸入特徵圖譜係具有c1個通道之一h×w特徵圖譜。該擴展特徵圖譜係具有c2個通道之一h×w特徵圖譜,而該簡化特徵圖譜係具有c1個通道之一h×w特徵圖譜。c2大於c1。從該簡化特徵圖譜針對該層區塊產生一輸出特徵圖譜。
本說明書中描述之標的物之一個態樣可體現在一種由一或多個電腦執行之方法中。該方法包含獲得一輸入影像且使用一卷積神經網路處理該輸入影像。該卷積神經網路包含一層區塊序列。該序列中之該等層區塊之一第一子集之各者經組態以執行操作,該等操作包含:接收該層區塊之一輸入特徵圖譜,該層區塊之該輸入特徵圖譜係具有c1個通道之一h×w特徵圖譜;使用一分組卷積從該輸入特徵圖譜產生一擴展特徵圖譜,該擴展特徵圖譜係具有c2個通道之一h×w特徵圖譜,其中c2大於c1;從該擴展特徵圖譜產生一簡化特徵圖譜,該簡化特徵圖譜係具有c1個通道之一h×w特徵圖譜;及從該簡化特徵圖譜產生該層區塊之一輸出特徵圖譜。
此等及其他實施方案可各視情況包含下列特徵之一或多者。例如,在一些實施方案中,產生一擴展特徵圖譜包含:藉由將一1×1卷積應用於該輸入特徵圖譜來從該輸入特徵圖譜產生一初始擴展特徵圖譜,該初始擴展特徵圖譜係具有c2個通道之一h×w特徵圖譜;及藉由將該分組卷積應用於該初始擴展特徵圖譜來從該初始擴展特徵圖譜產生該擴展特徵圖譜。
在一些實施方案中,該1×1卷積具有比輸入濾波器更大數目個輸出濾波器。該分組卷積可具有相同總數之輸入濾波器及輸出濾波器。該層區塊序列可包含:與一非分組卷積層區塊交錯之一分組卷積層區塊,且其中該分組卷積層區塊用於實施該分組卷積。在一些實施方案中,該分組卷積係使用包含於該層區塊序列當中之一融合分組反向瓶頸(IBN)層實施之一融合分組卷積。
產生一擴展特徵圖譜可包含:藉由將該分組卷積應用於該輸入特徵圖譜來從該輸入特徵圖譜產生該擴展特徵圖譜。在一些實施方案中,產生一擴展特徵圖譜包含:藉由將一1×1卷積應用於該輸入特徵圖譜來從該輸入特徵圖譜產生一初始擴展特徵圖譜,該初始擴展特徵圖譜係具有c3個通道之一h×w特徵圖譜,其中c3大於c2;及藉由將該分組卷積應用於該初始擴展特徵圖譜來從該初始擴展特徵圖譜產生該擴展特徵圖譜。
此態樣及其他態樣之其他實施方案包含經組態以執行方法之動作之對應系統、設備及編碼於電腦儲存裝置上之電腦程式。一或多個電腦之一系統可憑藉安裝於該系統上之在操作中引起該系統執行該等動作之軟體、韌體、硬體或其等之組合而如此組態。一或多個電腦程式可憑藉具有在藉由一資料處理設備執行時引起該設備執行該等動作之指令而如此組態。
本說明書中描述之標的物可在特定實施例中實施以實現以下優點之一或多者。本文件中描述之分組卷積技術提供具有基於分組卷積之神經區塊之不同組合之一新穎卷積架構。相對於分組卷積之現有用途,分組卷積神經區塊可與其他區塊類型交錯以提供對一實例ML硬體加速器之硬體資源之利用率度量及運算效率之一更細粒度控制。
該架構之分組卷積神經區塊係反向瓶頸式神經區塊之變動,且使用不同裝置(諸如行動運算裝置或邊緣運算平台)之專用處理器來實施。該架構併入不同分組卷積組態(包含一基線反向瓶頸(「IBN」)層之融合或分組變體)以沿著對應於一輸入影像之輸入特徵圖譜之通道維度實施分組卷積。分組卷積技術可提供具有與非分組卷積層區塊交錯之分組卷積層區塊之一神經架構。
基於非分組卷積及分組卷積之神經區塊之交錯提供用於更高效地處理一輸入影像之一改良神經架構,諸如當執行涉及針對一卷積神經網路之運算之一電腦視覺任務時。例如,相對於一K×K逐深度卷積(即,非分組卷積),實施一K×K分組卷積之一神經區塊可達成運算之更高效硬體映射。該等映射係特定於實施卷積神經網路之一專用處理器中之一算術電路之一給定硬體佈局。此容許以針對積體電路之硬體利用率、處理延時或運算元(例如,輸入及權重)容量優化之一方式配置針對分組卷積層之運算。
該架構可使用不同類型之基於分組卷積之神經區塊來沿著一輸入張量之一通道維度將一分組卷積應用於輸入之不同分組。例如,一系統藉由利用一區塊概念以沿著分組內之一輸入通道使用輸入之不同分組執行卷積來執行分組卷積,而非輸入至輸出通道方面之1對1關係。此提供容許沿著輸入通道使用更多資訊之演算法益處,此可改良一電腦視覺網路之一或多個層處之表示能力。
分組卷積技術可包含分組卷積神經網路區塊之不同組態之自動化(或手動)評估以實現用於不同電腦視覺任務之各種類型之神經架構。執行此等技術之一實例系統可判定一神經架構,該神經架構針對諸如延時、參數大小、運算操作之數目及模型精確性之約束優化一模型之效能。模型之效能亦可針對用於運行模型之一機器學習加速器之一給定硬體積體電路佈局進行優化。
在下文隨附圖式及描述中闡述本說明書中描述之標的物之一或多個實施方案之細節。從描述、圖式及發明申請專利範圍將變得明白標的物之其他潛在特徵、態樣及優點。
圖1係用於對一輸入影像執行分組卷積之一實例運算系統100之一方塊圖。系統100通常包含一實例卷積神經網路102,該卷積神經網路102經組態以處理一影像104,即,處理影像之像素之強度值。卷積神經網路102包含基於多個卷積神經網路層108之一實例神經網路架構。在圖1之實例中,卷積神經網路102包含多個卷積神經網路層108。例如,卷積神經網路102包含N數目個(或組)層,其中N係大於1之一整數。
不同類型之CNN架構106可用於執行各種機器學習任務。例如,機器學習任務可為一電腦視覺任務(亦被稱為一「影像處理任務」)。換言之,神經網路可經組態以接收一輸入影像且處理輸入影像以產生輸入影像之一網路輸出,即,執行某種影像處理任務。在本說明書中,處理一輸入影像指代使用一神經網路處理影像之像素之強度值。例如,任務可為影像分類,且由神經網路針對一給定影像產生之輸出可為一組物件類別之各者之分數,其中各分數表示影像含有屬於該類別之一物件之一影像之一估計可能性。
作為另一實例,任務可為影像嵌入產生,且由神經網路產生之輸出可為輸入影像之一數值嵌入。作為又另一實例,任務可為物件偵測,且由神經網路產生之輸出可識別輸入影像中之位置,例如,影像內之邊界框或其他幾何區域,在該等位置處描繪特定類型之物件。作為又另一實例,任務可為影像分割,且由神經網路產生之輸出可針對輸入影像之各像素定義該像素屬於多個類別之哪一者。然而,更一般言之,任務可為各種任務之任一者,包含處理除影像之外之輸入之任務。
一些影像處理任務可與物件偵測、資料分類、圖案辨識或影像辨識以及涉及資料模型化及資訊叢集化之運算預測有關。例如,一任務可涉及物件偵測,其中CNN處理一影像以偵測一特定物件,且在偵測到物件之後產生識別該物件之一輸出。另一任務可涉及資料/影像分類,其中CNN處理一影像以判定影像之一分類,且基於影像之內容產生影像之一特定分類輸出。另一任務可涉及圖案辨識,其中CNN處理一影像以識別或辨識影像中之一特定圖案,且基於影像之內容產生指示經辨識圖案之一輸出。另一任務可涉及一般影像辨識,其中CNN處理一影像以識別或辨識影像之各種元素,且基於影像之內容產生指示經辨識元素之一輸出。
在一些實施方案中,卷積神經網路102在一實例行動裝置110處實施或可由一實例行動裝置110存取。行動裝置110可為一智慧型電話、平板電腦、電子筆記型電腦、膝上型電腦、遊戲機或相關可攜式運算裝置。在一些其他實施方案中,卷積神經網路102整合於一實例基於雲端之系統中或可由一實例基於雲端之系統存取,諸如一伺服器庫、伺服器群組或一多處理器系統。
卷積神經網路102可使用一或多個機器學習硬體加速器112來實施。各硬體加速器112對應於一或多個專用硬體積體電路114。一般言之,電路114係執行神經網路運算之一硬體電路(例如,專用硬體電路)。例如,電路114之一些(或全部)可為專用硬體電路,諸如一特定應用積體電路(ASIC)、場可程式化閘陣列(FPGA)、一單核心神經網路處理器或一多核心神經網路處理器。電路114亦可為一專用圖形處理單元(GPU)。
硬體電路114可操作以加速針對一神經網路工作負載之運算。在一些實施方案中,硬體電路114包含控制邏輯,該控制邏輯可以硬體、軟體或兩者來實施。控制邏輯用於發出用於一神經網路運算之指令,包含獲得及路由用於運算之資料。電路114可包含用於儲存輸入、輸入啟動、輸出、輸出啟動及神經網路之各層之參數之記憶體。在一些實施方案中,電路114包含專用記憶體、共用記憶體或兩者。例如,電路114可包含用於儲存輸入、輸入啟動、輸出或輸出啟動之一輸入/啟動記憶體及用於儲存各神經網路層之一各自組參數之一參數記憶體。
電路114可包含一運算單元,諸如一硬體矩陣單元、一運算塊配置或此等之一組合。運算單元用於執行神經網路運算用於透過神經網路之一層處理一輸入。在一些實施方案中,矩陣單元或個別運算塊之各者包含一或多個運算胞元陣列,諸如執行乘法及累加運算之乘法累加胞元。例如,各胞元可執行一輸入及一權重值之一乘法以產生一乘積,且在多個時脈循環內執行乘積之一累加(例如,加法運算)。
電路114實施完全、逐深度及分組卷積以針對輸入矩陣之一通道維度之一給定深度將權重之不同濾波器與輸入矩陣之對應部分進行卷積。例如,行動裝置110使用卷積神經網路102及模型之CNN層108來針對一所接收輸入104產生一影像處理輸出120 (例如,一辨識或偵測輸出)。例如,輸入104可為一膝上型電腦122之一影像,且行動裝置110使用卷積神經網路102來處理該影像且偵測或辨識該影像包含一膝上型電腦之一描繪。
圖2係包含一輸入資料集202及用於使用來自輸入資料集之輸入執行分組卷積之實例分組203之一表示之一方塊圖。在一些實施方案中,輸入資料集202係輸入之多維矩陣結構,或從輸入之多維矩陣結構導出。例如,矩陣結構可為包含Zin通道之輸入張量,該等Zin通道之各者具有空間維度X×Y。矩陣結構(或張量)可表示一組輸入、一組啟動輸入或一組權重輸入。在一些情況中,用於一組啟動輸入之一矩陣結構在本說明書中被稱為一輸入特徵圖譜,且用於一組權重輸入之一矩陣結構被稱為一內核矩陣結構。
在圖2之實例中,輸入資料集202係具有三個維度之一矩陣結構:兩個(X、Y)空間維度及一個(Z)通道維度。關於空間維度,在一些實施方案中,此等維度對應於一組啟動輸入之一空間或位置。例如,若卷積神經網路102正在處理具有兩個維度之一影像104,則矩陣結構可具有兩個空間維度,其等對應於影像之空間座標,即,X、Y座標。關於通道維度,此維度對應於來自一輸入(例如,一啟動輸入)之特徵。參考Z、Zin或通道維度來描述通道維度,其中「通道」可對應於一影像之一色彩通道。
系統100經組態以例如參考輸入資料集202之通道維度之一深度層級來判定分組卷積之一分區。各輸入通道可具有對應深度層級。例如,圖2之矩陣結構具有沿著Zin維度延伸之深度層級。藉由繪示,若一實例矩陣結構202表示作為一組啟動輸入發送至一卷積神經網路層之一3×3×3影像,則影像(3×3)之X及Y維度可為空間維度,且Z維度(3)可為對應於R、G及B值之通道維度。
如上文提及,系統100可判定沿著一實例輸入特徵圖譜之通道維度之分組卷積之一分區。例如,系統100可判定沿著通道維度之輸入分組210-1之一第一分區及沿著通道維度之輸入分組210-2之一第二分區。在一些實施方案中,系統100判定沿著通道維度之n數目個分組210-n,其中n係大於或等於1之一整數。在其中輸入特徵圖譜202表示作為一組啟動輸入發送之一3×3×3影像之實例中,用以定義一分組卷積之輸入分組210-1之第一分區可對應於九個「1」啟動輸入之一特徵,例如,紅色值,用以定義一分組卷積之輸入分組210-2之第二分區可對應於九個「2」啟動輸入之一特徵,例如,綠色值,且用以定義一分組卷積之輸入分組210-3之一第三分區可對應於九個「3」啟動輸入之一特徵,例如,藍色值。
如上文論述,分組卷積藉由沿著一輸入矩陣之一通道維度對其等之輸入特徵圖譜進行分組來卷積其等,其中表示一分組卷積之各輸入分組210-n與一對應輸出分組220-n相關聯。卷積神經網路102採用一或多個卷積神經網路層108來針對一所接收輸入202產生一輸出206 (例如,一分類)。例如,各卷積神經網路層具有一相關聯組內核。內核204可根據分組卷積之組態來分區,使得各輸入分組210-n與一對應內核/權重矩陣進行卷積以產生一卷積輸出220-n。在圖2之實例中,輸入分組210-1與對應內核矩陣212進行卷積以產生卷積輸出220-1,而輸入分組210-2與對應內核矩陣214進行卷積以產生卷積輸出220-2。
系統100經組態以動態地判定控制參數g之一值,其中g係大於1之一整數。系統100亦經組態以藉由運算Zin/g來判定一分組大小,其中Zin係沿著一輸入張量之一通道維度之輸入通道數目,且g係如由控制參數定義之分組數目。控制參數g用於定義分組卷積之一數目(例如,分區)。在一些例項中,g之值可在系統100處動態地判定,或在系統100處針對一給定操作預定義。例如,定義分組卷積之一數目之控制參數g可由系統100之一編譯器預定義(及/或嵌入)或在運行時動態地判定。
在一些實施方案中,系統100基於所請求之一特定類型之機器學習任務來定義分組卷積之一數目(例如,分區) ,且相應地針對該任務設定控制參數g之值。在一些其他實施方案中,系統100基於以下項來定義分組卷積之一數目(例如,分區):i)待處理之機器學習任務之一類型;ii)卷積神經網路之神經架構;iii)運算環境;iv)效能目標;或v)此等之一組合。實例運算環境可包含基於雲端之運算環境或行動裝置運算環境。效能目標可包含速度、延時、硬體利用率、模型精確性、參數大小或此等之一組合。
分組卷積可被描述為一卷積之一廣義形式。在一些實施方案中,系統100藉由將一特定值指派給一控制參數g來初始化該控制參數。控制參數g之初始化或指派值可用於控制分組卷積之分區。例如,若系統100判定需要使用整個通道維度之資料之一卷積運算(例如,一完全卷積),則系統100將控制參數之值設定為g=1,且使用矩陣結構202之相關資料觸發及/或執行一完全卷積。
相關地,系統100可判定一較大神經網路運算中之一給定步驟需要逐深度可分離卷積之一分組。例如,若系統100判定需要使用通道維度之一部分之資料之兩個或更多個深度可分離卷積,則系統100將控制參數設定為一所要值(例如,g=4),且使用矩陣結構202中之資料之相關部分觸發及/或執行兩個或更多個(例如,四個)逐深度可分離卷積。在一些實施方案中,對兩個或更多個分組卷積之運算經循序執行、同時執行或此等之一組合。例如,對兩個或更多個逐深度可分離卷積之各者之各自組運算之一些(或全部)可經循序執行或平行執行。
如上文提及,本文件中描述之分組/經分組卷積技術至少提供對一實例ML加速器之硬體資源之利用率度量及運算效率之一更細粒度控制。在一些實施方案中,此等分組卷積技術提供用於影響及控制一實例機器學習模型之某些屬性或效能度量之多功能區塊或控制旋鈕。例如,選擇介於1與通道數目(z)之間之控制參數g之一值提供一完全卷積與一逐深度可分離卷積之兩個實例約束之間之一連續體(continuum)。此在下文更詳細說明。
圖3展示一機器學習模型之實例屬性。一般言之,屬性對應於使用上文描述之卷積神經網路102執行之不同卷積運算。例如,屬性302展示用於執行一完全卷積之運算之參數數量及乘法累加胞元(MAC),屬性304展示用於執行一逐深度卷積之運算之參數數量及乘法累加胞元,且屬性306展示用於執行一分組卷積之運算之參數數量及乘法累加胞元。
可判定及/或調諧控制參數g及分組卷積之組態以控制用於一給定任務之參數(例如,可訓練參數)之一數目以及用於執行該任務之操作之乘法累加胞元之一數量。機器學習模型之此等實例屬性302、304、306之各者可對模型之不同效能度量具有一對應效應或影響。例如,可訓練參數之數量及/或乘法累加胞元(或操作)之數量之一增加或減少將對機器學習模型之精確性、速度及/或延時具有一對應效應。在另一實例中,相對於完全卷積,逐深度卷積之使用可為一輕量及低成本(即,資源較不密集)選項,但在一ML加速器之積體電路處執行逐深度卷積通常導致電路之硬體資源之不良利用率。
例如,當執行一逐深度(或逐深度可分離)卷積時,包含數十個或數百個硬體乘法累加胞元之電路114之一標準硬體陣列可在一給定運算循環內經歷該等硬體胞元之3%利用率,同時經歷最小或低延時。因此,逐深度卷積之使用可為快速的,但其亦歸因於其之低硬體利用率而為低效的。相反地,當執行一完全卷積時,電路114之硬體陣列可經歷實質上更高利用率(例如,73%),使得在一給定運算循環內使用陣列之乘法累加胞元之大部分。當與逐深度卷積相比時,在執行完全卷積時,此更高利用率通常以實質上更高運算延時為代價。
如上文描述,本文件中描述之分組卷積技術提供對一實例ML硬體加速器之硬體資源之利用率度量及運算效率之一更細粒度控制。選擇介於1與通道數目(z)之間之控制參數g之一值提供一完全卷積(308)與一逐深度可分離卷積(310)之兩個實例約束之間之一連續體。系統100可參考通道維度之一深度層級來判定分組卷積之一分區,如圖2之實例中展示。控制參數g用於定義分組卷積之一數目(例如,分區)。
圖3之實例圖表312展示用於選擇介於2與沿著一完全卷積(308)與一逐深度卷積(310)之間之連續體之通道數目(z)之間之g之不同值(324)之實例參數數量320及MAC數量322。在此實例中,zin維度係256。圖表312展示相對於一分組卷積之值(g)之一對應增加之可訓練參數之數量及乘法累加胞元(或操作)之數量之減少之實例。
如上文論述,電路114可包含具有對應於一張量之元素之位置之記憶體,該張量之該等元素可使用電路之控制邏輯來遍歷或存取以運算一層(諸如一分組卷積層)之一輸出。從記憶體提取之元素(例如,輸入或啟動)必須對運算層之多個輸出有用。權重(即,參數)之數目亦可隨著一分組之一大小按比例調整。在一些實施方案中,從記憶體傳送參數可成為增加一運算之延時之一瓶頸。當判定一較佳神經網路架構時,一實例組搜尋資料或模擬可指示關於參數傳送時間之一瓶頸。接著,可定義使用所揭示之分組卷積概念及基於分組卷積之神經區塊來減少參數之一數目且改良或加速一機器學習任務之運算時間之一架構。
圖4係展示一程序區塊410、程序區塊420及程序區塊430之實例之一方塊圖。程序區塊410、420、430之各者包含一或多個層區塊。一般言之,程序區塊410、420、430之各者可由一卷積神經網路之不同層區塊表示。在圖4之實例中,程序區塊410、420及430之各者可為針對一給定卷積運算執行之運算之一子集。使用卷積神經網路102執行卷積運算,其可在上文描述之實例硬體積體電路114上實施。
一神經網路區塊可描述一單一層或包含多個層之神經網路之一組件。在實例電腦視覺模型(諸如一行動視覺模型)中廣泛使用之一常見區塊係一反向瓶頸(IBN)層區塊402 (「IBN層402」)。一般言之,一IBN區塊可為以某種方式組合數個卷積層之一較大神經架構之一巨集區塊。包含IBN層之多種類型之層(或區塊)用作構建區塊以形成一實例分類或物件偵測網路。
一IBN層402可包含一逐點卷積(404)、一K×K逐深度卷積(405)及一最終逐點卷積(406)。一逐點卷積擴展通道維度,且此逐點卷積之一實例在圖4展示為一「1×1 Conv (擴展)」。在逐點卷積之後,在通道維度之擴展深度處應用K×K逐深度卷積內核。最終逐點卷積(406)將擴展通道維度投影回至一較小值。此最終逐點卷積之一實例在圖4展示為一「1×1 Conv (投影)」。
諸如在IBN層區塊402中,K×K逐深度卷積之使用係相當常見的。此係因為在擴展之後,在一大或擴展通道維度上運算完全卷積在處理及運算資源方面係非常昂貴的。在一些實施方案中,逐點卷積(404)及K×K逐深度卷積(405)被替換為表示一融合IBN層407之一K×K完全卷積(融合擴展)程序區塊。一般言之,融合IBN層407將擴展及逐深度卷積運算合併至一單一完全卷積神經區塊中。
完全卷積可涉及大量參數/權重,且需要一積體電路之相當大百分比之硬體運算資源。如上文指示,此等資源之實例可為電路114之一硬體運算陣列(例如,一脈動陣列)之乘法累加胞元、積體電路114之一向量單元或兩者。相反地,使用所揭示神經區塊替換方案實施之所揭示分組卷積技術(諸如下文描述之區塊414、416、422、432)提供一改良方法以增加一組輸入通道(例如,大輸入通道)之可訓練參數之一數量,藉此改良模型精確性,但以相對於非分組卷積替代方案之一較低運算成本。
現在參考程序區塊410,展示一分組IBN漸進投影(或漸進擴展)區塊,其中上文描述之K×K逐深度卷積(405)被替換為一K×K分組卷積(414)或(416)。程序區塊410可具有實施一K×K分組卷積(414)以執行通道維度之漸進投影之一第一實例或實施一K×K分組卷積(416)以執行通道維度之漸進擴展之一第二實例。
在程序區塊410之第一實例中,系統100可藉由將一1×1卷積(擴展) (404)應用於一輸入特徵圖譜(例如,一輸入438)來從該輸入特徵圖譜產生一擴展特徵圖譜。輸入特徵圖譜可為具有c1個通道之一h×w特徵圖譜。此擴展特徵圖譜可為具有c2個通道之一h×w特徵圖譜,其中c2大於c1。在一些實施方案中,1×1卷積具有比輸入濾波器更大數目個輸出濾波器。將K×K分組卷積(414)應用於擴展特徵圖譜以執行通道維度之漸進投影。例如,卷積神經網路102可使用在卷積神經網路102之一分組卷積層處實施之一分組卷積對擴展特徵圖譜執行漸進投影。分組IBN漸進投影可提供靈活性以權衡專用於投影之參數及主要K×K卷積運算子。
在程序區塊410之此第一實例中,一最終逐點卷積(406)將擴展通道維度投影回至一較小值。因此,在1×1投影(406)將通道大小降低至一最終值之前,與分組卷積相關聯之一K×K內核可執行通道大小之一初始減小。加法區塊418之各者係一選用剩餘(或跳躍)連接,其可用於將實例卷積輸出436與饋送至一給定程序區塊(例如,410)之一輸入438相加。實例總和440作為在一對應程序區塊處執行之操作之一輸出進行傳遞。
在程序區塊410之第二實例中,系統100可藉由將一1×1卷積(擴展) (404)應用於一輸入特徵圖譜(例如,一輸入438)來從該輸入特徵圖譜產生一初始擴展特徵圖譜。此初始擴展特徵圖譜可為具有c2個通道之一h×w特徵圖譜,其中c2大於c1。系統100藉由將一K×K分組卷積(416)應用於初始擴展特徵圖譜來從初始擴展特徵圖譜產生一擴展特徵圖譜。例如,卷積神經網路102可使用在卷積神經網路102之一分組卷積層處實施之一分組卷積從初始擴展特徵圖譜產生擴展特徵圖譜。擴展特徵圖譜可為具有c3個通道之一h×w特徵圖譜,其中c3大於c2。此分組IBN漸進擴展操作可提供靈活性以權衡專用於擴展之參數及主要K×K卷積運算子。分組IBN漸進擴展可使擴展層之部分保持未融合,且容許在主要K×K卷積之前進行跨分組之逐通道卷積。程序區塊410之一最終逐點卷積(406)將擴展通道維度投影回至一較小值。
現在參考程序區塊420,此程序區塊係一融合分組IBN區塊,其中上文描述之1×1卷積(擴展) (404)及K×K逐深度卷積(405)被替換為一K×K分組卷積(422)。此K×K分組卷積(422)包含一「融合擴展」名稱,此係至少因為其容許替換一逐點(404)+逐深度(405)對且經由K×K分組卷積(422)融合該等運算之態樣以擴展通道維度。因此,在程序區塊420處,系統100可藉由將K×K分組卷積(422)應用於一實例輸入特徵圖譜(例如,輸入438)來從該輸入特徵圖譜產生一擴展特徵圖譜。實例輸入特徵圖譜可為具有c1個通道之一h×w特徵圖譜。擴展特徵圖譜可為具有c2個通道之一h×w特徵圖譜,其中c2大於c1。程序區塊420之一最終逐點卷積(406)將擴展通道維度投影回至一較小值。如上文提及,一對應總和440作為在程序區塊420處執行之特定運算之一輸出進行傳遞。
在一些實施方案中,融合分組卷積區塊422提供融合IBN層407之一替代方案,其容許沿著通道維度之更高效處理。例如,此等效率可在一電腦視覺模型之隨後階段實現。在一些情況中,此等隨後階段對應於與沿著通道維度之卷積相關聯之資料解析度非常大時。當使用一特定類型之專用積體電路執行程序區塊420 (包含其分組卷積運算)時,可特別優化由融合分組卷積提供之處理速度之增加。例如,專用積體電路可為一神經網路處理器,其包含將來自記憶體之層輸入廣播至電路之一或多個運算胞元之一廣播輸入匯流排。
融合分組卷積區塊422可需要相對於分組IBN層414之一稍微更高參數計數。在一完全卷積及一逐深度可分離卷積之兩個約束之間之連續體上,融合分組IBN 422在連續體上較高。例如,融合分組IBN層422可更接近於沿著連續體從逐深度卷積至全連續體之一完全卷積。
現在參考程序區塊430,此程序區塊係一分組IBN區塊,其中上文描述之K×K逐深度卷積(405)被替換為一K×K分組卷積(432)。如上文描述,系統100將一1×1卷積(404)應用於一輸入438以產生一擴展特徵圖譜。在卷積神經網路102之一分組卷積層處應用K×K分組卷積(432)。K×K分組卷積(432)可具有相同總數之輸入濾波器及輸出濾波器。類似於其他程序區塊,程序區塊430之一最終逐點卷積(406)將擴展通道維度投影回至一較小值,且一對應總和440作為在程序區塊430處執行之特定運算之一輸出進行傳遞。
在程序區塊430處執行之卷積運算可涉及相對於一基線IBN層之較小擴展比。此等較小擴展比可導致減小之參數計數。為了恢復參數計數,程序區塊430之卷積運算(以及其他程序區塊)可使用K×K內核之一分組卷積,其利用跨通道資訊。K×K分組卷積(432)可與包含沿著輸入通道維度之一卷積之其他區塊類型交錯。此交錯型樣可減輕跨分組輸入通道卷積之缺少。
一般言之,程序區塊410、430之各自架構將K×K逐深度卷積替換為一K×K分組卷積。將K×K逐深度卷積替換為一K×K分組卷積之至少一個優點係,相對於一完全卷積,K×K分組卷積產生具有減小延時之更多可訓練參數。來自K×K分組卷積之使用之額外可訓練參數促成模型精確性之增加。當與逐深度卷積相比時,此增加精確性可僅以一輕微或最小延時增加來達成。
將逐深度卷積替換為分組卷積可特定於特定類型之硬體加速器之卷積運算,諸如針對行動裝置或邊緣運算應用組態之張量處理單元(TPU)。在一些實施方案中,相對於K×K逐深度卷積,一K×K分組卷積可經組態以達成關於積體電路114之一硬體佈局之更高效硬體映射。例如,一分組卷積可利用一區塊概念以沿著分組內之輸入通道執行卷積,而非輸入至輸出通道方面之1對1關係。此提供容許沿著輸入通道使用更多資訊之演算法益處,此改良一電腦視覺網路之一或多個層處之表示能力。
當針對某些機器學習任務之運算進展至一CNN之更深層時,通道維度可變得更大。在嘗試實現某些效能改良(諸如輸出精確性或運算/處理速度)時,探索使用融合IBN層區塊之現有方法,諸如上文描述之融合IBN層407。然而,歸因於在輸入通道(zin)之較大各自維度上執行一完全卷積(其導致較慢運算速度)之成本,使用融合IBN層變得不切實際。
相對於先前方法,程序區塊410、420及430之各自分組卷積提供神經區塊替代方案,其等可各自改良模型效能,同時最小化某些處理損失。例如,融合分組IBN區塊422可用於達成效能改良,而不具有與習知IBN層或融合IBN層相關聯之延時或擴展/大型資料集處理損失。一般言之,分組卷積區塊414、416、422、432之各者係可包含一或多個分組卷積層之神經網路區塊。再者,分組卷積區塊414、416、422、432之各者可與沿著輸入通道維度實施一卷積之其他層或區塊類型交錯。在圖5繪示交錯神經區塊之一實例。
交錯型樣可減輕跨分組輸入通道卷積之缺少。例如,雖然分組卷積使用跨通道資訊,但此資訊僅限於一分組,且當使用分組時,通常需要一置亂操作來沿著通道維度混合資訊。交錯型樣亦避免使用此等額外置亂運算子(例如,ShuffleNet)。非常類似於區塊410及430,融合分組卷積運算(例如,經由區塊422)可產生相對於基線IBN之更多可訓練參數,且與某些類型之張量形狀之基線IBN及融合IBN層相比,容許處理速度的增加(例如,運行更快)。
在一些實施方案中,逐深度卷積將輸入及輸出通道限制為相同大小,然而,分組卷積可實現不同大小。例如,在1×1投影將通道大小降低至一最終值之前,一K×K分組卷積(414)內核可執行通道大小之一初始減小。此處之一個假設係,若分組卷積將通道減小至一最終通道維度,藉此消除1×1投影,則歸因於每分組之小通道深度(zo),效能可小於最佳(例如,降級)。但是,若經由容許實施漸進擴展之一積體電路組態原生地支援分組卷積,則可減輕此情況。例如,電路組態可包含容許將輸入傳遞至積體電路之相異MAC之一輸入匯流排。此在下文參考圖6至圖9更詳細描述。
系統100可操作以從多個不同類型之分組卷積區塊進行選擇。例如,除了上文描述之分組卷積區塊414、416、422、432之外,系統100亦可從實施一K×K分組卷積之一融合投影分組卷積區塊進行選擇。融合投影分組卷積將逐點投影融合至K×K主要卷積中(而非融合逐點擴展)。取決於張量形狀,融合投影分組IBN可提供更多可訓練參數,同時達成與融合IBN相比之類似處理效率。融合投影分組IBN使投影層之部分保持未融合,且容許在主要K×K卷積之後進行跨分組之逐通道卷積。
圖5係可用於圖1之實例運算系統中之一機器學習模型102之一卷積神經網路之一實例架構500。神經架構500可實施多個各自組之卷積運算以獲得一實例輸入影像之不同特性化。在一些實施方案中,系統100可操作以從上文參考圖4之實例描述之分組及非分組IBN選項策略性地選擇及放置各種IBN層/區塊選項。在一些實施方案中,系統100可操作以在一經堆疊、連接或組合組態中選擇及配置操作(即,將其等配置及組合在一起)以形成實例架構500,該實例架構500可用於實施一大規模電腦視覺網路/模型。
在圖5之實例中,架構500包含一層區塊序列,其中該序列中之層區塊之一第一子集之各者經組態以執行用於處理一輸入影像之操作。更特定言之,架構500包含層區塊502之一第一子集、層區塊504之一第二子集及層區塊506之一第三子集。在一些實施方案中,層區塊502、504、506之至少一個子集可包含兩個或更多個不同類型之神經區塊之一交替序列。例如,層區塊502之子集可具有包含一融合IBN層及一融合分組IBN層之一交替序列。
融合IBN層可表示一第一個別神經區塊512,諸如將擴展及逐深度卷積運算合併至一單一完全卷積神經區塊中之融合IBN層407 (上文描述),而融合分組IBN層可表示一第二個別神經區塊514,諸如容許替換一逐點(404)+逐深度(405)對且經由K×K分組卷積(422)融合該等運算之態樣以擴展通道維度之融合分組IBN 422。如上文論述,此區塊可提供融合IBN層407之一替代方案,其容許沿著通道維度之更高效處理。
更特定言之,第一神經區塊512可為一非分組IBN區塊,而第二神經區塊514可為一分組IBN區塊。第一及第二神經區塊512、514之各者包含一或多個卷積神經網路層。因此,層區塊502可包含分組及非分組IBN層之一交替序列。例如,層區塊之交替序列可具有與非分組卷積層區塊交錯之分組卷積層區塊。
圖6繪示實例運算迴圈嵌套600。一第一運算迴圈嵌套602表示用於一完全卷積運算之一迴圈嵌套,而一第二運算迴圈嵌套604表示用於具有g個分組之一分組卷積運算之一迴圈嵌套。
圖7係用於使用分組卷積處理一實例影像之一實例方法700之一流程圖。實例影像可為上文描述之影像102或各種其他類型之數位影像及相關圖形資料。在一些實施方案中,方法700係用於加速神經網路運算之一技術之部分,相對於其他資料處理技術,該技術亦容許影像處理輸出方面之改良精確性。
可使用上文描述之系統100實施或執行方法700。因此,方法700之描述可參考上文提及之系統100之運算資源。可由程式化韌體或軟體指令實現方法700之步驟或動作,該等程式化韌體或軟體指令可由本文件中描述之裝置及資源之一或多個處理器執行。在一些實施方案中,方法700之步驟對應於用於使用一硬體積體電路(諸如經組態以實施神經網路之一專用神經網路處理器或硬體機器學習加速器)執行運算以針對一神經網路層產生一輸出之一方法。
再次參考方法700,系統100獲得一輸入影像(702),且使用一實例卷積神經網路處理輸入影像(704)。卷積神經網路包含用於實施用於處理一數位輸入影像(諸如影像102)之分組卷積之一層區塊序列。一個別層區塊可對應於在實施卷積神經網路108之一硬體積體電路114處執行之一分組卷積運算。層區塊序列中之層區塊亦可包含不對應於一分組卷積運算之區塊。
例如,一層區塊序列可包含分組卷積層區塊及非分組卷積層區塊,或由分組卷積層區塊及非分組卷積層區塊形成。在一些實施方案中,層區塊序列具有與非分組卷積層區塊交錯之分組卷積層區塊。例如,個別層區塊序列之一些(或全部)可具有在非分組卷積層區塊之間交錯之分組卷積層區塊。在一些其他實施方案中,個別層區塊序列可具有分組卷積層區塊及非分組卷積層區塊之不同配置。例如,一層區塊序列可由循序分組卷積層區塊及循序非分組卷積層區塊之相異子集形成,而非被交錯。
系統100可基於一電腦視覺任務或神經網路架構之一或多個約束來判定卷積之一分組。接著,系統100可基於所判定分組來判定對應於一分組卷積之一輸入分組。例如,系統100可沿著一輸入矩陣之通道維度對輸入矩陣之輸入特徵圖譜進行分組以形成一或多個輸入分組。從輸入影像導出輸入矩陣。系統100可使一對應內核矩陣與各輸入分組相關聯且將內核矩陣與對應輸入分組進行卷積以產生一輸出矩陣之一對應輸出分組。
層區塊序列中之層區塊之一第一子集之各者經組態以執行與影像處理有關之各種類型之操作。例如,包含於CNN中之序列之層區塊之一子集經組態以接收層區塊之一輸入特徵圖譜(706)。在一些實施方案中,層區塊之輸入特徵圖譜係具有c1個通道之一h×w特徵圖譜。層區塊之子集經組態以使用一分組卷積從輸入特徵圖譜產生一擴展特徵圖譜(708)。在一些實施方案中,擴展特徵圖譜係具有c2個通道之一h×w特徵圖譜,其中c2大於c1。層區塊之子集經組態以從擴展特徵圖譜產生一簡化特徵圖譜(710)。在一些實施方案中,簡化特徵圖譜係具有c1個通道之一h×w特徵圖譜。
層區塊之子集經組態以從簡化特徵圖譜產生層區塊之一輸出特徵圖譜(712)。在一些實施方案中,層區塊之子集藉由將輸入特徵圖譜相加至簡化特徵圖譜來產生一輸出特徵圖譜。在一些其他實施方案中,層區塊之子集產生直接對應於簡化特徵圖譜之一輸出特徵圖譜。例如,在此等實施方案中,輸出特徵圖譜等於簡化特徵圖譜。
可在數位電子電路、有形體現之電腦軟體或韌體、電腦硬體(包含本說明書中所揭示之結構及其等之結構等效物)或其等之一或多者之組合中實施本說明書中所描述之標的物及功能操作之實施例。本說明書中所描述之標的物之實施例可經實施為一或多個電腦程式,即,在一有形非暫時性程式載體上編碼以藉由資料處理設備執行或控制資料處理設備之操作之電腦程式指令之一或多個模組。
替代地或此外,程式指令可在一人為產生之傳播信號(例如,一機器產生之電、光學或電磁信號)上編碼,該傳播信號經產生以編碼資訊用於傳輸至合適接收器設備以藉由一資料處理設備執行。電腦儲存媒體可為一機器可讀儲存裝置、一機器可讀儲存基板、一隨機或串列存取記憶體裝置或其等之一或多者之一組合。
術語「運算系統」涵蓋用於處理資料之所有種類的設備、裝置及機器,藉由實例,包含一可程式化處理器、一電腦或多個處理器或電腦。設備可包含專用邏輯電路,例如,一FPGA (場可程式化閘陣列)或一ASIC (特定應用積體電路)。除硬體之外,設備亦可包含針對所討論之電腦程式創建一執行環境之程式碼,例如,構成處理器韌體、一協定堆疊、一資料庫管理系統、一作業系統或其等之一或多者之一組合的程式碼。
可以任何形式之程式設計語言(包含編譯或解譯語言、或宣告式或程序性語言)撰寫一電腦程式(其亦可被稱為或描述為一程式、軟體、一軟體應用程式、一模組、一軟體模組、一指令檔或程式碼),且其可以任何形式部署,包含作為一獨立程式或作為一模組、組件、副常式或適用於一運算環境中之其他單元。
一電腦程式可(但不需要)對應於一檔案系統中之一檔案。一程式可儲存於保存其他程式或資料(例如,儲存於一標記語言文件中之一或多個指令檔)之一檔案之一部分中、專用於所討論之程式之一單一檔案中或多個協調檔案(例如,儲存程式碼之一或多個模組、子程式或部分的檔案)中。一電腦程式可經部署以在一個電腦上或在定位於一個位點處或跨多個位點分佈且藉由一通信網路互連之多個電腦上執行。
可藉由執行一或多個電腦程式以藉由對輸入資料進行操作及產生輸出而執行功能之一或多個可程式化電腦來執行本說明書中所描述之程序及邏輯流程。亦可藉由專用邏輯電路(例如,一FPGA (場可程式化閘陣列)、一ASIC (特定應用積體電路)或一GPGPU (通用圖形處理單元))來執行該等程序及邏輯流程,且設備亦可實施為該專用邏輯電路。
適用於一電腦程式之執行之電腦包含(藉由實例,可基於)通用微處理器或專用微處理器或兩者或任何其他種類之中央處理單元。一般而言,一中央處理單元將自一唯讀記憶體或一隨機存取記憶體或兩者接收指令及資料。一電腦之一些元件係用於執行(performing或executing)指令之一中央處理單元及用於儲存指令及資料之一或多個記憶體裝置。一般而言,一電腦亦將包含用於儲存資料之一或多個大容量儲存裝置(例如,磁碟、磁光碟或光碟),或可操作耦合以自該一或多個大容量儲存裝置接收資料或將資料傳送至該一或多個大容量儲存裝置,或兩者。然而,一電腦不需要具有此等裝置。此外,一電腦可嵌入於另一裝置中,例如,一行動電話、一個人數位助理(PDA)、一行動音訊或視訊播放器、一遊戲控制台、一全球定位系統(GPS)接收器或一可攜式儲存裝置(例如,一通用串列匯流排(USB)快閃隨身碟),等等。
適用於儲存電腦程式指令及資料之電腦可讀媒體包含全部形式之非揮發性記憶體、媒體及記憶體裝置,藉由實例包含:半導體記憶體裝置,例如,EPROM、EEPROM、及快閃記憶體裝置;磁碟,例如,內部硬碟或可抽換式磁碟;磁光碟;及CD ROM及DVD-ROM光碟。處理器及記憶體可藉由專用邏輯電路增補或併入專用邏輯電路中。
為提供與一使用者之互動,可在一電腦上實施本說明書中所描述之標的物之實施例,該電腦具有用於向該使用者顯示資訊之一顯示裝置(例如,LCD (液晶顯示器)監視器)及該使用者可藉由其提供輸入至該電腦之一鍵盤及一指標裝置(例如,一滑鼠或一軌跡球)。其他種類之裝置亦可用於提供與一使用者之互動;例如,提供給該使用者之回饋可為任何形式之感覺回饋,例如,視覺回饋、聽覺回饋或觸覺回饋;且來自該使用者之輸入可以任何形式接收,包含聲音、語音或觸覺輸入。另外,一電腦可藉由發送文件至由一使用者使用之一裝置及自該裝置接收文件而與該使用者互動;例如,藉由回應於自一使用者之用戶端裝置上之一網頁瀏覽器接收之請求而將網頁發送至該網頁瀏覽器。
可在一運算系統中實施本說明書中所描述之標的物之實施例,該運算系統包含一後端組件(例如,作為一資料伺服器),或包含一中介軟體組件(例如,一應用程式伺服器),或包含一前端組件(例如,具有一使用者可透過其與本說明書中所描述之標的物之一實施方案互動之一圖形使用者介面或一網頁瀏覽器之一用戶端電腦),或一或多個此等後端、中介軟體或前端組件之任何組合。該系統之該等組件可藉由數位資料通信之任何形式或媒體(例如,一通信網路)互連。通信網路之實例包含一區域網路(「LAN」)及一廣域網路(「WAN」),例如,網際網路。
運算系統可包含用戶端及伺服器。一用戶端及伺服器一般彼此遠離且通常透過一通信網路互動。用戶端與伺服器之關係憑藉運行於各自電腦上及彼此具有一用戶端-伺服器關係之電腦程式而發生。
雖然本說明書含有許多特定實施方案細節,但此等不應被理解為限制任何發明或可主張之內容之範疇,而是被理解為描述可特定於本發明之特定實施例之特徵。本說明書中在分開的實施例之背景內容中所描述之某些特徵亦可組合實施於一單個實施例中。相反地,在一單個實施例之背景內容中描述之各種特徵亦可分開地實施於多個實施例中或以任何合適子組合實施。此外,儘管特徵在上文可被描述為依特定組合起作用且甚至最初如此主張,然來自一所主張之組合之一或多個特徵在一些情況中可自該組合免除,且該所主張之組合可係關於一子組合或一子組合之變型。
類似地,雖然在圖式中依一特定順序描繪操作,但此不應被理解為需要依所展示之特定順序或依循序順序來執行此等操作或需要執行全部所繪示之操作以達成所要結果。在某些境況中,多任務處理及平行處理可為有利的。此外,上文所描述之實施例中之各種系統模組及組件之分離不應被理解為在所有實施例中需要此分離,且應理解,所描述之程式組件及系統可大體上一起整合於一單個軟體產品中或封裝於多個軟體產品中。
已描述標的物之特定實施例。其他實施例係在以下發明申請專利範圍之範疇內。例如,發明申請專利範圍中所敘述之動作可依一不同順序執行且仍達成所要結果。作為一實例,附圖中所描繪之程序並不一定需要所展示之特定順序,或循序順序來達成所要結果。在某些實施方案中,多任務處理及平行處理可為有利的。
100:運算系統
102:卷積神經網路/機器學習模型
104:影像/輸入
106:卷積神經網路(CNN)架構
108:卷積神經網路(CNN)層
110:行動裝置
112:機器學習硬體加速器
114:專用硬體積體電路
120:影像處理輸出
122:膝上型電腦
202:輸入資料集/所接收輸入/輸入特徵圖譜/矩陣結構
203:分組
204:內核
206:輸出
210-1至210-n:輸入分組
212:內核矩陣
214:內核矩陣
220-1至220-n:卷積輸出
302:屬性
304:屬性
306:屬性
308:完全卷積
310:逐深度可分離卷積
312:圖表
320:參數數量
322:乘法累加胞元(MAC)數量
324:值
402:反向瓶頸(IBN)層區塊
404:逐點卷積
405:K×K逐深度卷積
406:最終逐點卷積
407:融合反向瓶頸(IBN)層
410:程序區塊
414:區塊/K×K分組卷積
416:區塊/K×K分組卷積
418:加法區塊
420:程序區塊
422:區塊/K×K分組卷積
430:程序區塊
432:區塊/K×K分組卷積
436:卷積輸出
438:輸入
440:總和
500:神經架構
502:層區塊
504:層區塊
506:層區塊
512:第一神經區塊
514:第二神經區塊
600:運算迴圈嵌套
602:第一運算迴圈嵌套
604:第二運算迴圈嵌套
700:方法
702:步驟
704:步驟
706:步驟
708:步驟
710:步驟
712:步驟
圖1係用於對一影像執行分組卷積之一實例運算系統之一方塊圖。
圖2係展示用於分組卷積之實例分組之一方塊圖。
圖3展示關於不同卷積運算之一機器學習模型之實例屬性。
圖4係展示對應於一卷積神經網路之不同層區塊之操作之一方塊圖。
圖5係可用於圖1之實例運算系統中之一卷積神經網路模型之一實例架構。
圖6繪示用於一完全卷積及分組卷積之運算之實例迴圈嵌套。
圖7係用於使用分組卷積處理一影像之一實例方法之一流程圖。
在各個圖式中,相同元件符號及名稱指示相同元件。
100:運算系統
102:卷積神經網路/機器學習模型
104:影像
106:卷積神經網路(CNN)架構
108:卷積神經網路(CNN)層
110:行動裝置
112:機器學習硬體加速器
114:專用硬體積體電路
120:影像處理輸出
122:膝上型電腦
Claims (20)
- 一種由一或多個電腦執行之方法,該方法包括: 獲得一輸入影像;及 使用一卷積神經網路處理該輸入影像,該卷積神經網路包括一層區塊序列,且其中該序列中之該等層區塊之一第一子集之各者經組態以執行操作,該等操作包括: 接收該層區塊之一輸入特徵圖譜,該層區塊之該輸入特徵圖譜係具有c1個通道之一h×w特徵圖譜; 使用一分組卷積從該輸入特徵圖譜產生一擴展特徵圖譜,該擴展特徵圖譜係具有c2個通道之一h×w特徵圖譜,其中c2大於c1; 從該擴展特徵圖譜產生一簡化特徵圖譜,該簡化特徵圖譜係具有c1個通道之一h×w特徵圖譜;及 從該簡化特徵圖譜產生該層區塊之一輸出特徵圖譜。
- 如請求項1之方法,其中產生一擴展特徵圖譜包括: 藉由將一1×1卷積應用於該輸入特徵圖譜來從該輸入特徵圖譜產生一初始擴展特徵圖譜,該初始擴展特徵圖譜係具有c2個通道之一h×w特徵圖譜;及 藉由將該分組卷積應用於該初始擴展特徵圖譜來從該初始擴展特徵圖譜產生該擴展特徵圖譜。
- 如請求項2之方法,其中該1×1卷積具有比輸入濾波器更大數目個輸出濾波器。
- 如請求項2之方法,其中該分組卷積具有相同總數之輸入濾波器及輸出濾波器。
- 如請求項1之方法,其中該層區塊序列包括: 與一非分組卷積層區塊交錯之一分組卷積層區塊,且其中該分組卷積層區塊用於實施該分組卷積。
- 如請求項1之方法,其中: 該分組卷積係使用包含於該層區塊序列當中之一融合分組反向瓶頸(IBN)層實施之一融合分組卷積。
- 如請求項1之方法,其中產生一擴展特徵圖譜包括: 藉由將該分組卷積應用於該輸入特徵圖譜來從該輸入特徵圖譜產生該擴展特徵圖譜。
- 如請求項1之方法,其中產生一擴展特徵圖譜包括: 藉由將一1×1卷積應用於該輸入特徵圖譜來從該輸入特徵圖譜產生一初始擴展特徵圖譜,該初始擴展特徵圖譜係具有c3個通道之一h×w特徵圖譜,其中c3大於c2;及 藉由將該分組卷積應用於該初始擴展特徵圖譜來從該初始擴展特徵圖譜產生該擴展特徵圖譜。
- 一種系統,其包括一處理裝置及一非暫時性機器可讀儲存裝置,該非暫時性機器可讀儲存裝置儲存可由該處理裝置執行以導致執行操作之指令,該等操作包括: 獲得一輸入影像;及 使用一卷積神經網路處理該輸入影像,該卷積神經網路包括一層區塊序列,且其中該序列中之該等層區塊之一第一子集之各者經組態以執行操作,該等操作包括: 接收該層區塊之一輸入特徵圖譜,該層區塊之該輸入特徵圖譜係具有c1個通道之一h×w特徵圖譜; 使用一分組卷積從該輸入特徵圖譜產生一擴展特徵圖譜,該擴展特徵圖譜係具有c2個通道之一h×w特徵圖譜,其中c2大於c1; 從該擴展特徵圖譜產生一簡化特徵圖譜,該簡化特徵圖譜係具有c1個通道之一h×w特徵圖譜;及 從該簡化特徵圖譜產生該層區塊之一輸出特徵圖譜。
- 如請求項9之系統,其中產生一擴展特徵圖譜包括: 藉由將一1×1卷積應用於該輸入特徵圖譜來從該輸入特徵圖譜產生一初始擴展特徵圖譜,該初始擴展特徵圖譜係具有c2個通道之一h×w特徵圖譜;及 藉由將一分組卷積應用於該初始擴展特徵圖譜來從該初始擴展特徵圖譜產生該擴展特徵圖譜。
- 如請求項10之系統,其中該1×1卷積具有比輸入濾波器更大數目個輸出濾波器。
- 如請求項10之系統,其中該分組卷積具有相同總數之輸入濾波器及輸出濾波器。
- 如請求項9之系統,其中該層區塊序列包括: 與一非分組卷積層區塊交錯之一分組卷積層區塊,且其中該分組卷積層區塊用於實施該分組卷積。
- 如請求項9之系統,其中: 該分組卷積係使用包含於該層區塊序列當中之一融合分組反向瓶頸(IBN)層實施之一融合分組卷積。
- 如請求項9之系統,其中產生一擴展特徵圖譜包括: 藉由將一分組卷積應用於該輸入特徵圖譜來從該輸入特徵圖譜產生該擴展特徵圖譜。
- 如請求項9之系統,其中產生一擴展特徵圖譜包括: 藉由將一1×1卷積應用於該輸入特徵圖譜來從該輸入特徵圖譜產生一初始擴展特徵圖譜,該初始擴展特徵圖譜係具有c3個通道之一h×w特徵圖譜,其中c3大於c2;及 藉由將一分組卷積應用於該初始擴展特徵圖譜來從該初始擴展特徵圖譜產生該擴展特徵圖譜。
- 一種非暫時性機器可讀儲存裝置,其儲存可由一處理裝置執行以導致執行操作之指令,該等操作包括: 獲得一輸入影像;及 使用一卷積神經網路處理該輸入影像,該卷積神經網路包括一層區塊序列,且其中該序列中之該等層區塊之一第一子集之各者經組態以執行操作,該等操作包括: 接收該層區塊之一輸入特徵圖譜,該層區塊之該輸入特徵圖譜係具有c1個通道之一h×w特徵圖譜; 使用一分組卷積從該輸入特徵圖譜產生一擴展特徵圖譜,該擴展特徵圖譜係具有c2個通道之一h×w特徵圖譜,其中c2大於c1; 從該擴展特徵圖譜產生一簡化特徵圖譜,該簡化特徵圖譜係具有c1個通道之一h×w特徵圖譜;及 從該簡化特徵圖譜產生該層區塊之一輸出特徵圖譜。
- 如請求項17之機器可讀儲存裝置,其中產生一擴展特徵圖譜包括: 藉由將一1×1卷積應用於該輸入特徵圖譜來從該輸入特徵圖譜產生一初始擴展特徵圖譜,該初始擴展特徵圖譜係具有c2個通道之一h×w特徵圖譜;及 藉由將該分組卷積應用於該初始擴展特徵圖譜來從該初始擴展特徵圖譜產生該擴展特徵圖譜。
- 如請求項17之機器可讀儲存裝置,其中該層區塊序列包括: 與一非分組卷積層區塊交錯之一分組卷積層區塊,且其中該分組卷積層區塊用於實施該分組卷積。
- 如請求項17之機器可讀儲存裝置,其中: 該分組卷積係使用包含於該層區塊序列當中之一融合分組反向瓶頸(IBN)層實施之一融合分組卷積;及 產生一擴展特徵圖譜包括:藉由將該分組卷積應用於該輸入特徵圖譜來從該輸入特徵圖譜產生該擴展特徵圖譜。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/US2021/054160 WO2023059336A1 (en) | 2021-10-08 | 2021-10-08 | Neural network architecture for implementing group convolutions |
WOPCT/US21/54160 | 2021-10-08 |
Publications (1)
Publication Number | Publication Date |
---|---|
TW202316365A true TW202316365A (zh) | 2023-04-16 |
Family
ID=78529016
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW111118802A TW202316365A (zh) | 2021-10-08 | 2022-05-20 | 用於實施分組卷積之神經網路架構 |
Country Status (4)
Country | Link |
---|---|
EP (1) | EP4384940A1 (zh) |
KR (1) | KR20240050389A (zh) |
TW (1) | TW202316365A (zh) |
WO (1) | WO2023059336A1 (zh) |
-
2021
- 2021-10-08 EP EP21802870.2A patent/EP4384940A1/en active Pending
- 2021-10-08 WO PCT/US2021/054160 patent/WO2023059336A1/en active Application Filing
- 2021-10-08 KR KR1020247009232A patent/KR20240050389A/ko unknown
-
2022
- 2022-05-20 TW TW111118802A patent/TW202316365A/zh unknown
Also Published As
Publication number | Publication date |
---|---|
WO2023059336A1 (en) | 2023-04-13 |
KR20240050389A (ko) | 2024-04-18 |
EP4384940A1 (en) | 2024-06-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11227216B2 (en) | Batch processing in a neural network processor | |
CN107454966B (zh) | 用于神经网络处理器的预取权重 | |
TWI645301B (zh) | 使用類神經網路處理器計算卷積 | |
TWI787262B (zh) | 用於執行類神經網路層之計算的方法、系統及非暫時性電腦可讀儲存媒體 | |
TWI825596B (zh) | 用於執行類神經網路計算之電路、方法及非暫時性機器可讀儲存裝置 | |
JP2020513120A (ja) | ベクトル縮小プロセッサ | |
CN111448545B (zh) | 并行处理设备和进行并行多值归约的方法 | |
CN114402337A (zh) | 加速神经网络计算的硬件电路 | |
TW202316365A (zh) | 用於實施分組卷積之神經網路架構 | |
US20220044101A1 (en) | Collaborative sensor data processing by deep learning accelerators with integrated random access memory | |
TW202316321A (zh) | 基於硬體加速器優化分組卷積之神經網路模型 | |
CN118265984A (zh) | 用于实现组卷积的神经网络架构 | |
TWI844116B (zh) | 在機器學習硬體加速器處利用資料稀疏性 | |
US11720417B2 (en) | Distributed inferencing using deep learning accelerators with integrated random access memory | |
US20240069971A1 (en) | Artificial intelligence accelerator device | |
TW202347145A (zh) | 在機器學習硬體加速器處利用資料稀疏性 | |
TW202414200A (zh) | 減少硬體加速器中之記憶體庫衝突 |