TW201833823A - 操作神經網路裝置的方法 - Google Patents
操作神經網路裝置的方法 Download PDFInfo
- Publication number
- TW201833823A TW201833823A TW107107109A TW107107109A TW201833823A TW 201833823 A TW201833823 A TW 201833823A TW 107107109 A TW107107109 A TW 107107109A TW 107107109 A TW107107109 A TW 107107109A TW 201833823 A TW201833823 A TW 201833823A
- Authority
- TW
- Taiwan
- Prior art keywords
- index
- weight
- input feature
- feature
- value
- Prior art date
Links
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
-
- 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR 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/52—Multiplying; Dividing
- G06F7/523—Multiplying only
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR 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/52—Multiplying; Dividing
- G06F7/535—Dividing only
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR 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/544—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 for evaluating functions by calculation
- G06F7/5443—Sum of products
-
- 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2207/00—Indexing scheme relating to methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F2207/38—Indexing scheme relating to groups G06F7/38 - G06F7/575
- G06F2207/48—Indexing scheme relating to groups G06F7/48 - G06F7/575
- G06F2207/4802—Special implementations
- G06F2207/4818—Threshold devices
- G06F2207/4824—Neural 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/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)
- General Engineering & Computer Science (AREA)
- Computing Systems (AREA)
- Pure & Applied Mathematics (AREA)
- Mathematical Optimization (AREA)
- Mathematical Analysis (AREA)
- Computational Mathematics (AREA)
- General Health & Medical Sciences (AREA)
- Molecular Biology (AREA)
- Evolutionary Computation (AREA)
- Data Mining & Analysis (AREA)
- Computational Linguistics (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Biophysics (AREA)
- Biomedical Technology (AREA)
- Artificial Intelligence (AREA)
- Life Sciences & Earth Sciences (AREA)
- Health & Medical Sciences (AREA)
- Image Analysis (AREA)
Abstract
一種神經網路裝置,可基於輸入特徵映射圖產生輸入特徵清單,其中所述輸入特徵清單包括輸入特徵索引及輸入特徵值,基於與所述輸入特徵清單中所包括的輸入特徵對應的輸入特徵索引及與權重清單中所包括的權重對應的權重索引產生輸出特徵索引,且基於與所述輸入特徵對應的輸入特徵值及與所述權重對應的權重值產生與所述輸出特徵索引對應的輸出特徵值。
Description
本發明概念涉及半導體裝置,且更具體來說,涉及被配置成基於一個或多個索引執行運算的神經網路裝置及一種或多種操作所述神經網路裝置的方法。
神經網路是指作為生物大腦的模型的計算架構(computational architecture)。隨著近來已開發出神經網路技術,已有大量的研究在各種類型的電子系統中使用神經網路裝置來分析輸入資料及提取有效資訊。
神經網路裝置可針對複雜的輸入資料執行相對大量的運算(“神經網路運算”)。期望實現神經網路運算的高效處理以使神經網路裝置即時地分析高清晰度輸入並提取資訊。
本發明概念提供一種用於提高運行速度並降低功耗的神經網路裝置及其操作方法。
根據一些示例性實施例,一種操作神經網路裝置的方法可包括:基於輸入特徵映射圖產生輸入特徵清單,所述輸入特徵清單包括輸入特徵索引及輸入特徵值,所述輸入特徵索引及所述輸入特徵值對應於輸入特徵;基於對所述輸入特徵索引及權重清單的權重索引進行的第一運算,產生輸出特徵索引;以及基於對所述輸入特徵值及與所述權重索引對應的權重值進行的第二運算,產生與所述輸出特徵索引對應的輸出特徵值。
根據另一些示例性實施例,一種操作神經網路裝置的方法可包括:產生輸入特徵清單,所述輸入特徵清單包括與具有非零值的輸入特徵對應的輸入特徵索引及輸入特徵值,所述輸入特徵索引指示所述輸入特徵在輸入特徵映射圖上的位置;基於對所述輸入特徵索引進行的索引運算,產生輸出特徵索引;以及基於對所述輸入特徵值進行的資料運算,產生與所述輸出特徵索引對應的輸出特徵值。
根據一些示例性實施例,一種神經網路裝置可包括:第一記憶體,儲存指令程式;以及處理器。所述處理器可被配置成執行所述指令程式以基於輸入特徵索引執行索引運算,所述輸入特徵索引指示輸入特徵在輸入特徵映射圖上的位置,基於所述索引運算的索引運算結果,產生輸出特徵索引,基於所述輸入特徵的輸入特徵值,執行資料運算,以及基於所述資料運算的資料運算結果,產生與所述輸出特徵索引對應的輸出特徵值。
根據一些示例性實施例,一種方法可包括:使用處理器的索引重映射器基於輸入特徵映射圖來產生輸入特徵清單,所述輸入特徵清單包括輸入特徵索引及輸入特徵值,所述輸入特徵索引及所述輸入特徵值對應於輸入特徵;以及使索引重映射器執行第一運算以產生輸出特徵索引。所述第一運算可包括:將所述輸入特徵索引與權重清單的權重索引相加,將由所述相加得到的加法值除以整數,以及基於確定出在所述除法完成之後不存在餘數來選擇所述除法的商作為所述輸出特徵索引。
圖1是根據本發明概念一些示例性實施例的電子系統的方塊圖。圖2是根據一些示例性實施例的神經網路架構的實例的圖。圖3是根據本發明概念一些示例性實施例的輸入特徵清單的圖。
電子系統100可基於神經網路即時地分析輸入資料,提取有效資訊,並基於所提取的資訊來確定情況或控制安裝在電子系統100上的電子裝置的各個元件。電子系統100可用于無人機(drone)、例如先進駕駛輔助系統(advanced driver assistance system,ADAS)等機器人裝置、智慧電視(television,TV)、智慧手機、醫療裝置、移動裝置、圖像顯示裝置、測量裝置、及物聯網(internet of things,IoT)裝置。電子系統100可安裝在其他各種電子裝置中的任意一個上。
參照圖1,電子系統100可包括中央處理器(central processing unit,CPU)110、隨機存取記憶體(random access memory,RAM)120、神經網路裝置130、記憶體140、感測器模組(在本文中也被稱為“感測器裝置”)150、及通信(或發射/接收(Tx/Rx))模組(在本文中也被稱為“通信裝置”、“通信介面”、及/或“通信收發器”)160。電子系統100也可包括輸入/輸出模組、安全模組、及功率控制裝置。電子系統100的各個元件(即,中央處理器110、隨機存取記憶體120、神經網路裝置130、記憶體140、感測器模組150、及通信模組160)中的某些元件可安裝在一個半導體晶片上。如圖1所示,電子系統的元件可通過匯流排170耦合在一起。
中央處理器110控制電子系統100的整體操作。中央處理器110可包括單核處理器或多核處理器。中央處理器110可處理或執行儲存在記憶體140中的程式及/或資料。舉例來說,中央處理器110可通過執行儲存在記憶體140中的程式(“一個或多個指令程式”)來控制神經網路裝置130的功能以實作本文所述操作中的某些操作或全部操作。
隨機存取記憶體120可臨時儲存程式、資料、或指令。儲存在記憶體140中的程式及/或資料可根據中央處理器110的控制或根據引導代碼臨時儲存在隨機存取記憶體120中。隨機存取記憶體120可被實作為動態隨機存取記憶體(dynamic RAM,DRAM)或靜態隨機存取記憶體(static RAM,SRAM)。
神經網路裝置130可基於輸入資料執行神經網路運算且可基於運算(“神經網路運算”)的結果產生資訊信號。神經網路可包括卷積神經網路(convolutional neural networks,CNN)、遞迴神經網路(recurrent neural networks,RNN)、深度信念網路(deep belief networks)、及受限玻爾茲曼機(restricted Boltzmann machines),但並非僅限於此。
資訊信號可包括例如語音辨識信號、物體識別資訊號、圖像識別信號、及生物特徵識別信號等各種識別信號中的一種。神經網路裝置130可接收視頻流中所包括的幀資料作為輸入資料且可由所述幀資料產生相對於由幀資料表示的圖像中所包含的物體的識別信號。然而,本發明概念並非僅限於此。神經網路裝置130可根據上面安裝有電子系統100的電子裝置的類型或功能接收各種(“各種類型”)的輸入資料且可根據輸入資料產生識別信號。將參照圖2簡要闡述神經網路架構的實例。
圖2示出卷積神經網路的結構作為神經網路架構的實例。參照圖2,神經網路10可包括多個層,例如第一層11、第二層12、及第三層13。第一層11可為卷積層、第二層12可為池化層,且第三層13可為輸出層。輸出層可為全連接層(fully-connected layer)。除了圖2所示的第一層11、第二層12、及第三層13之外,神經網路10還可包括有源層且還可包括另一個卷積層、另一個池化層、或另一個全連接層。
第一層11、第二層12、及第三層13中的每一個可接收輸入資料或在前一層中產生的特徵映射圖來作為輸入特徵映射圖,且可通過對輸入特徵映射圖執行運算來產生輸出特徵映射圖或識別信號REC。此時,特徵映射圖是表示輸入資料的各種特徵的資料。特徵映射圖FM1、FM2、及FM3可具有二維矩陣形式或三維矩陣形式。這些具有多維矩陣形式的特徵映射圖FM1、FM2、及FM3可被稱為特徵張量(feature tensor)。特徵映射圖FM1、FM2、及FM3具有可分別與座標系中的x軸、y軸、及z軸對應的寬度(或行)W、高度(或列)H、及深度D。深度D可被稱為通道數目。
特徵映射圖的xy平面上的位置可被稱為空間位置。特徵映射圖的z軸上的位置可被稱為通道。特徵映射圖的xy平面上的大小可被稱為空間大小。
第一層11可對第一特徵映射圖FM1與權重映射圖WM執行卷積以產生第二特徵映射圖FM2。權重映射圖WM可對第一特徵映射圖FM1進行濾波且可被稱為濾波器或內核(kernel)。權重映射圖WM的深度(即,通道數目)可與第一特徵映射圖FM1的深度(即,通道數目)相同。可對權重映射圖WM與第一特徵映射圖FM1二者中相同的通道執行卷積。權重映射圖WM通過作為滑動視窗(sliding window)遍歷第一特徵映射圖FM1來平移。平移量可被稱為“步幅長度(stride length)”或“步幅”。在平移期間,權重映射圖WM中所包括的每一個權重可乘以並相加至權重映射圖WM與第一特徵映射圖FM1重疊的區域中的所有特徵值。通過對第一特徵映射圖FM1與權重映射圖WM執行卷積可產生第二特徵映射圖FM2的一個通道。儘管圖2僅示出一個權重映射圖WM,然而實際上可有多個權重映射圖與第一特徵映射圖FM1進行卷積以產生第二特徵映射圖FM2的多個通道。換句話說,第二特徵映射圖FM2的通道數目可對應于權重映射圖的數目。
第二層12可執行池化以產生第三特徵映射圖FM3。池化可被稱為採樣或下採樣(downsampling)。二維池化視窗PW可在第二特徵映射圖FM2上進行平移,且可選擇池化視窗PW與第二特徵映射圖FM2重疊的區域中的特徵值中的最大值(或者特徵值的平均值),以使得可從第二特徵映射圖FM2產生第三特徵映射圖FM3。第三特徵映射圖FM3的通道數目可與第二特徵映射圖FM2的通道數目相同。
在一些示例性實施例中,池化視窗PW可在第二特徵映射圖FM2上以池化視窗PW的大小為單位進行平移。平移量(即,池化窗口PW的步幅長度)可與池化窗口PW的長度相同。因此,第三特徵映射圖FM3的空間大小可小於第二特徵映射圖FM2的空間大小。然而,本發明概念並非僅限於此。第三特徵映射圖FM3的空間大小可相同於或大於第二特徵映射圖FM2的空間大小。第三特徵映射圖FM3的空間大小可根據池化視窗PW的大小、步幅長度、及是否已執行零填充來確定,
第三層13可對第三特徵映射圖FM3的特徵進行組合並對輸入資料的類別CL進行歸類。第三層13也可產生與類別CL對應的識別信號REC。輸入資料可對應於視頻流中所包括的幀資料。此時,第三層13可基於從第二層12提供的第三特徵映射圖FM3來提取與由幀資料表示的圖像中所包含的物體對應的類別,識別所述物體,並產生與所述物體對應的識別信號REC。
在神經網路中,低級層(例如,卷積層)可從輸入資料或輸入特徵映射圖提取低級特徵(例如,臉部圖像的邊緣或梯度)且高級層(例如,全連接層)可從輸入特徵映射圖提取或檢測高級特徵(即,類別)(例如,臉部圖像的眼睛及鼻子)。
參照圖1,神經網路裝置130可執行基於索引的神經網路運算。此時,索引表示特徵的空間位置或權重。索引可包括分別與二維矩陣的列及行對應的第一索引及第二索引。再次說明,輸入特徵索引及權重索引中的每一個索引可包括第一索引及第二索引,其中輸入特徵索引的第一索引對應於輸入特徵矩陣的列,輸入特徵索引的第二索引對應於輸入特徵矩陣的行,權重索引的第一索引對應于權重矩陣的列,且權重索引的第二索引對應于權重矩陣的行。
神經網路裝置130可基於索引執行與以上參照圖2闡述的神經網路的多個層中的至少一個層對應的運算。神經網路裝置130可基於呈矩陣形式的輸入特徵映射圖(在下文中,稱為輸入特徵矩陣)產生與每一個輸入特徵對應的包括索引及資料的輸入特徵清單且可基於索引執行運算。
如圖3所示,神經網路裝置130可從輸入特徵矩陣產生輸入特徵清單。輸入特徵清單可包括與輸入特徵的空間位置對應的第一索引RA及第二索引CA。索引可被稱為位址且第一索引RA及第二索引CA可分別被稱為列位址及行位址。輸入特徵清單也可包括與每一個索引對應的資料(即,輸入特徵值)。
基於索引的神經網路運算可包括索引運算。索引運算對輸入特徵清單中的每一個輸入特徵索引及不同的參數的索引執行運算。索引運算可被稱為索引重映射(index remapping)。當執行索引運算時,可簡化或跳過資料運算(即,對輸入特徵值執行的運算)。
如圖3所示,輸入特徵清單可包括與具有非零值的輸入特徵f1,1
、f1,4
、及f4,3
中的每一個對應的索引及資料。神經網路裝置130可對具有非零值的輸入特徵執行基於索引的運算。
同時,卷積運算中使用的權重映射圖可被轉換成權重列表且被提供至神經網路裝置130。權重列表可包括與具有非零值的每一個權重對應的索引及資料。為避免用語混淆,輸入特徵清單中的索引及資料可被稱為輸入特徵索引及輸入特徵值且權重清單中的索引及資料將被稱為權重索引及權重值。
神經網路裝置130可基於輸入特徵清單中的索引及權重清單中的索引對具有非零值的輸入特徵及權重執行卷積運算。
神經網路運算中的零值不會影響運算的結果。因此,神經網路裝置130可基於具有非零值的輸入特徵來產生輸入特徵清單且基於輸入特徵清單中的索引來執行運算,以使得神經網路裝置130可僅對具有非零值的輸入特徵執行運算。因此,可跳過對具有零值的輸入特徵進行的運算。
然而,本發明概念可並非僅限於此。輸入特徵清單還可包括與具有零值的輸入特徵對應的索引及資料。神經網路裝置130可基於具有零值或非零值的輸入特徵產生輸入特徵清單且可基於索引執行運算。
返回參照圖1,記憶體140是用於儲存資料的記憶元件。記憶體140可儲存作業系統(operating system,OS)、各種程式、及各種資料。記憶體140可儲存中間結果(例如,在運算期間以輸出特徵清單或輸出特徵矩陣形式產生的輸出特徵映射圖)。經壓縮的輸出特徵映射圖可儲存在記憶體140中。記憶體140還可儲存由神經網路裝置130使用的各種參數(例如,權重映射圖或權重列表)。
記憶體140可為動態隨機存取記憶體,但並非僅限於此。記憶體140可包括揮發性記憶體及非揮發性記憶體中的至少一個。非揮發性記憶體包括唯讀記憶體(read-only memory,ROM)、可程式設計唯讀記憶體(programmable ROM,PROM)、電可程式設計唯讀記憶體(electrically programmable ROM,EPROM)、電可擦除可程式設計唯讀記憶體(electrically erasable programmable ROM,EEPROM)、閃速記憶體、相變隨機存取記憶體(phase-change RAM,PRAM)、磁性隨機存取記憶體(magnetic RAM,MRAM)、電阻式隨機存取記憶體(resistive RAM,RRAM)、及鐵電式隨機存取記憶體(ferroelectric RAM,FeRAM)。揮發性記憶體可包括動態隨機存取記憶體、靜態隨機存取記憶體、同步動態隨機存取記憶體(synchronous DRAM,SDRAM)、相變隨機存取記憶體、磁性隨機存取記憶體、電阻式隨機存取記憶體、及鐵電式隨機存取記憶體。作為另外一種選擇,記憶體140可包括以下中的至少一種:硬碟驅動器(hard disk drive,HDD)、固態驅動器(solid state drive,SSD)、緊湊式閃速(compact flash,CF)卡、安全數位(secure digital,SD)卡、微型安全數位(micro-secure digital,micro-SD)卡、小型安全數位(mini-secure digital,mini-SD)卡、極限數位(extreme digital,xD)卡、或記憶棒(memory stick)。
感測器模組150可收集安裝在電子系統100上的電子裝置的周邊資訊。感測器模組150可從電子裝置外部感測或接收信號(例如,視訊訊號、音訊信號、磁性信號、生物信號、或觸控信號)且可將所感測的或接收的信號轉換成資料。對於這一操作來說,感測器模組150可包括例如以下各種感測裝置中的至少一個:麥克風、圖像拍攝裝置(image pickup device)、圖像感測器、光探測及測距(light detection and ranging,LIDAR)感測器、超聲波感測器、紅外感測器、生物感測器、及觸控感測器。
感測器模組150可向神經網路裝置130提供資料來作為輸入資料。舉例來說,感測器模組150可包括圖像感測器。此時,感測器模組150可拍攝電子裝置的外部環境,產生視頻流,且將視頻流的連續的資料幀依序提供到神經網路裝置130作為輸入資料。然而,本發明概念並非僅限於此。感測器模組150可向神經網路裝置130提供各種類型的資料。
通信模組160可包括與外部裝置進行通信的各種類型的有線介面或無線介面。舉例來說,通信模組160可包括能夠訪問以下網路的通信介面:局域網(local area network,LAN);無線局域網(wireless LAN,WLAN),例如無線保真(wireless fidelity,Wi-Fi);無線個人域網(wireless personal area network,WPAN),例如藍牙;無線通用序列匯流排(universal serial bus,USB);紫蜂(ZigBee);近場通信(near field communication,NFC);射頻識別(radio-frequency identification,RFID);電力線通信(power line communication,PLC);或移動蜂窩網路,例如第三代(third generation,3G)、第四代(fourth generation,4G)、或長期演化(long term evolution,LTE)。
通信模組160可從外部伺服器接收權重映射圖或權重列表。外部伺服器可基於大量學習資料執行訓練且可向電子系統100提供包括訓練權重的權重映射圖或權重列表。所接收到的權重映射圖或權重清單可儲存在記憶體140中。
通信模組160可基於運算結果(例如,在運算期間以輸出特徵清單或輸出特徵矩陣形式產生的輸出特徵映射圖)產生及/或傳送資訊信號。
如上所述,根據本發明概念的一些示例性實施例,神經網路裝置130可通過基於索引執行神經網路運算來高效地執行神經網路運算。具體來說,神經網路裝置130可在其中特徵映射圖或權重映射圖中非零值是稀疏的稀疏神經網路中產生與具有非零值的輸入特徵對應的輸入特徵清單且基於輸入特徵清單對具有非零值的輸入特徵執行運算,從而減少運算量。隨著運算量減少,神經網路裝置130的效率得到提高且神經網路裝置130及電子系統100的功耗得到降低。以下將詳細闡述基於索引的神經網路運算方法的各種實施例。
圖4是根據本發明概念一些示例性實施例的基於索引的神經網路運算方法的流程圖。圖4所示神經網路運算方法可在神經網路裝置130中執行且可被應用於圖2所示神經網路10的層11、12、及13的運算。
參照圖4,在操作S110中,神經網路裝置130可產生輸入特徵清單。舉例來說,神經網路裝置130可從矩陣形式的輸入特徵映射圖產生輸入特徵表。如以上參照圖3所闡述,輸入特徵清單可包括與每一個輸入(“輸入特徵”)對應的輸入特徵索引及輸入特徵值。所述輸入可具有非零值。輸入特徵索引可表示輸入特徵在輸入特徵映射圖上的位置。
在操作S120中,神經網路裝置130可基於輸入特徵清單中的輸入特徵索引執行索引運算並基於索引運算結果產生輸出特徵索引。索引運算的索引運算結果可為輸出特徵索引。
在操作S130中,神經網路裝置130可基於輸入特徵清單中的輸入特徵值執行資料運算並基於資料運算結果產生與輸出特徵索引對應的輸出特徵值。此時,當操作S120中產生的輸出特徵索引未被映射在輸出特徵映射圖中時,神經網路裝置130可跳過資料運算。資料運算的資料運算結果可為與輸出特徵索引對應的輸出特徵值。
在操作S140中,神經網路裝置130可基於輸出特徵索引及輸出特徵值產生輸出特徵清單。神經網路裝置130對輸入特徵清單中的所有輸入特徵執行操作S120及S130以產生輸出特徵清單。再次說明,在操作S110處,神經網路裝置130可產生包括多個輸入特徵索引及多個輸入特徵值的輸入特徵清單,所述多個輸入特徵索引對應於多個輸入特徵中的單獨的輸入特徵,所述多個輸入特徵值對應於所述多個輸入特徵中的單獨的輸入特徵,且神經網路裝置130可進一步基於單獨的相應輸入特徵分別執行一組操作S120及S130以分別基於輸入特徵清單的單獨的相應輸入特徵索引產生多個輸出特徵索引且基於單獨的相應輸入特徵值產生多個輸出特徵值。作為基於單獨的相應輸入特徵分別執行一組操作S120及S130的一部分,神經網路裝置130可基於確定出在運算期間不會影響輸出結果的輸出索引的有限選擇來對所述多個輸出索引中的輸出索引的有限選擇進行過濾,以使得所述多個輸出索引被過濾成包括在運算期間會影響輸出結果的輸出索引的其餘選擇。神經網路裝置130可將輸出特徵清單儲存在記憶體中。記憶體可位於神經網路裝置130內部或者可為位於神經網路裝置130外部的記憶體(例如,圖1所示記憶體140)。在一些示例性實施例中,神經網路裝置130可壓縮輸出特徵清單並將經壓縮的輸出特徵清單儲存在記憶體中。
在示例性實施例中,若輸出特徵清單是用於神經網路的最後一層,神經網路裝置130可基於輸出特徵清單產生資訊信號。
神經網路裝置130可通過對每一個輸入特徵索引及每一個輸入特徵值執行運算且過濾出在運算期間不會影響輸出結果的輸出索引(例如所述多個輸出索引中的有限的一些輸出索引)來減少運算量。另外,基於索引運算,神經網路裝置130可容易地處理神經網路的各種運算。結果,基於執行上述一個或多個運算,包括神經網路裝置130的電子系統的功能性可得到改善。
圖5是根據本發明概念一些示例性實施例的基於索引的卷積運算方法的流程圖。圖5所示運算方法可在圖1所示神經網路裝置130中執行。
參照圖5,在操作S210中,神經網路裝置130可從輸入特徵映射圖(即,輸入特徵矩陣)產生輸入特徵清單。輸入特徵清單可包括與輸入特徵矩陣的輸出特徵中的每一個對應的輸入特徵索引及輸入特徵值。輸入特徵索引可包括分別與輸入特徵矩陣的列及行對應的第一索引及第二索引。神經網路裝置130可產生與輸入特徵矩陣中的至少一個具有非零值的輸入特徵對應的輸入特徵清單。
之後,神經網路裝置130可基於預先儲存的輸入特徵清單及權重清單來執行基於索引的卷積運算。
在操作S220中,神經網路裝置130可基於輸入特徵索引及權重索引產生輸出特徵索引。神經網路裝置130可通過對輸入特徵索引及權重索引執行運算(“第一運算”)產生輸出特徵索引。
神經網路裝置130可通過對與具有非零值的輸入特徵對應的輸入特徵索引及與具有非零值的權重對應的權重索引執行運算來產生輸出特徵索引。
詳細來說,神經網路裝置130可通過對輸入特徵索引與權重索引進行相加來產生輸出特徵索引。神經網路裝置130可將輸入特徵索引的第一索引與權重索引的第一索引相加且將輸入特徵索引的第二索引與權重索引的第二索引相加。
在操作S230中,神經網路裝置130可基於輸入特徵值及權重值產生與輸出特徵索引對應的輸出特徵值。神經網路裝置130可通過基於輸入特徵值及權重值執行資料運算(“第二運算”)來產生輸出特徵值。神經網路裝置130可將輸入特徵值乘以權重值且可基於由所述乘法得到的乘法值產生輸出特徵值。神經網路裝置130可通過將與輸出特徵索引對應的多個乘法值相加來產生輸出特徵值。輸出特徵值及權重值可為非零的。
神經網路裝置130可通過在操作S220中基於輸入特徵索引及權重清單中的權重索引執行索引運算以及在操作S230中基於輸入特徵值及權重值執行資料運算來執行基於索引的卷積運算。在示例性實施例中,若輸出特徵是用於神經網路的最後一層,神經網路裝置130可基於輸出特徵值產生資訊信號。
在一些示例性實施例中,基於索引的卷積操運算方法也可包括其中神經網路裝置從權重矩陣產生權重列表的運算。舉例來說,神經網路裝置130可從外部(例如,神經網路裝置130的外部,或者配備有神經網路裝置130的電子裝置的外部伺服器)接收權重矩陣,且可從權重矩陣產生權重列表。權重列表可包括與權重矩陣中所包括的權重中的每一個對應的權重索引及權重值。神經網路裝置130可產生與權重矩陣中的至少一個具有非零值的權重對應的權重列表。神經網路裝置130可儲存權重清單且可在操作S220及S230中使用權重索引及權重值。然而,本發明概念並非僅限於此。神經網路裝置130可從外部(例如,神經網路裝置130的外部,或者配備有神經網路裝置130的電子裝置的外部伺服器)接收權重清單,且可儲存所述權重清單且接著使用所述權重列表。
圖6是卷積運算的圖。圖7A、圖7B、圖7C、圖7D、圖7E、及圖7F是圖6所示卷積運算的過程中的有效運算結果的快照的圖。
詳細來說,圖6示出基於具有稀疏的非零值分佈的輸入特徵矩陣及權重矩陣執行的卷積運算。圖7A、圖7B、圖7C、圖7D、圖7E、及圖7F示出分別表示在普通的神經網路中使用的遍歷卷積運算(traversal convolution operation)過程中的有效運算結果S710、S720、S730、S740、S750及S760的快照。
參照圖6,對包括非零輸入特徵f1,1
、f1,4
、及f4,3
的輸入特徵矩陣IFMX及包括非零權重W0,1
及W2,2
的權重矩陣WMX進行的卷積運算(表達為“*”)的結果可被表達為包括分別與第一位置至第六位置①、②、③、④、⑤、及⑥對應的輸出特徵的輸出特徵矩陣OFMX。
如上所述,在執行卷積運算時,具有零值的輸入特徵及/或具有零值的權重不會影響運算結果。儘管在遍歷卷積運算期間可產生許多快照,然而僅在圖7A、圖7B、圖7C、圖7D、圖7E、及圖7F中示出的六個快照會影響運算結果。如圖7A、圖7B、圖7C、圖7D、圖7E、及圖7F所示,輸出特徵可對應於對非零輸入特徵f1,1
、f1,4
、及f4,3
與非零權重W0,1
及W2,2
中的每一個進行卷積的結果。
圖8A、圖8B、及圖8C是用於解釋根據本發明概念一些示例性實施例的基於索引的卷積運算的圖。圖8A、圖8B、及圖8C示出對非零輸入特徵及非零權重執行的基於索引的卷積運算。
圖8A示出輸入特徵清單IFL的產生。參照圖8A,神經網路裝置130可相對於輸入特徵矩陣IFMX的非零輸入(例如,輸入特徵f1,1
、f1,4
、及f4,3
)產生輸入特徵清單IFL。輸入特徵清單IFL可對於每一個輸入特徵包括輸入特徵索引RA及CA以及輸入特徵值DATA。
圖8B示出權重列表WL的產生。權重清單WL的產生與輸入特徵清單IFL的產生相似。然而,可對卷積運算額外地執行對權重清單WL中的權重索引進行調整的操作。圖8B中所示的權重列表WL的產生可在向神經網路裝置130(圖1所示)提供權重的伺服器中執行或者可在神經網路裝置130中所包括的預處理電路中基於從伺服器提供的權重矩陣來執行。為便於說明起見,假設圖8B所示權重清單WL是在神經網路裝置130中產生。
神經網路裝置130可對於權重矩陣WMX的非零權重(例如,權重W0,1
及W2,2
)產生初始權重列表IWL。初始權重清單IWL的權重索引表示權重W0,1
及W2,2
中的每一個的空間位置(例如,位址)。此種權重索引可被稱為“初始權重索引”。
之後,初始權重索引可被調節成與特定運算對應。所述調整可包括:神經網路裝置130通過基於權重偏置索引(例如,(RA, CA) = (1, 1))形成初始權重清單IWL中的權重索引(“初始權重索引”)的鏡像來產生鏡像權重列表MWL,所述權重偏置索引指示權重矩陣WMX的中心。
神經網路裝置130可通過從鏡像權重清單MWL的權重索引(“鏡像權重索引”)減去權重偏置索引(即,(RA, CA) = (1, 1))來對鏡像權重索引進行偏置。結果,可產生(1, 0)及(−1, −1)作為各個權重W0,1
及W2,2
的權重索引,且可產生用於卷積運算的權重列表WL。
圖8C示出基於索引對輸入特徵與權重進行的運算。參照圖8C,神經網路裝置130可將輸入特徵索引與權重索引相加並將輸入特徵值乘以權重值。
舉例來說,可將各個輸入特徵f1,1
、f1,4
、及f4,3
的輸入特徵索引(1, 1)、(1, 4)、及(4, 3)中的每一個與權重W0,1
的權重索引(1, 0)相加,以使得可產生輸出特徵索引(2, 1)、(2, 4)、及(5, 3)。此時,可將每一個輸入特徵索引的第一索引RA與權重索引的第一索引RA相加且可將每一個輸入特徵索引的第二索引CA與權重索引的第二索引CA相加。
將輸入特徵f1,1
、f1,4
、及f4,3
中的每一個的輸入特徵值乘以權重W0,1
的權重值,以使得可對於權重W0,1
產生第一輸出特徵清單OFL1。另外,可將各個輸入特徵f1,1
、f1,4
、及f4,3
的輸入特徵索引(1, 1)、(1, 4)、及(4, 3)中的每一個與權重W2,2
的權重索引(−1, −1)相加,且將輸入特徵f1,1
、f1,4
、及f4,3
中的每一個的輸入特徵值乘以權重W2,2
的權重值,以使得可對於權重W2,2
產生第二輸出特徵清單OFL2。
由於在第一輸出特徵清單OFL1與第二輸出特徵清單OFL2之間不存在重疊的輸出特徵索引,因此第一輸出特徵清單OFL1中的輸出特徵及第二輸出特徵清單OFL2中的輸出特徵可被映射在矩陣上,而無需額外的運算。可以看出,圖8C所示的輸出特徵矩陣OFMX與圖6所示矩陣相同。
遍歷卷積運算因遍歷而在本質上會涉及到冗餘。因此,不容易跳過對具有零值的輸入特徵及權重進行的運算(即,不會影響輸出特徵的無意義的運算)。然而,當如圖8C所示使用根據本發明概念一些示例性實施例的基於索引的卷積運算時,神經網路裝置130基於非零輸入及非零權重來執行基於索引的運算,以消除無意義的運算。結果,運算量得到減少。
圖9A、及圖9B是用於解釋根據本發明概念一些示例性實施例的基於索引的卷積運算的圖。圖9A示出輸入特徵索引的產生。圖9B示出基於圖9A所示輸入特徵索引及圖8B所示權重索引執行的基於索引的卷積運算。
參照圖9A,神經網路裝置130可對於輸入特徵矩陣IFMX的非零輸入(例如,輸入特徵f1,1
、f1,4
、f3,2
、及f4,3
)產生輸入特徵清單IFL。輸入特徵清單IFL可對於每一個輸入特徵包括輸入特徵索引RA及CA以及輸入特徵值DATA。當對圖9A與圖8A進行比較時,輸入特徵f3,2
被添加到輸入特徵矩陣IFMX,且因此,與輸入特徵f3,2
對應的輸入特徵索引(3, 2)及輸入特徵值f3,2
被添加到輸入特徵清單IFL。
當基於圖9A所示輸入特徵清單IFL以及圖8B所示權重清單WL執行基於索引的卷積運算時,可產生對於權重W0,1
的第一輸出特徵清單OFL1及對於權重W2,2
的第二輸出特徵清單OFL2,如圖9B所示。此時,在第一輸出特徵清單OFL1與第二輸出特徵清單OFL2之間存在重疊的輸出特徵索引(2, 1)。可對與輸出特徵索引(2, 1)對應的多個特徵值(即,f1,1
´W0,1
及f3,2
´W2,2
)進行相加,且可產生相加結果作為與輸出特徵索引(2, 1)對應的輸出特徵值。
根據本發明概念的當前實施例,當使用基於索引的卷積運算時,神經網路裝置130可使用索引運算產生輸出特徵索引且使用資料運算產生輸出特徵值。然而,當對於一個輸出特徵索引存在重疊的輸出特徵索引(也就是說,當對於一個輸出特徵索引存在多個資料運算結果(即,乘法值))時,神經網路裝置130可將所述多個乘法值相加以產生與所述輸出特徵索引對應的輸出特徵值。
如以上參照圖8A至圖9B所述,神經網路裝置130可基於索引對具有非零值的輸入特徵及權重執行卷積運算。因此,卷積運算所需要的運算量可減少。因此,神經網路裝置130的運算速度可提高且神經網路裝置130的功耗可降低。
圖10是根據本發明概念一些示例性實施例的基於索引的零填充方法的流程圖。
參照圖10,在操作S310中,神經網路裝置130可產生輸入特徵清單。舉例來說,神經網路裝置130可從呈矩陣形式的輸入特徵映射圖產生輸入特徵清單,所述輸入特徵清單包括對於具有非零值的輸入特徵中的每一輸入特徵的索引及資料。
在操作S320中,神經網路裝置130可將偏置索引加到輸入特徵清單的每一個索引。因此,神經網路裝置130可執行零填充。這將參照圖11A及圖11B來詳細闡述。
圖11A是在神經網路中對輸入特徵映射圖IFM應用零填充的實例的圖。圖11B是用於解釋根據本發明概念一些示例性實施例的基於索引的零填充方法的圖。在圖式中,每一個圖元頂部處的數位是輸入特徵的索引且每一個圖元底部處的數位是輸入特徵值。
神經網路中的零填充是在所有向外的方向(即,列方向及行方向)上對輸入特徵映射圖IFM添加零。當對輸入特徵映射圖IFM應用零填充時,可產生帶有零填充的輸入特徵映射圖(即,經零填充的輸入特徵映射圖IFM_Z)。當將一個零加到輸入特徵映射圖IFM的每一個向外的方向時,如圖11A所示,每一個輸入特徵的位置(即,索引)可增加1。舉例來說,輸入特徵D0,0
的索引(0, 0)可變成(1, 1)。如上所述,當在每一個向外的方向上將“n(其中“n”是至少為1的整數)”個零加到輸入特徵映射圖IFM時,每一個輸入特徵的索引可增加“n”。在每一個方向上添加的零的數目(在下文中被稱為零值的長度(length of zero value)或零值長度(zero-value length))“n”可隨著在應用零填充之後基於輸入特徵執行的運算的種類及特性而變化。
當在遍歷卷積運算期間對呈矩陣形式的輸入特徵映射圖IFM應用零填充時,可產生具有與輸入特徵映射圖IFM的相同大小的輸出特徵映射圖。用於執行遍歷卷積運算的神經網路裝置需要包括控制邏輯,控制邏輯將零加到輸入特徵映射圖IFM以支援零填充。
圖11B是用於解釋根據本發明概念一些示例性實施例的基於索引的零填充方法的圖。詳細來說,圖11B示出具有非零值的輸入特徵的輸入特徵映射圖IFMa以及已除去通過對輸入特徵映射圖IFMa應用基於索引的零填充而產生的零的經填充輸入特徵映射圖IFM_Za。在圖11B中,輸入特徵映射圖IFMa及IFM_Za是輸入特徵清單且為說明方便起見被表示為矩陣形式。IFMa可被稱為初始輸入特徵清單。
在基於索引的神經網路運算中可跳過對具有零值的輸入特徵進行的運算。當使用零填充時,神經網路裝置130可產生包括具有非零值的輸入特徵的輸入特徵映射圖IFMa(即,初始輸入特徵清單)且可產生已除去通過對輸入特徵映射圖IFMa應用基於索引的零填充而產生的零的經填充輸入特徵映射圖IFM_Za(即,經填充輸入特徵清單)。再次說明,神經網路裝置130可產生初始輸入特徵清單IFMa,初始輸入特徵清單IFMa包括與所述輸入特徵的位置對應的初始輸入特徵索引及與所述輸入特徵對應的輸入特徵值。
用於執行基於索引的神經網路運算的神經網路裝置130可通過基於偏置索引(z, z)在輸入特徵清單(即,呈清單形式的輸入特徵映射圖IFMa)中對索引進行重映射來產生經填充輸入特徵映射圖IFM_Za,偏置索引(z, z)在本文中也被稱為“特徵偏置索引”。舉例來說,神經網路裝置130可將偏置索引(z, z)加到輸入特徵映射圖IFMa的輸入特徵的索引以對所述索引進行重映射。此時,可根據零值長度來確定偏置索引(z, z)。舉例來說,當在輸入特徵映射圖IFM的所有的向外方向上將一個零加到輸入特徵映射圖IFM時,如圖11A所示,也就是說,當零值長度是1時,偏置索引(z, z)可被設定為(1, 1)。當零值長度是2時,偏置索引(z, z)可被設定為(2, 2)。當零值長度是“n”時,偏置索引(z, z)可被設定為(n, n)。如上所述,可基於零值長度來設定偏置索引(z, z)。
圖11B示出在其中在輸入特徵映射圖IFMa的所有的向外方向上添加一個零的情形中的已除去零的經填充輸入特徵映射圖IFM_Za。神經網路裝置130可通過將偏置索引(1, 1)加到輸入特徵映射圖IFMa的索引來對輸入特徵的索引進行重映射。舉例來說,將偏置索引(1, 1)加到輸入特徵映射圖IFMa的輸入特徵D0,0
的索引(0, 0),以使得輸入特徵D0,0
的索引可從(0, 0)重映射到(1, 1)。將偏置索引(1, 1)加到輸入特徵D2,3
的索引(2, 3),以使得輸入特徵D2,3
的索引可從(2, 3)重映射到(3, 4)。神經網路裝置130可將偏置索引(1, 1)加到輸入特徵映射圖IFMa的輸入特徵D0,0
至D5,5
中的每一個的索引,從而產生已除去零的經填充輸入特徵映射圖IFM_Za。
如上所述,用於執行基於索引的神經網路運算的神經網路裝置130可基於根據零值長度設定的偏置索引(z, z)對呈清單形式的輸入特徵映射圖IFMa的索引進行重映射,從而容易地產生已除去零的經填充輸入特徵映射圖IFM_Za,而無需使用用於零填充的單獨的控制邏輯。
圖12是根據本發明概念一些示例性實施例的在基於索引的卷積運算中使用步幅的方法的流程圖。步幅可在卷積運算期間執行且可在圖5所示操作S220及S230中執行。
參照圖12,神經網路裝置130可在操作S410中將輸入特徵索引與權重索引相加且可在操作S420中將相加結果(即相加索引)除以步幅長度。
在操作S430中,神經網路裝置130可判斷所述除法是否存在餘數。當存在餘數時,在操作S440中,神經網路裝置130可跳過對輸入特徵索引及權重值進行的運算。當所述除法存在餘數時,相加索引不會被映射到輸出特徵映射圖上,且因此,對索引進行的資料運算的結果不會影響輸出特徵映射圖。因此,神經網路裝置130可跳過對輸入特徵值及權重值進行的運算。
另外,當所述除法不存在餘數時(例如,除法完成之後),神經網路裝置130在操作S450中可選擇商作為輸出特徵索引且在操作S460中可對輸入特徵值及權重值執行運算(例如,乘法及加法)。可提供由所述運算得到的運算值來作為輸出特徵索引的輸出特徵值。
舉例來說,當在將第一輸入特徵的輸入特徵索引與第一權重的權重索引相加的結果除以步幅長度之後不存在餘數時,可選擇商作為輸出特徵索引,且可提供對與第一輸入特徵對應的輸入特徵值以及與第一權重對應的權重值執行運算的結果作為輸出特徵索引的輸出特徵值。當在將第二輸入特徵的輸入特徵索引與第二權重的權重索引除以步幅長度之後存在餘數時,不選擇對第二輸入特徵的輸入特徵索引及第二權重的權重索引進行的運算的結果來作為輸出特徵索引。因此,可省略對與第二輸入特徵對應的輸入特徵值以及與第二權重對應的權重值進行的運算。
如上所述,通過對索引進行的運算,可在基於索引的卷積運算中容易地使用步幅,且運算量可減少。
圖13A及圖13B是當在卷積中使用步幅時產生的輸出特徵矩陣的圖。
圖13A示出其中對矩陣逐個圖元地應用步幅的實例。圖13B示出其中在矩陣上對每三個圖元應用步幅的實例。當步幅長度增大時,輸出特徵矩陣的大小可減小。當將圖13A所示輸出特徵矩陣OFMX_S1與圖13B所示輸出特徵矩陣OFMX_S3進行比較時,可看出,在圖13A所示輸出特徵矩陣OFMX_S1中以陰影框標記的輸出特徵構成圖13B所示輸出特徵矩陣OFMX_S3,且僅輸出特徵的索引發生改變。
如上所述,當根據本發明概念的一些示例性實施例使用基於索引的卷積運算時,神經網路裝置130可將輸入特徵索引與權重索引相加,可將所述相加索引除以步幅,且當在除法之後不存在餘數時選擇商作為輸出特徵索引。
舉例來說,由於在圖13A中步幅長度是1,因此輸出特徵矩陣OFMX_S1中的每一個輸出特徵的索引是由對輸入特徵索引與權重索引進行的相加得到的相加索引。
當在圖13B所示的實例中,在將相加索引除以步幅長度3之後不存在餘數時,可產生商作為輸出特徵矩陣OFMX_S3的輸出特徵索引。
神經網路裝置130可通過對與輸出特徵索引對應的輸入特徵值及權重值執行運算來產生輸出特徵值。神經網路裝置130可不對不與輸出特徵索引對應的輸入特徵值及權重值執行運算。
圖14是根據本發明概念一些示例性實施例的基於索引的池化方法的流程圖。
參照圖14,在操作S510中神經網路裝置130可基於採樣單元對輸入特徵索引進行重映射。一個索引可被重映射到池化視窗中所包括的多個輸入特徵。可提供經過重映射的索引作為輸出特徵映射圖的輸出特徵索引。
在操作S520中,神經網路裝置130可對具有相同的重映射索引的輸入特徵執行池化運算。換句話說,可對池化視窗中所包括的輸入特徵執行池化運算。可對輸入特徵執行最大池化或平均池化。
在操作S530中,神經網路裝置130可提供由池化運算得到的池化運算值來作為與輸出特徵索引對應的輸出特徵值。將參照圖15詳細闡述基於索引的池化方法。
圖15是用於解釋根據本發明概念一些示例性實施例的基於索引的池化運算的圖。為便於說明起見,特徵映射圖被表示為矩陣形式。
如以上參照圖2所述,在池化層,輸入特徵映射的大小可減小。因此,神經網路的參數及運算量可減少。如圖15所示,可對10´10輸入特徵映射圖(A)應用2´2池化窗口PW。當對每一個2´2採樣單元執行池化運算時,可產生5´5輸出特徵映射圖(C)。儘管在圖15中示出2´2採樣,然而採樣單元可作出各種改變。
根據一些示例性實施例,神經網路裝置130可基於索引執行池化。神經網路裝置130可將輸入特徵索引除以特定的(或作為另外一種選擇,預定的)採樣長度(“子採樣大小(sub-sampling size)”)且可選擇所述除法的商作為對於輸入的重映射索引(“與輸入特徵對應的輸出特徵索引”)。因此,如在經過索引重映射的輸入特徵映射圖(B)中所示,索引可對於輸入特徵被重映射,且多個輸入特徵可根據採樣單元而具有相同的重映射索引。重映射索引可為輸出特徵索引,即,輸出特徵矩陣中將儲存輸出特徵的空間位置。在將輸入特徵值儲存在根據對應的輸出特徵索引的位置之前,可根據池化的種類對輸入特徵值執行運算。
舉例來說,當對輸入特徵矩陣應用最大池化(max pooling)時,可提供2´2採樣單元中所包括的輸入特徵值(即,與一個輸出特徵索引對應的輸入特徵值)中的最大值來作為與輸出特徵索引對應的輸出特徵值。
在另一個實例中,當對輸入特徵矩陣應用平均池化(average pooling)時,可對與一個輸出特徵索引對應的各個輸入特徵值進行相加,可將由所述相加得到的加法值除以輸入特徵值的數目,且可提供除法結果作為與輸出特徵索引對應的輸出特徵值。然而,本發明概念並非僅限於這些實例,且可使用各種類型的池化。
當提供對與每一個輸出特徵索引對應的輸入特徵執行池化運算的結果作為輸出特徵值時,可產生輸出特徵映射圖(C)。
以上已參照圖4至圖15闡述了基於索引的神經網路運算方法的各種實施例。然而,本發明概念並非僅限於這些實施例。可基於索引執行在各種神經網路中使用的各種運算。
圖16是根據本發明概念一些示例性實施例的神經網路裝置200的方塊圖。
參照圖16,在一些示例性實施例中,神經網路裝置200是圖1所示神經網路裝置130。因此,神經網路裝置130的說明可應用於神經網路裝置200。
神經網路裝置200可包括控制器220、神經網路處理器210、及系統記憶體230。神經網路裝置200也可包括直接記憶體存取(direct memory access,DMA)控制器以將資料儲存在外部記憶體中。神經網路裝置200的神經網路處理器210、控制器220、及系統記憶體230可通過系統匯流排來相互通信。神經網路裝置200可被實作為半導體晶片(例如,系統晶片(system-on-chip,SoC)),但並非僅限於此。神經網路裝置200可通過多個半導體晶片來實作。在本實施例中,控制器220及神經網路處理器210示出分離的部件,但並非僅限於此,並且控制器220可包括在神經網路處理器210中。
控制器220可被實作為中央處理器或微處理器。控制器220可控制神經網路裝置200的所有操作。在示例性實施例中,控制器220可執行儲存在系統記憶體230中的指令的程式,來控制神經網路裝置200。控制器220可控制神經網路處理器210及系統記憶體230的操作。舉例來說,控制器220可設定並管理參數使得神經網路處理器210能夠正常執行神經網路的各個層。
控制器220可從權重矩陣產生權重列表並將權重清單提供至神經網路處理器210。然而,本發明概念並非僅限於此。在神經網路裝置200或神經網路處理器210中可包括用於從權重矩陣產生權重清單的單獨的處理電路。
神經網路處理器210可包括多個處理電路211。各處理電路211可被配置成並行地同時運行。另外,處理電路211可彼此獨立地運行。處理電路211中的每一個可被實作為執行指令的核心電路。處理電路211可執行以上參照圖4至圖15闡述的基於索引的運算。
神經網路裝置210可由硬體電路實作。舉例來說,神經網路處理器210可被實作為積體電路。神經網路處理器210可包括以下中的至少一個:中央處理器、多核處理器、陣列處理器、向量處理器、數位訊號處理器(digital signal processor,DSP)、現場可程式設計閘陣列(field-programmable gate array,FPGA)、可程式設計邏輯陣列(programmable logic array,PLA)、應用專用積體電路(application specific integrated circuit,ASIC)、可程式設計邏輯電路系統、視頻處理器(video processing unit,VPU)、及圖形處理器(graphics processing unit,GPU)。然而,本發明概念並非僅限於此。
神經網路裝置210也可包括內部記憶體212。內部記憶體212可為神經網路處理器210的高速緩衝記憶體。內部記憶體212可為靜態隨機存取記憶體,但並非僅限於此。內部記憶體212可被實作為神經網路處理器210的緩衝器或高速緩衝記憶體或者神經網路處理器210的其他種類記憶體中的一種。內部記憶體212可儲存根據由處理電路211執行的運算而產生的資料,例如輸出特徵索引、輸出特徵值、或者在運算期間產生的各種資料。
系統記憶體230可被實作為隨機存取記憶體(例如,動態隨機存取記憶體或靜態隨機存取記憶體)。系統記憶體230可通過記憶體控制器連接到神經網路處理器210。系統記憶體230可儲存各種類型的程式及資料。系統記憶體230可儲存從外部裝置(例如,伺服器或外部記憶體)提供的權重映射圖。
系統記憶體230可緩衝與將由神經網路處理器210執行的下一層對應的權重映射圖。當在處理電路211中使用權重映射圖執行運算時,可從外部記憶體(例如,圖1中的記憶體140)輸出權重映射圖且將權重映射圖儲存在神經網路處理器210的內部記憶體212(在本文中也被稱為“第二記憶體”)中或者處理電路211中所包括的專用記憶體中。權重映射圖可被儲存為矩陣形式(即,權重矩陣)或者儲存為基於索引的清單形式(即,權重列表)。系統記憶體230(在本文中也被稱為“第一記憶體”)可在將從記憶體140(在本文中也被稱為“外部記憶體”)輸出的權重映射圖提供到內部記憶體212或處理電路211中所包括的專用記憶體之前臨時儲存權重映射圖。
系統記憶體230也可臨時儲存從神經網路處理器210輸出的輸出特徵映射圖。
圖17是根據本發明概念一些示例性實施例的神經網路處理器的方塊圖。圖17詳細示出圖16所示神經網路處理器210。
參照圖17,神經網路處理器210可包括至少一個處理電路211、清單製作器(list maker)213、及內部記憶體212(“第二記憶體”)。神經網路處理器210也可包括壓縮器214及選擇器215。處理電路211可包括索引重映射器21、第一資料運算電路22(“乘法器”)、第二資料運算電路23(“累加器”)及專用記憶體24(“第三記憶體”)。
清單製作器213可從輸入特徵產生輸入特徵清單。列表製作器213可識別具有非零值的輸入並產生具有非零值的輸入的輸入特徵清單。
當所接收到的輸入特徵是經壓縮的輸入特徵矩陣時,清單製作器213可將所述輸入特徵矩陣解壓縮並基於經解壓縮的輸入特徵矩陣產生輸入特徵清單。當所接收到的輸入特徵包括經壓縮的輸入特徵清單時,清單製作器213可通過執行解壓縮來產生輸入特徵清單。
選擇器215可將從列表製作器213輸出的輸入特徵清單或者從內部記憶體212接收的輸入特徵清單選擇性地提供至處理電路211。舉例來說,選擇器215在第一運行模式中可將輸入特徵清單從清單製作器213提供至處理電路211。第一運行模式可為線性運算模式。舉例來說,第一運行模式可為卷積模式。選擇器215在第二運行模式中可將輸入特徵清單從內部記憶體212提供至處理電路211。第二運行模式可為使用啟動函數(activation function)的池化模式或非線性模式。舉例來說,在第二運行模式中,可執行池化運算或者可將啟動函數應用於在第一運行模式中產生的輸出特徵值。
索引重映射器21可執行索引運算並產生輸出特徵索引。索引重映射器21可執行以上參照圖4至圖15闡述的索引運算。索引重映射器21可包括算數運算電路。
索引重映射器21可從選擇器215接收輸入特徵清單且從專用記憶體24接收權重列表。索引重映射器21可對輸入特徵索引與權重索引進行相加以產生相加索引。索引重映射器21可將相加索引除以特定的(或者作為另外一種選擇,預定的)整數(例如,在池化運算中使用的步長或採樣單元)。
索引重映射器21可對已產生的索引進行過濾以使得能夠對所產生的索引中的有意義的索引執行資料運算。舉例來說,索引重映射器21可將所產生的索引分類成輸出特徵索引及其他索引以使得能夠在第一資料運算電路22及/或第二資料運算電路23中對輸出特徵清單中所包括的輸出特徵索引執行資料運算。索引重映射器21可控制第一資料運算電路22及/或第二資料運算電路23以不對其他索引執行運算。
索引重映射器21可請求讀取儲存在專用記憶體24中的資料。舉例來說,索引重映射器21可請求專用記憶體24讀取權重列表。再次說明,索引重映射器21可在第二運行模式中向專用記憶體24傳送讀取請求信號,所述讀取請求信號與要讀取所述多個參數中與第一輸入特徵值對應的參數的請求相關聯。作為另外一種選擇,索引重映射器21可請求專用記憶體24輸出與輸入特徵值對應的參數(例如,輸出特徵清單中的輸出特徵值)。
專用記憶體24可儲存在由處理電路211執行操作期間使用的各種資料。舉例來說,專用記憶體24可儲存權重清單。專用記憶體24也可儲存查找表,所述查找表包括與輸入特徵值對應的參數。專用記憶體24可回應於索引重映射器21的請求來將權重清單提供至索引重映射器21及第一資料運算電路22。專用記憶體24也可回應於索引重映射器21的請求來將參數提供至第一資料運算電路22及第二資料運算電路23。
第一資料運算電路22與第二資料運算電路23可執行資料運算。第一資料運算電路22與第二資料運算電路23可形成資料運算電路。第一資料運算電路22與第二資料運算電路23可執行以上參照圖4至圖15闡述的資料運算。
第一資料運算電路22可執行乘法運算。第一資料運算電路22可包括乘法器。當處理電路211執行卷積運算時,第一資料運算電路22可將輸入特徵清單中的輸入特徵值乘以權重列表中的權重值。乘法結果可被提供至第二資料運算電路23。第一資料運算電路22可由乘法器的陣列來實作。
第二資料運算電路23可執行加法運算且也執行除法運算。另外,第二資料運算電路23可執行其他各種類型的運算。第二資料運算電路23可被實作為累加器或算數運算電路。第二資料運算電路23可被實作為運算電路(operational circuit)的陣列。舉例來說,第二資料運算電路23可被實作為累加器的陣列。
內部記憶體212可儲存從處理電路211輸出的資料。舉例來說,內部記憶體212可儲存從第二資料運算電路23接收的輸出特徵索引及對應的輸出特徵值。換句話說,內部記憶體212可儲存輸出特徵清單。另外,內部記憶體212可在運算期間儲存從處理電路211輸出的中間結果。中間結果可被提供至第二資料運算電路23以在第二資料運算電路23的運算中使用。
儲存在內部記憶體212中的資料可通過選擇器215被提供至處理電路211。換句話說,由處理電路211的當前運算得到的資料可被用於下一運算。舉例來說,因處理電路211的卷積運算而產生的輸出特徵清單可被提供至處理電路211作為輸入特徵清單且處理電路211可對輸入特徵清單執行池化運算。
同時,輸出特徵清單可從第二資料運算電路23被輸出到外部(例如,電子系統100的記憶體140),或者可被儲存在內部記憶體212中且接著被輸出。輸出特徵清單可通過壓縮器214被輸出。壓縮器214可將輸出特徵清單壓縮並輸出經壓縮的輸出特徵清單。
以下將參照圖18及圖19闡述根據運行模式進行的處理器的運算。
圖18是用於解釋根據本發明概念一些示例性實施例的神經網路處理器在第一運行模式中運行的狀態的圖。第一運行模式可為卷積運算模式。
參照圖18,列表製作器213可接收輸入特徵映射圖IFM並產生輸入特徵清單。清單製作器213可將輸入特徵清單提供至處理電路211。
索引重映射器21及第一資料運算電路22可分別從儲存在專用記憶體24中的權重清單接收權重索引及與權重索引對應的權重值。索引重映射器21可接收權重索引且第一資料運算電路22可接收權重值。
索引重映射器21可基於輸入特徵索引及權重索引執行索引運算且第一資料運算電路22可對輸入特徵值及權重值執行資料運算。索引重映射器21可將輸入特徵索引與權重索引相加且也可對所述加法值執行除法以產生輸出特徵值。
索引重映射器21也可判斷輸出特徵索引是否是有意義的。當確定輸出特徵索引是無意義的時,索引重映射器21可控制第一資料運算電路22不對與輸出特徵索引對應的輸入特徵值及權重值執行運算。因此,第一資料運算電路22可對僅與有意義的輸出特徵索引對應的輸入特徵值及權重值執行運算。
第二資料運算電路23可將從第一資料運算電路22輸出的運算結果中與同一輸出特徵索引對應的運算結果相加。因此,第一資料運算電路22及第二資料運算電路23可執行卷積運算中所包括的乘法運算及加法運算。
第二資料運算電路23可將通過卷積運算產生的輸出特徵清單儲存在內部記憶體212中或者可通過壓縮器214輸出輸出特徵清單。
圖19是用於解釋根據本發明概念一些示例性實施例的神經網路處理器在第二運行模式中運行的狀態的圖。第二運行模式可在第一運行模式之後執行。在第二運行模式中,啟動函數可被應用於在第一運行模式中產生的輸出特徵清單中的輸出特徵值。
參照圖19,在第一運行模式中執行的運算的結果可被儲存在內部記憶體212中。舉例來說,內部記憶體212可基於索引來儲存輸出特徵清單(即,對輸入特徵清單執行卷積運算的結果)。
索引重映射器21可從內部記憶體212接收輸入特徵值(即,輸出特徵清單中的輸出特徵值)。專用記憶體24(在本文中也被稱為“第三記憶體”)可儲存查找表,所述查找表包括與輸入特徵值對應的參數。再次說明,所述查找表可包括與多個特徵值中的每一特徵值對應的多個參數。在神經網路中可使用符號函數(sign function)、S型函數(sigmoid function)、或指數函數(exponential function)。這些啟動函數具有非線性。查找表可包括使得具有非線性的啟動函數能夠作為分段線性函數(piecewise linear function)來進行計算。輸入特徵值“v”的啟動函數的輸出“f”可被表達為對輸入特徵值“v”應用分段線性函數的結果,如公式1中所定義: f = c(v)·v + b(v) (1) 其中c(v)是與輸入特徵值“v”對應的係數,且b(v)是與輸入特徵值“v”對應的偏置值。查找表可包括與不同的輸入特徵值對應的參數。
索引重映射器21可請求從專用記憶體24得到與輸入特徵值“v”對應的參數。這一請求可包括向專用記憶體24傳送讀取請求信號,所述讀取請求信號與要讀取所述多個參數中與輸入特徵值對應的參數的請求相關聯。所接收的參數可包括從專用記憶體24接收到的第一參數及第二參數,其中第一參數及第二參數對應於輸入特徵值。因此,可從儲存在專用記憶體24中的查找表輸出與輸入特徵值“v”對應的參數(即,c(v)及b(v))。再次說明,輸出特徵值可基於輸入特徵值、第一參數、及第二參數產生。
參數c(v)可被提供至第一資料運算電路22且參數b(v)可被提供至第二資料運算電路23。第一資料運算電路22可基於輸入特徵值“v”及參數c(v)執行乘法運算且第二資料運算電路23可基於從第一資料運算電路22接收到的運算結果及參數b(v)執行加法運算。結果,可產生輸入特徵值“v”的啟動函數的輸出“f”。多個輸入特徵值的啟動函數的輸出特徵值可被輸出至神經網路處理器的外部。啟動函數的輸出特徵值可在被輸出至外部之前由壓縮器214壓縮。
圖20是在神經網路中在卷積運算期間的資料流程程的圖。
參照圖20,輸入特徵映射圖IFM及輸出特徵映射圖OFM可具有三維矩陣形式。當執行卷積運算時,具有三維矩陣形式的多個內核KN0至KN4可被應用於輸入特徵映射圖IFM。結果,可產生輸出特徵映射圖OFM。
內核KN0至KN4可為彼此不同的濾波器以從輸入特徵映射圖IFM獲得不同的特性。在內核KN0至KN4的每一個中所包括的通道CH的數目與輸入特徵映射圖IFM的通道的數目相同。
當執行卷積運算時,內核KN0至KN4中的每一個可在輸入特徵映射圖IFM的x-y平面上平移。因此,可逐一通道地對輸入特徵映射圖IFM以及內核KN0至KN4執行卷積運算。舉例來說,內核KN0至KN4的通道CHk可在卷積運算中被應用於輸入特徵映射圖IFM的通道CHk。當通過將內核KN0至KN4中的一個內核應用於輸入特徵映射圖IFM來執行卷積運算時,可對各個通道獨立地執行卷積運算。可對具有相同空間位置的輸出特徵值(例如,從卷積運算得到的輸出特徵中在x-y平面上相同的位置且對應於不同通道)進行相加。因此,通過將內核KN0至KN4中的一個應用於輸入特徵映射圖IFM來執行卷積運算的結果可對應於輸出特徵映射圖OFM的一個通道。
當基於所述多個內核KN0至KN4執行卷積運算時,可產生多個通道。如圖20所示,當基於五個內核KN0至KN4來執行卷積運算時,輸出特徵映射圖OFM可包括五個通道。
分別使用內核KN0至KN4進行的卷積運算可同時並行地執行。卷積運算可在不同的處理電路中並行地執行。然而,這種卷積運算可隨著神經網路的硬體結構而變化。
圖21及圖22是根據本發明概念一些示例性實施例的在基於索引的神經網路中執行的卷積運算期間的資料處理的圖。圖21示出使得基於索引的卷積運算能夠在稀疏的神經網路中高效執行的資料處理,所述稀疏的神經網路在輸入特徵映射圖及權重特徵映射圖中具有稀疏的非零值。
如以上參照圖20所闡述,基於內核KN0至KN4的卷積運算可分別在不同的處理電路中同時並行地執行。然而,根據本發明概念的當前實施例,當在基於索引的神經網路中(且具體來說,在稀疏的神經網路中)在不同的處理電路中針對輸入特徵映射圖IFM的各個通道同時並行地執行卷積運算時,可執行對具有非零值的輸入特徵進行的運算且可跳過對具有零值的輸入特徵進行的運算。由於具有非零值的輸入特徵在輸入特徵映射圖IFM的多個通道中具有不同的空間位置,可通過在不同的處理電路中針對輸入特徵映射圖IFM的各個通道分別執行運算來有利於跳過對零值進行的運算。
如上所述,為了在不同的處理電路中對於輸入特徵映射圖IFM的各個通道並行地執行卷積運算,基於索引的神經網路可以通道來對每一個內核進行劃分且將各個內核的相同通道重新分組成一個通道群組。
參照圖21,可將圖20所示第一內核KN0至第五內核KN4的通道重新分組。舉例來說,內核KN0至KN4的第一通道可被重新分組成第一通道群組CH0,且內核KN0至KN4的第二通道可被重新分組成第二通道群組CH1。在這種方式中,內核KN0至KN4的多個通道可被重新分組成不同的通道群組。由於每一個內核的通道數目與輸入特徵映射圖的通道數目“n”相同,因此通過重新分組可產生“n”個通道群組CH0至CHn-1。每一個通道群組可被稱為核心。
當執行卷積運算時,在通道群組CH0至CHn-1中可使用與輸入特徵映射圖FIM的每一個通道對應的通道群組。舉例來說,可對輸入特徵映射圖IFM的第二通道及第二通道群組CH1執行卷積運算。通道群組CH0至CHn-1中的每一個包括內核KN0至KN4的通道,且因此,基於通道群組CH0至CHn-1中的一個通道群組的卷積運算的結果可影響輸出特徵映射圖OFM的所有第一通道至第五通道。當在對於“n”個通道群組的卷積運算結果中,對從一個內核產生的且在輸出特徵映射圖OFM上對應於一個空間位置的卷積運算結果進行相加時,可完成輸出特徵映射圖。
參照圖22,可將位於不同的通道處且具有相同的空間位置(即,相同的索引)的輸入特徵IFB與不同的通道群組進行卷積。由於在根據本發明概念一些示例性實施例的基於索引的神經網路中對非零值進行運算,因此不會對具有零值的輸入特徵執行運算。因此,分別與包括具有零值的第一輸入特徵F0的第一通道、包括具有零值的第六輸入特徵F5的第六通道、以及包括具有零值的第九輸入特徵F8的第九通道對應的處理電路的運算可被中斷。然而,由於基於索引的神經網路裝置200是基於與具有非零值的輸入特徵對應的索引來運行,且具有非零值的輸入特徵被提供至相應的處理電路,因此處理電路可實質上運行到在輸入特徵映射圖IFM的每一個通道中完成對具有非零值的輸入特徵進行的運算為止。
圖23是根據本發明概念一些示例性實施例的神經網路處理器210a的圖。神經網路處理器210a可具有適用於參照圖21及圖22所闡述的稀疏的神經網路運算的硬體結構且可針對輸入特徵映射圖IFM的各個通道並行地執行運算。
參照圖23,神經網路處理器210a可包括選擇器215a、多個處理電路211a_0至211a_k、以及全域累加器(global accumulator)216。神經網路處理器210a也可包括列表製作器及壓縮器。
神經網路處理器210a可針對輸入特徵映射圖IFM的每一個通道產生輸入特徵清單。選擇器215a可將每一個通道中所包括的輸入特徵的輸入特徵清單提供至處理電路211a_0至211a_k中的一個。舉例來說,選擇器215a可將第一通道中所包括的輸入特徵的輸入特徵清單提供至第一處理電路211a_0,且可將第k通道中所包括的輸入特徵的輸入特徵清單提供至第k處理電路211a_k。
處理電路211a_0至211a_k可分別對應於輸入特徵映射圖IFM的通道。換句話說,處理電路211a_0至211a_k中的每一個可對應於核心(即,圖21及圖22所示通道群組中的一個)。處理電路211a_0至211a_k中的每一個處理電路的結構均與圖17所示處理電路211的結構相似。然而,處理電路211a_0至211a_k中的每一個可包括與處理電路211的一個元件對應的多個元件以對於多個輸入特徵並行地執行運算。
舉例來說,第一處理電路211a_0可包括多個索引重映射器21a、多個第一資料運算電路22a、多個第二資料運算電路23a、以及專用記憶體24a。
索引重映射器21a中的每一個可包括算數運算電路。第一資料運算電路22a可為乘法器的陣列。第二資料運算電路23a可為加法器的陣列。然而,本發明概念並非僅限於此。第二資料運算電路23a中的每一個也可包括算數運算電路。
專用記憶體24a可儲存權重清單WL或查找表LUT。當神經網路處理器210a執行卷積運算時,專用記憶體24a可將與來自權重列表WL的權重對應的權重索引輸出至索引重映射器21a且可將與權重對應的權重值輸出至第一資料運算電路22a。權重清單WL可包括權重索引、權重值、及與每一個權重對應的內核索引。內核索引是與包括權重的內核相關的資訊。
當神經網路處理器210a執行非線性運算時,專用記憶體24a可將與輸入特徵對應的參數提供至第一資料運算電路22a及第二資料運算電路23a以支援分段線性函數。
第一處理電路211a_0的操作與參照圖17至圖19闡述的處理電路211的操作相似。然而,索引重映射器21a可並行地執行索引運算且第一資料運算電路22a及第二資料運算電路23a可並行地執行資料運算。
其他的處理電路211a_1至211a_k可實質上包括與第一處理電路211a_0相同的元件且可執行與第一處理電路211a_0實質上相同的操作。
同時,從各個處理電路211a_0至211a_k輸出的運算值中的某些值可對應於輸出特徵映射圖的相同位置。因此,全域累加器216可對從不同的處理電路輸出、但對應於輸出特徵映射圖上的相同位置的運算值進行相加。
此時,由於稀疏的神經網路的特性,從處理電路211a_0至211a_k輸出的運算值被映射在輸出特徵映射圖上的位置可隨機分佈,且從處理電路211a_0至211a_k同時輸出的運算值被映射到的位置可在輸出特徵映射圖上彼此相同。當全域累加器216即時地累加從處理電路211a_0至211a_k輸出的運算值時,全域累加器216的負載可過度增加。
出於這一原因,處理電路211a_0至211a_k中的每一個處理電路中所包括的第二資料運算電路23a可根據輸出特徵映射圖上的空間位置及通道來對從第一資料運算電路22a輸出的運算值進行相加以針對每一個空間位置及通道產生加法值。處理電路211a_0至211a_k可進行同步以輸出加法值。第二資料運算電路23a中的每一個可包括靜態隨機存取記憶體儲存體(SRAM bank)以根據輸出特徵映射圖上的空間位置及通道來對從第一資料運算電路22a輸出的運算值進行相加。
從處理電路211a_0至211a_k輸出的加法值可根據輸出特徵映射圖上的對應的位置而被輸出為向量資料。全域累加器216可對向量資料進行累加。
圖24是根據本發明概念一些示例性實施例的在基於索引的神經網路中執行的卷積運算期間的資料處理的圖。圖24示出使得基於索引的卷積運算能夠在密集的神經網路中高效執行的資料處理,所述密集的神經網路在輸入特徵映射圖及權重特徵映射圖中具有密集的非零值。
由於密集的神經網路具有稀疏的具有零值的輸入特徵或權重,因此可通過簡化運算步驟而非跳過運算步驟中對零值進行的運算來高效地執行運算。
參照圖24,可將輸入特徵映射圖IFM與內核KN0至KN4中的每一個進行卷積。基於各個內核KN0至KN4的卷積運算可在不同的處理電路中並行地執行。
如以上參照圖20所闡述,當對輸入特徵映射圖IFM與內核KN0至KN4中的一個內核執行卷積運算時,卷積運算是對於同一通道來執行。在由卷積運算得到的運算值中,可對與表示輸出特徵映射圖OFM上的一個空間位置的輸出特徵索引對應的運算值進行相加。對輸入特徵映射圖IFM與一個內核進行的卷積運算可形成輸出特徵映射圖OFM的一個通道。
與表示一個空間位置的輸入特徵索引對應的輸入特徵可由輸入特徵向量來表達。與表示一個空間位置的權重索引對應的權重可由權重向量來表達。因此,輸入特徵映射圖可包括輸入特徵索引及與輸入特徵索引對應的輸入特徵向量且權重清單可包括權重索引及與權重索引對應的權重向量。舉例來說,圖24所示內核KN0至KN4中的每一個內核可具有九個索引且權重清單可包括九個索引以及分別與九個索引對應的權重向量。
對輸入特徵索引與權重索引進行相加以產生輸出特徵索引。可將特徵向量與權重向量的點積(dot product)作為與輸出特徵索引對應的運算值來輸出。對於一個輸出特徵索引可存在多個運算值。可對各個運算值進行相加以產生與輸出特徵索引對應的輸出特徵值。
圖25是根據本發明概念一些示例性實施例的神經網路處理器210b的圖。圖25所示神經網路處理器210b可具有適用於參照圖24所述密集的神經網路運算的硬體結構且可針對各個內核並行地執行運算。
參照圖25,神經網路處理器210b可包括多個處理電路211b_0至211b_k。神經網路處理器210b也可包括由處理電路211b_0至211b_k共用的內部記憶體或者支援各個處理電路211b_0至211b_k的多個內部記憶體。神經網路處理器210b也可包括列表製作器及壓縮器。
處理電路211b_0至211b_k可分別對應於不同的內核。處理電路211b_0至211b_k的結構與圖17所示處理電路211的結構相似。然而,由於處理電路211b_0至211b_k會計算向量點積,因此處理電路211b_0至211b_k中的每一個可包括位址重映射器21b、多個第一資料運算電路22b、及多個第二資料運算電路23b。處理電路211b_0至211b_k中的每一個可包括用於儲存權重清單的專用記憶體24b。權重清單可包括權重索引及與權重索引對應的權重向量。
位址重映射器21b可包括算數運算電路。第一資料運算電路22b可為乘法器的陣列。第二資料運算電路23b可為加法器的陣列。位址重映射器21b可對從外部接收的輸入特徵索引及從專用記憶體24b提供的權重索引執行運算,第一資料運算電路22b可將輸入特徵值乘以權重值,且第二資料運算電路23b可將由所述乘法得到的乘法值相加。因此,可對與輸入特徵索引對應的輸入特徵向量及與權重索引對應的權重向量執行點積。
儘管已參照本發明概念的實施例具體示出並闡述了本發明概念,然而應理解,在不背離以上權利要求書的精神及範圍的條件下,可作出形式及細節上的各種改變。
10‧‧‧神經網路
11‧‧‧第一層/層
12‧‧‧第二層/層
13‧‧‧第三層/層
21、21a‧‧‧索引重映射器
21b‧‧‧位址重映射器
22、22a、22b‧‧‧第一資料運算電路
23、23a、23b‧‧‧第二資料運算電路
24、24a、24b‧‧‧專用記憶體
100‧‧‧電子系統
110‧‧‧中央處理器
120‧‧‧隨機存取記憶體
130、200‧‧‧神經網路裝置
140‧‧‧記憶體
150‧‧‧感測器模組
160‧‧‧通信模組
170‧‧‧匯流排
210、210a、210b‧‧‧神經網路處理器
211、211b_0、211b_k‧‧‧處理電路
211a_0‧‧‧第一處理電路/處理電路
211a_k‧‧‧第k處理電路/處理電路
212‧‧‧內部記憶體
213‧‧‧列表製作器
214‧‧‧壓縮器
215、215a‧‧‧選擇器
216‧‧‧全域累加器
220‧‧‧控制器
230‧‧‧系統記憶體
CA‧‧‧第二索引/輸入特徵索引
CL‧‧‧類別
CH0‧‧‧第一通道群組/通道群組
CH1‧‧‧第二通道群組/通道群組
CH2、CH3、CH4、CH5、CH6、CH7、CH8、CHn-2、CHn-1‧‧‧通道群組
CHk‧‧‧通道
D‧‧‧深度
D0,0~D7,9、f3,2、IFB‧‧‧輸入特徵
DATA‧‧‧輸入特徵值
f1,1、f1,4、f4,3‧‧‧輸入特徵/非零輸入特徵
F0‧‧‧第一輸入特徵
F1‧‧‧第二輸入特徵
F2‧‧‧第三輸入特徵
F3‧‧‧第四輸入特徵
F4‧‧‧第五輸入特徵
F5‧‧‧第六輸入特徵
F6‧‧‧第七輸入特徵
F7‧‧‧第八輸入特徵
F8‧‧‧第九輸入特徵
FM1‧‧‧第一特徵映射圖/特徵映射圖
FM2‧‧‧第二特徵映射圖/特徵映射圖
FM3‧‧‧第三特徵映射圖/特徵映射圖
H‧‧‧高度
IFL‧‧‧輸入特徵清單
IFM‧‧‧輸入特徵映射圖
IFMa‧‧‧輸入特徵映射圖/初始輸入特徵清單
IFM_Z‧‧‧經零填充的輸入特徵映射圖
IFM_Za‧‧‧輸入特徵映射圖/經填充輸入特徵映射圖
IFMX‧‧‧輸入特徵矩陣
IWL‧‧‧初始權重列表
KN0‧‧‧第一內核/內核
KN1‧‧‧第二內核/內核
KN2‧‧‧第三內核/內核
KN3‧‧‧第四內核/內核
KN4‧‧‧第五內核/內核
KNk‧‧‧內核
LUT‧‧‧查找表
MWL‧‧‧鏡像權重列表
OFL1‧‧‧第一輸出特徵清單
OFL2‧‧‧第二輸出特徵清單
OFM‧‧‧輸出特徵映射圖
OFMX、OFMX_S1、OFMX_S3‧‧‧輸出特徵矩陣
PW‧‧‧二維池化視窗/池化視窗/2´2池化窗口
RA‧‧‧第一索引/輸入特徵索引
REC‧‧‧識別信號;
S110、S120、S130、S140、S210、S220、S230、S310、S320、S410、S420、S430、S440、S450、S460、S510、S520、S530‧‧‧操作
S710、S720、S730、S740、S750、S760‧‧‧有效運算結果
W‧‧‧寬度
W0,1、W2,2‧‧‧權重/非零權重
WL‧‧‧權重列表
WM‧‧‧權重映射圖
WMX‧‧‧權重矩陣
①‧‧‧第一位置
②‧‧‧第二位置
③‧‧‧第三位置
④‧‧‧第四位置
⑤‧‧‧第五位置
⑥‧‧‧第六位置
結合附圖閱讀以下詳細說明,將更清楚地理解本發明概念的示例性實施例,在附圖中:
圖1是根據本發明概念一些示例性實施例的電子系統的方塊圖。 圖2是根據一些示例性實施例的神經網路架構的圖。 圖3是根據本發明概念一些示例性實施例的輸入特徵清單的圖。 圖4是根據本發明概念一些示例性實施例的基於索引的神經網路運算方法的流程圖。 圖5是根據本發明概念一些示例性實施例的基於索引的卷積運算方法的流程圖。 圖6是根據一些示例性實施例的卷積運算的圖。 圖7A、圖7B、圖7C、圖7D、圖7E、及圖7F是圖6所示卷積運算的過程中的有效運算結果的快照的圖。 圖8A、圖8B、及圖8C是用於解釋根據本發明概念一些示例性實施例的基於索引的卷積運算的圖。 圖9A、及圖9B是用於解釋根據本發明概念一些示例性實施例的基於索引的卷積運算的圖。 圖10是根據本發明概念一些示例性實施例的基於索引的零填充方法的流程圖。 圖11A是根據一些示例性實施例的在神經網路中對輸入特徵映射圖應用零填充的實例的圖。 圖11B是用於解釋根據本發明概念一些示例性實施例的基於索引的零填充方法的圖。 圖12是根據本發明概念一些示例性實施例的在基於索引的卷積運算中使用步幅的方法的流程圖。 圖13A及圖13B是當在卷積中使用步幅時產生的輸出特徵矩陣的圖。 圖14是根據本發明概念一些示例性實施例的基於索引的池化方法的流程圖。 圖15是用於解釋根據本發明概念一些示例性實施例的基於索引的池化運算的圖。 圖16是根據本發明概念一些示例性實施例的神經網路裝置的方塊圖。 圖17是根據本發明概念一些示例性實施例的神經網路處理器的方塊圖。 圖18是用於解釋根據本發明概念一些示例性實施例的神經網路處理器在第一運行模式中運行的狀態的圖。 圖19是用於解釋根據本發明概念一些示例性實施例的神經網路處理器在第二運行模式中運行的狀態的圖。 圖20是在根據一些示例性實施例的卷積運算期間的資料流程程的圖。 圖21及圖22是根據本發明概念一些示例性實施例的在基於索引的神經網路中執行的卷積運算期間的資料處理的圖。 圖23是根據本發明概念一些示例性實施例的神經網路處理器的圖。 圖24是根據本發明概念一些示例性實施例的在基於索引的神經網路中執行的卷積運算期間的資料處理的圖。 圖25是根據本發明概念一些示例性實施例的神經網路處理器的圖。
Claims (21)
- 一種操作神經網路裝置的方法,所述方法包括: 基於輸入特徵映射圖產生輸入特徵清單,所述輸入特徵清單包括輸入特徵索引及輸入特徵值,所述輸入特徵索引及所述輸入特徵值對應於輸入特徵; 基於對所述輸入特徵索引及權重清單的權重索引進行的第一運算,產生輸出特徵索引;以及 基於對所述輸入特徵值及與所述權重索引對應的權重值進行的第二運算,產生與所述輸出特徵索引對應的輸出特徵值。
- 如申請專利範圍第1項所述的方法,其中所述產生所述輸入特徵清單包括:基於所述輸入特徵映射圖的多個輸入特徵中具有非零值的至少一個輸入特徵來產生所述輸入特徵清單。
- 如申請專利範圍第1項所述的方法,其中所述權重列表包括至少一個權重索引及至少一個權重值,所述至少一個權重索引及所述至少一個權重值對應于權重映射圖的多個權重中的至少一個權重,所述至少一個權重具有非零值。
- 如申請專利範圍第1項所述的方法,其中述產生所述輸出特徵值包括:將所述輸入特徵值乘以所述權重值。
- 如申請專利範圍第1項所述的方法,其中所述產生所述輸出特徵值包括: 基於將所述輸入特徵值乘以所述權重值來產生乘法值,所述乘法值對應於所述輸出特徵索引;以及 基於將多個乘法值相加來產生所述輸出特徵值,所述多個乘法值對應於所述輸出特徵索引。
- 如申請專利範圍第1項所述的方法,其中所述產生所述輸出特徵索引包括將所述輸入特徵索引與所述權重索引相加。
- 如申請專利範圍第6項所述的方法,其中所述產生所述輸出特徵索引進一步包括: 將由所述相加得到的加法值除以整數;以及 基於確定出在所述除法完成之後不存在餘數來選擇所述除法的商作為所述輸出特徵索引。
- 如申請專利範圍第1項所述的方法,其中 所述輸入特徵索引及所述權重索引中的每一個包括第一索引及第二索引,所述輸入特徵索引的所述第一索引對應於輸入特徵矩陣的列,所述輸入特徵索引的所述第二索引對應於所述輸入特徵矩陣的行,所述權重索引的所述第一索引對應于權重矩陣的列,所述權重索引的第二索引對應于所述權重矩陣的行,且 所述產生所述輸出特徵索引包括: 將所述輸入特徵索引的所述第一索引與所述權重索引的所述第一索引相加,且 將所述輸入特徵索引的所述第二索引與所述權重索引的所述第二索引相加。
- 如申請專利範圍第1項所述的方法,其中所述產生所述輸入特徵清單包括: 產生初始輸入特徵清單,所述初始輸入特徵清單包括與所述輸入特徵的位置對應的初始輸入特徵索引及與所述輸入特徵對應的所述輸入特徵值,且 基於將特徵偏置索引加到所述初始輸入特徵索引來產生以零進行填充的所述輸入特徵索引。
- 如申請專利範圍第1項所述的方法,其中更包括從權重映射圖產生所述權重列表。
- 如申請專利範圍第10項所述的方法,其中所述產生所述權重列表包括: 產生初始權重列表,所述初始權重列表包括與權重的位置對應的初始權重索引及來自所述權重映射圖的所述權重的權重值,以及 將所述初始權重索引調整成對應於特定運算。
- 如申請專利範圍第11項所述的方法,其中所述調整所述初始權重索引包括: 基於權重偏置索引來形成所述初始權重索引的鏡像,所述權重偏置索引指示所述權重映射圖的矩陣的中心,以及 從鏡像權重索引減去所述權重偏置索引。
- 如申請專利範圍第1項所述的方法,更包括基於所述輸出特徵值產生資訊信號。
- 一種操作神經網路裝置的方法,所述方法包括: 產生輸入特徵清單,所述輸入特徵清單包括與具有非零值的輸入特徵對應的輸入特徵索引及輸入特徵值,所述輸入特徵索引指示所述輸入特徵在輸入特徵映射圖上的位置; 基於對所述輸入特徵索引進行的索引運算,產生輸出特徵索引;以及 基於對所述輸入特徵值進行的資料運算,產生與所述輸出特徵索引對應的輸出特徵值。
- 如申請專利範圍第14項所述的方法,其中所述產生所述輸出特徵索引包括:將所述輸入特徵索引與權重清單的權重索引相加,所述權重索引對應於具有非零值的權重。
- 如申請專利範圍第15項所述的方法,其中所述產生所述輸出特徵值包括:將所述輸入特徵值乘以與所述權重索引對應的權重值。
- 如申請專利範圍第14項所述的方法,其中所述產生所述輸出特徵索引包括: 基於特定子採樣大小,對所述輸入特徵索引執行除法,以及 選擇所述除法的商作為所述輸出特徵索引,所述輸出特徵索引對應於所述輸入特徵。
- 如申請專利範圍第14項所述的方法,其中產生所述輸出特徵值包括將與所述輸出特徵索引對應的所述輸出特徵值計算為: 與所述輸出特徵索引對應的多個輸入特徵值中的最大值,或者 所述多個輸入特徵值的平均值。
- 一種方法,包括: 使用處理器的清單製作器基於輸入特徵映射圖來產生輸入特徵清單,所述輸入特徵清單包括輸入特徵索引及輸入特徵值,所述輸入特徵索引及所述輸入特徵值對應於輸入特徵;以及 使所述處理器的索引重映射器執行第一運算以產生輸出特徵索引,所述第一運算包括: 將所述輸入特徵索引與權重清單的權重索引相加, 將由所述相加得到的加法值除以整數,以及 基於確定出在所述除法完成之後不存在餘數來選擇所述除法的商作為所述輸出特徵索引。
- 如申請專利範圍第19項所述的方法,更包括: 使資料運算電路對所述輸入特徵值及與所述權重索引對應的權重值執行第二運算,以產生與所述輸出特徵索引對應的輸出特徵值。
- 如申請專利範圍第20項所述的方法,其中所述產生所述輸出特徵值包括: 基於將所述輸入特徵值乘以所述權重值來產生乘法值,所述乘法值對應於所述輸出特徵索引;以及 基於將多個乘法值相加來產生所述輸出特徵值,所述多個乘法值對應於所述輸出特徵索引。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
??10-2017-0027778 | 2017-03-03 | ||
KR10-2017-0027778 | 2017-03-03 | ||
KR1020170027778A KR102499396B1 (ko) | 2017-03-03 | 2017-03-03 | 뉴럴 네트워크 장치 및 뉴럴 네트워크 장치의 동작 방법 |
Publications (2)
Publication Number | Publication Date |
---|---|
TW201833823A true TW201833823A (zh) | 2018-09-16 |
TWI765979B TWI765979B (zh) | 2022-06-01 |
Family
ID=63355193
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW107107109A TWI765979B (zh) | 2017-03-03 | 2018-03-02 | 操作神經網路裝置的方法 |
Country Status (4)
Country | Link |
---|---|
US (2) | US11295195B2 (zh) |
KR (1) | KR102499396B1 (zh) |
CN (1) | CN108537325B (zh) |
TW (1) | TWI765979B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI745697B (zh) * | 2019-05-24 | 2021-11-11 | 創鑫智慧股份有限公司 | 用於神經網路參數的運算系統及其壓縮方法 |
TWI765763B (zh) * | 2020-06-30 | 2022-05-21 | 香港商墨子科技控股有限公司 | 用於平衡權重稀疏卷積處理之方法及系統 |
Families Citing this family (32)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10878310B2 (en) * | 2016-11-29 | 2020-12-29 | Mellanox Technologies, Ltd. | Accelerated convolution in convolutional neural networks |
US10474458B2 (en) | 2017-04-28 | 2019-11-12 | Intel Corporation | Instructions and logic to perform floating-point and integer operations for machine learning |
DE112018002566T5 (de) * | 2017-05-19 | 2020-01-30 | Movidius Ltd. | Verfahren, systeme und vorrichtungen zur verbesserung der faltungseffizienz |
US10489542B2 (en) * | 2018-04-24 | 2019-11-26 | Nvidia Corp. | Machine learning based post route path delay estimator from synthesis netlist |
TWI680409B (zh) * | 2017-07-08 | 2019-12-21 | 英屬開曼群島商意騰科技股份有限公司 | 適用於人工神經網路之矩陣及向量相乘的方法 |
JP2019036899A (ja) * | 2017-08-21 | 2019-03-07 | 株式会社東芝 | 情報処理装置、情報処理方法およびプログラム |
US10366322B2 (en) * | 2017-10-06 | 2019-07-30 | DeepCube LTD. | System and method for compact and efficient sparse neural networks |
DE102018203709A1 (de) * | 2018-03-12 | 2019-09-12 | Robert Bosch Gmbh | Verfahren und Vorrichtung zum speichereffizienten Betreiben eines neuronalen Netzes |
US10572568B2 (en) | 2018-03-28 | 2020-02-25 | Intel Corporation | Accelerator for sparse-dense matrix multiplication |
US11782839B2 (en) * | 2018-08-21 | 2023-10-10 | Neuchips Corporation | Feature map caching method of convolutional neural network and system thereof |
US11467973B1 (en) * | 2018-09-28 | 2022-10-11 | Amazon Technologies, Inc. | Fine-grained access memory controller |
JP7415251B2 (ja) * | 2018-09-30 | 2024-01-17 | 京東方科技集團股▲ふん▼有限公司 | 画像処理用の装置及び方法、並びにニューラルネットワークトをトレーニングするシステム |
US11610111B2 (en) * | 2018-10-03 | 2023-03-21 | Northeastern University | Real-time cognitive wireless networking through deep learning in transmission and reception communication paths |
CN110770763A (zh) * | 2018-10-08 | 2020-02-07 | 深圳市大疆创新科技有限公司 | 数据存储的装置、方法、处理器和可移动设备 |
CN109726633B (zh) * | 2018-11-23 | 2021-06-18 | 成都品果科技有限公司 | 一种基于查找表激活函数的人脸关键点检测方法 |
KR102137151B1 (ko) | 2018-12-27 | 2020-07-24 | 엘지전자 주식회사 | 노이즈 캔슬링 장치 및 그 방법 |
KR20200091623A (ko) * | 2019-01-23 | 2020-07-31 | 삼성전자주식회사 | 위노그라드 변환에 기반한 뉴럴 네트워크의 컨볼루션 연산을 수행하는 방법 및 장치 |
US11488016B2 (en) * | 2019-01-23 | 2022-11-01 | Google Llc | Look-up table based neural networks |
KR20200094534A (ko) | 2019-01-30 | 2020-08-07 | 삼성전자주식회사 | 뉴럴 네트워크 장치 및 뉴럴 네트워크 장치에서 멀티-비트 연산을 처리하는 방법 |
EP3938888A1 (en) * | 2019-03-15 | 2022-01-19 | INTEL Corporation | Systolic disaggregation within a matrix accelerator architecture |
WO2020190802A1 (en) | 2019-03-15 | 2020-09-24 | Intel Corporation | Compression techniques |
US11934342B2 (en) | 2019-03-15 | 2024-03-19 | Intel Corporation | Assistance for hardware prefetch in cache access |
CN110163370B (zh) | 2019-05-24 | 2021-09-17 | 上海肇观电子科技有限公司 | 深度神经网络的压缩方法、芯片、电子设备及介质 |
US20210064987A1 (en) * | 2019-09-03 | 2021-03-04 | Nvidia Corporation | Processor and system to convert tensor operations in machine learning |
US11663452B2 (en) * | 2019-09-25 | 2023-05-30 | Intel Corporation | Processor array for processing sparse binary neural networks |
KR20210084123A (ko) * | 2019-12-27 | 2021-07-07 | 삼성전자주식회사 | 전자 장치 및 그 제어 방법 |
KR20220034520A (ko) * | 2020-09-11 | 2022-03-18 | 삼성전자주식회사 | 프로세싱 장치, 컴퓨팅 장치, 및 프로세싱 장치의 동작 방법 |
GB2599098B (en) * | 2020-09-22 | 2024-04-10 | Imagination Tech Ltd | Hardware implementation of windowed operations in three or more dimensions |
WO2022076412A1 (en) * | 2020-10-06 | 2022-04-14 | Mastercard International Incorporated | Systems and methods for linking indices associated with environmental impact determinations for transactions |
CN112364032B (zh) * | 2021-01-12 | 2021-08-24 | 浙江正元智慧科技股份有限公司 | 基于互联网技术的数据中台数据查询方法 |
CN115481713A (zh) * | 2021-06-15 | 2022-12-16 | 瑞昱半导体股份有限公司 | 改进卷积神经网络进行计算的方法 |
WO2023105616A1 (ja) * | 2021-12-07 | 2023-06-15 | 日本電信電話株式会社 | 深層学習推論システム |
Family Cites Families (30)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3246764B2 (ja) | 1992-05-11 | 2002-01-15 | 株式会社東芝 | ニューロチップ |
JPH08305846A (ja) | 1995-03-07 | 1996-11-22 | Matsushita Electric Ind Co Ltd | ニューロフィルターと像域分割方法とフィルター装置 |
US5812698A (en) * | 1995-05-12 | 1998-09-22 | Synaptics, Inc. | Handwriting recognition system and method |
US6516309B1 (en) | 1998-07-17 | 2003-02-04 | Advanced Research & Technology Institute | Method and apparatus for evolving a neural network |
US6674855B1 (en) * | 1999-10-06 | 2004-01-06 | Comverse Ltd. | High performance multifrequency signal detection |
WO2002044926A1 (en) | 2000-11-30 | 2002-06-06 | Yang Ming Pok | Neural cortex |
US7634137B2 (en) | 2005-10-14 | 2009-12-15 | Microsoft Corporation | Unfolded convolution for fast feature extraction |
US7756845B2 (en) * | 2006-12-28 | 2010-07-13 | Yahoo! Inc. | System and method for learning a weighted index to categorize objects |
JP5184824B2 (ja) * | 2007-06-15 | 2013-04-17 | キヤノン株式会社 | 演算処理装置及び方法 |
US8463591B1 (en) * | 2009-07-31 | 2013-06-11 | Google Inc. | Efficient polynomial mapping of data for use with linear support vector machines |
US10366325B2 (en) | 2011-12-07 | 2019-07-30 | Paul Burchard | Sparse neural control |
US9147154B2 (en) * | 2013-03-13 | 2015-09-29 | Google Inc. | Classifying resources using a deep network |
US9053558B2 (en) | 2013-07-26 | 2015-06-09 | Rui Shen | Method and system for fusing multiple images |
US9730643B2 (en) | 2013-10-17 | 2017-08-15 | Siemens Healthcare Gmbh | Method and system for anatomical object detection using marginal space deep neural networks |
CN104809426B (zh) | 2014-01-27 | 2019-04-05 | 日本电气株式会社 | 卷积神经网络的训练方法、目标识别方法及装置 |
US10102474B2 (en) | 2014-03-28 | 2018-10-16 | International Business Machines Corporation | Event-based neural network with hierarchical addressing for routing event packets between core circuits of the neural network |
US20150286925A1 (en) | 2014-04-08 | 2015-10-08 | Qualcomm Incorporated | Modulating plasticity by global scalar values in a spiking neural network |
CN105488515B (zh) | 2014-09-17 | 2019-06-25 | 富士通株式会社 | 一种对图像进行分类的图像处理方法和图像处理装置 |
EP3796235A1 (en) | 2014-12-17 | 2021-03-24 | Google LLC | Generating numeric embeddings of images |
US10515304B2 (en) | 2015-04-28 | 2019-12-24 | Qualcomm Incorporated | Filter specificity as training criterion for neural networks |
US10013652B2 (en) | 2015-04-29 | 2018-07-03 | Nuance Communications, Inc. | Fast deep neural network feature transformation via optimized memory bandwidth utilization |
US20160358069A1 (en) * | 2015-06-03 | 2016-12-08 | Samsung Electronics Co., Ltd. | Neural network suppression |
US11423311B2 (en) * | 2015-06-04 | 2022-08-23 | Samsung Electronics Co., Ltd. | Automatic tuning of artificial neural networks |
WO2017031630A1 (zh) * | 2015-08-21 | 2017-03-02 | 中国科学院自动化研究所 | 基于参数量化的深度卷积神经网络的加速与压缩方法 |
US10366337B2 (en) * | 2016-02-24 | 2019-07-30 | Bank Of America Corporation | Computerized system for evaluating the likelihood of technology change incidents |
WO2018000309A1 (en) * | 2016-06-30 | 2018-01-04 | Intel Corporation | Importance-aware model pruning and re-training for efficient convolutional neural networks |
KR20180034853A (ko) * | 2016-09-28 | 2018-04-05 | 에스케이하이닉스 주식회사 | 합성곱 신경망의 연산 장치 및 방법 |
US10510146B2 (en) * | 2016-10-06 | 2019-12-17 | Qualcomm Incorporated | Neural network for image processing |
WO2018073975A1 (en) * | 2016-10-21 | 2018-04-26 | Nec Corporation | Improved sparse convolution neural network |
KR20180073118A (ko) * | 2016-12-22 | 2018-07-02 | 삼성전자주식회사 | 컨볼루션 신경망 처리 방법 및 장치 |
-
2017
- 2017-03-03 KR KR1020170027778A patent/KR102499396B1/ko active IP Right Grant
-
2018
- 2018-01-08 US US15/864,379 patent/US11295195B2/en active Active
- 2018-02-28 CN CN201810167217.XA patent/CN108537325B/zh active Active
- 2018-03-02 TW TW107107109A patent/TWI765979B/zh active
-
2022
- 2022-04-04 US US17/712,247 patent/US20220261615A1/en active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI745697B (zh) * | 2019-05-24 | 2021-11-11 | 創鑫智慧股份有限公司 | 用於神經網路參數的運算系統及其壓縮方法 |
TWI765763B (zh) * | 2020-06-30 | 2022-05-21 | 香港商墨子科技控股有限公司 | 用於平衡權重稀疏卷積處理之方法及系統 |
Also Published As
Publication number | Publication date |
---|---|
US20180253635A1 (en) | 2018-09-06 |
KR20180101055A (ko) | 2018-09-12 |
KR102499396B1 (ko) | 2023-02-13 |
CN108537325A (zh) | 2018-09-14 |
US11295195B2 (en) | 2022-04-05 |
TWI765979B (zh) | 2022-06-01 |
US20220261615A1 (en) | 2022-08-18 |
CN108537325B (zh) | 2024-06-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI765979B (zh) | 操作神經網路裝置的方法 | |
US20200234124A1 (en) | Winograd transform convolution operations for neural networks | |
US11074474B2 (en) | Apparatus for performing neural network operation and method of operating the same | |
KR102610820B1 (ko) | 뉴럴 네트워크 시스템 및 뉴럴 네트워크 시스템의 동작방법 | |
US11849226B2 (en) | Image processing device including neural network processor and operating method thereof | |
KR102390379B1 (ko) | 뉴럴 네트워크 프로세서, 뉴럴 네트워크 프로세서의 동작 방법, 및 뉴럴 네트워크 장치 | |
KR20200066953A (ko) | Pim을 채용하는 반도체 메모리 장치 및 그 동작 방법 | |
CN109871510B (zh) | 二维卷积运算处理方法、系统、设备及计算机存储介质 | |
AU2019374875B2 (en) | Identifying image aesthetics using region composition graphs | |
US11562046B2 (en) | Neural network processor using dyadic weight matrix and operation method thereof | |
US20200364567A1 (en) | Neural network device for selecting action corresponding to current state based on gaussian value distribution and action selecting method using the neural network device | |
TW202014934A (zh) | 電子系統以及非暫時性電腦可讀記錄媒體 | |
CN111209933A (zh) | 基于神经网络和注意力机制的网络流量分类方法和装置 | |
CN111476837B (zh) | 自适应立体匹配优化方法及其装置、设备和存储介质 | |
US20230377111A1 (en) | Image processing apparatus including neural network processor and method of operation | |
US20230025626A1 (en) | Method and apparatus for generating process simulation models | |
KR20200094534A (ko) | 뉴럴 네트워크 장치 및 뉴럴 네트워크 장치에서 멀티-비트 연산을 처리하는 방법 | |
TW202230227A (zh) | 基於輸入特徵圖生成輸出特徵圖的方法、神經處理單元裝置及其操作方法 | |
KR20200056898A (ko) | 프로세싱 장치 및 프로세싱 장치에서 덧셈 연산을 처리하는 방법 | |
US11901907B2 (en) | Electronic device and method of operating the same | |
US20240119721A1 (en) | Processing data using convolution as a transformer operation | |
WO2020122067A1 (ja) | 情報処理装置、車載制御装置、車両制御システム | |
KR20240025827A (ko) | Imc(in memory computing) 프로세서 및 imc 프로세서의 동작 방법 | |
CN114943332A (zh) | 轻量级yolo模型的训练方法及相关设备 |