TW202303456A - 最佳化神經網路模型的方法 - Google Patents

最佳化神經網路模型的方法 Download PDF

Info

Publication number
TW202303456A
TW202303456A TW111114484A TW111114484A TW202303456A TW 202303456 A TW202303456 A TW 202303456A TW 111114484 A TW111114484 A TW 111114484A TW 111114484 A TW111114484 A TW 111114484A TW 202303456 A TW202303456 A TW 202303456A
Authority
TW
Taiwan
Prior art keywords
neural network
network model
layer
layers
analysis
Prior art date
Application number
TW111114484A
Other languages
English (en)
Other versions
TWI824485B (zh
Inventor
李昶權
金冏榮
金炳秀
金哉坤
任漢永
崔禎珉
河相赫
Original Assignee
南韓商三星電子股份有限公司
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority claimed from KR1020210114779A external-priority patent/KR20230004207A/ko
Application filed by 南韓商三星電子股份有限公司 filed Critical 南韓商三星電子股份有限公司
Publication of TW202303456A publication Critical patent/TW202303456A/zh
Application granted granted Critical
Publication of TWI824485B publication Critical patent/TWI824485B/zh

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/10Interfaces, programming languages or software development kits, e.g. for simulating neural networks
    • G06N3/105Shells for specifying net layout
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/451Execution arrangements for user interfaces
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/044Recurrent networks, e.g. Hopfield networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/045Combinations of networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/06Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
    • G06N3/063Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • G06N3/082Learning methods modifying the architecture, e.g. adding, deleting or silencing nodes or connections

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Health & Medical Sciences (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Biomedical Technology (AREA)
  • Biophysics (AREA)
  • Computing Systems (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Molecular Biology (AREA)
  • General Health & Medical Sciences (AREA)
  • Evolutionary Computation (AREA)
  • Data Mining & Analysis (AREA)
  • Computational Linguistics (AREA)
  • Mathematical Physics (AREA)
  • Artificial Intelligence (AREA)
  • Neurology (AREA)
  • Human Computer Interaction (AREA)
  • Image Analysis (AREA)
  • Measuring Pulse, Heart Rate, Blood Pressure Or Blood Flow (AREA)
  • Measuring And Recording Apparatus For Diagnosis (AREA)
  • Feedback Control In General (AREA)

Abstract

本發明提供一種最佳化神經網路模型的方法,在方法中,接收關於第一神經網路模型的第一模型資訊。接收關於用於執行第一神經網路模型的第一目標裝置的裝置資訊。基於第一模型資訊、裝置資訊,以及多個適用性判定演算法中的至少一者來進行第一神經網路模型是否適用於在第一目標裝置上執行的分析。輸出分析的結果以使得第一模型資訊及分析的結果顯示於螢幕上。

Description

優化神經網絡模型的方法及執行該方法的神經網絡模型處理系統
實例實施例大體上是關於機器學習技術,且更特定而言,是關於最佳化神經網路模型的方法及進行最佳化神經網路模型的方法的神經網路模型處理系統。 [相關申請案的交叉引用]
本申請案依據35 USC § 119基於以下申請案且主張以下申請案的優先權:2021年6月30日在韓國智慧財產局申請的韓國專利申請案第10-2021-0085534號及2021年8月30日在韓國智慧財產局申請的韓國專利申請案第10-2021-0114779號,所述申請案的內容以全文引用的方式併入本文中。
存在基於機器學習的對資料進行分類的各種方法。其中為使用神經網路或人工神經網路(artificial neural network;ANN)對資料進行分類的方法。ANN可藉由改造在其中進行有效識別圖案的過程的人類大腦的細胞結構模型來獲得。ANN是指基於軟體或硬體且經設計以藉由應用經由連接線互連的許多人工神經元來模擬生物計算能力的計算模型。人類大腦由神經元組成,所述神經元為神經的基本單元,且根據此等神經元之間的不同類型的密集連接對資訊進行加密或解密。ANN中的人工神經元經由生物神經元功能性的簡化獲得。ANN藉由將具有連接強度的人工神經元互連來進行認知或學習過程。
近來,已研究深度學習過程及服務以克服ANN的限制,且隨著深度學習過程及服務已發展,研究正進行分析及最佳化改良神經網路模型的各種研究項目。習知地,已使用使用通用演算法的最佳化技術。
本揭露內容的至少一個實例實施例提供有效最佳化神經網路模型以最適合或適用於目標裝置的方法。
本揭露內容的至少一個實例實施例提供進行最佳化神經網路模型的方法的神經網路模型處理系統。
本揭露內容的至少一個實例實施例提供有效操作神經網路模型的方法。
根據實例實施例,在最佳化神經網路模型的方法中,接收關於第一神經網路模型的第一模型資訊。接收關於用於執行第一神經網路模型的第一目標裝置的裝置資訊。基於第一模型資訊、裝置資訊,以及多個適用性判定演算法中的至少一者來進行第一神經網路模型是否適用於在第一目標裝置上執行的分析。輸出分析的結果以使得第一模型資訊及分析的結果顯示於螢幕上。
根據實例實施例,神經網路模型處理系統包含輸入裝置、儲存裝置、輸出裝置以及處理器。輸入裝置接收關於第一神經網路模型的第一模型資訊及關於用於執行第一神經網路模型的第一目標裝置的裝置資訊。儲存裝置儲存關於程式常式的資訊。程式常式經組態以使得處理器基於第一模型資訊、裝置資訊,以及多個適用性判定演算法中的至少一者來進行第一神經網路模型是否適用於在第一目標裝置上執行的分析,及產生分析的結果以使得第一模型資訊及分析的結果顯示於螢幕上。輸出裝置可視地輸出分析的結果。處理器連接至輸入裝置、儲存裝置以及輸出裝置,且控過程式常式的執行。
根據實例實施例,在最佳化神經網路模型的方法中,提供用於最佳化第一神經網路模型的圖形使用者介面(graphical user interface;GUI)。經由GUI接收關於待最佳化的第一神經網路模型的第一模型資訊。經由GUI接收關於用於執行第一神經網路模型的第一目標裝置的裝置資訊。基於第一模型資訊、裝置資訊,以及多個適用性判定演算法中的至少一者來進行第一神經網路模型是否適用於在第一目標裝置上執行的分析。在GUI上可視地輸出分析的結果以使得第一模型資訊及分析的結果顯示於一個螢幕上。基於分析的結果經由GUI接收用於自第一神經網路模型的層當中選擇第一層的第一使用者輸入。基於第一使用者輸入將第一層改變成第二層。在GUI上可視地輸出將第一層改變成第二層的結果。經由GUI接收用於自第一神經網路模型的層當中選擇第三層的第二使用者輸入。基於第二使用者輸入改變第三層的量化方案。在GUI上可視地輸出改變第三層的量化方案的結果。當進行分析時,藉由基於第一演算法對第一神經網路模型進行第一分析來獲得第一神經網路模型的結構及層的效能分數。第一演算法用於判定與第一目標裝置相關聯的第一神經網路模型的結構及層的效能效率。藉由基於第二演算法對第一神經網路模型進行第二分析來獲得第一神經網路模型的結構及層的複雜性分數。第二演算法用於分析第一神經網路模型的結構及層的複雜性及容量。藉由基於第三演算法對第一神經網路模型進行第三分析來獲得第一神經網路模型的結構及層的記憶體磁碟使用量(footprint)分數。第三演算法用於判定與第一目標裝置相關聯的第一神經網路模型的結構及層的記憶體效率。基於效能分數、複雜性分數以及記憶體磁碟使用量分數來獲得第一神經網路模型的總分數。
根據實例實施例,在方法中,提供圖形使用者介面(GUI)。接收關於第一神經網路模型的第一模型資訊。接收關於用於執行第一神經網路模型的第一目標裝置的裝置資訊。基於第一模型資訊、裝置資訊,以及多個適用性判定演算法中的至少一者來進行第一神經網路模型是否適用於在第一目標裝置上執行的分析。第一圖形表示顯示於GUI上以使得第一模型資訊及分析的結果顯示於一個螢幕上。第一圖形表示包含第一模型資訊及分析的結果。第二圖形表示顯示於GUI上以使得顯示基於分析的結果來改變第一神經網路模型的層中的至少一者的結果。第二圖形表示包含改變第一神經網路模型的層中的至少一者的過程及結果。
將參考隨附圖式更全面地描述各種實例實施例,在所述隨附圖式中繪示實例實施例。然而,本揭露內容可以許多不同形式體現且不應解釋為限於本文所闡述的實例實施例。貫穿本申請案,相同附圖標號是指相同元件。
圖1為示出根據實例實施例的最佳化神經網路模型的方法的流程圖。
參考圖1,藉由基於電腦的神經網路模型處理系統來進行及/或執行根據實例實施例的最佳化神經網路模型的方法,在所述基於電腦的神經網路模型處理系統中用硬體及/或軟體來實施組件中的至少一些。將參考圖2、圖3以及圖4描述神經網路模型處理系統的詳細組態。
在根據實例實施例的最佳化神經網路模型的方法中,接收第一神經網路模型的第一模型資訊(步驟S100)。舉例而言,第一神經網路模型可為其中已完成訓練的神經網路模型(例如,預訓練神經網路模型),或可為其中正進行訓練的神經網路模型。換言之,根據實例實施例的最佳化神經網路模型的方法可在完成對第一神經網路模型的訓練之後,或在對第一神經網路模型進行訓練的同時進行及/或執行,將參考圖5A、圖5B以及圖5C描述神經網路模型的實例。
對神經網路模型的訓練(或訓練操作)指示當給定待解決的任務及用於任務的功能集合時以最佳化方式解決任務的過程,且指示用於改良或增強神經網路模型的效能及/或準確度的過程。舉例而言,對神經網路模型的訓練可包含判定神經網路模型的網路結構的操作、判定用於神經網路模型中的諸如重量的參數的操作或類似者。另外,在對神經網路模型的訓練期間,可在維持架構及資料類型的同時改變除架構及資料類型以外的參數。
接收用於執行或驅動第一神經網路模型的第一目標裝置的裝置資訊(步驟S200)。舉例而言,第一目標裝置可包含執行或驅動第一神經網路模型的處理元件,及/或包含處理元件的神經網路系統(或電子系統)。將參考圖6描述神經網路系統的實例。
基於第一模型資訊、裝置資訊,以及多個適用性判定演算法中的至少一者來進行第一神經網路模型是否適合於在第一目標裝置上執行或驅動的分析(步驟S300)。舉例而言,多個適用性判定演算法可包含用於判定第一神經網路模型的效能效率的第一演算法、用於分析第一神經網路模型的複雜性及容量的第二演算法、用於判定第一神經網路模型的記憶體效率的第三演算法或類似者。將參考圖7至圖14描述步驟S300中的多個適用性判定演算法及分析的實例。
將分析的結果可視化且輸出以使得第一模型資訊及分析的結果顯示於螢幕上(步驟S400)。舉例而言,步驟S400可使用圖形使用者介面(GUI)來進行。舉例而言,可基於分數及色彩中的至少一者顯示分析的結果,且包含第一模型資訊及分析的結果的圖形表示可顯示於GUI上以使得第一模型資訊及分析的結果一起顯示。將參考圖16A、圖16B、圖16C、圖16D、圖16E、圖16F、圖20A、圖20B、圖20C、圖20D、圖24A、圖24B以及圖24C描述GUI。
在根據實例實施例的最佳化神經網路模型的方法中,可有效實施判定為最適合或適用於目標裝置的神經網路模型。舉例而言,在對神經網路模型進行訓練之前,可設計經最佳化以用於目標裝置的神經網路模型。在完成對神經網路模型的訓練之後,可檢查及/或判定神經網路模型是否適用於目標裝置,且若有必要,則可修改神經網路模型及/或可建議更合適的新組態。另外,可藉由將合適的量化方案應用於神經網路模型的每一組件來獲得經最佳化效能。此外,可提供用於此類操作的GUI。因此,使用者可將神經網路模型有效設計及修改為最為最佳化以用於目標裝置,且可應用合適的量化方案。
圖2、圖3以及圖4為示出根據實例實施例的神經網路模型處理系統的方塊圖。
參考圖2,神經網路模型處理系統1000為基於電腦的神經網路模型處理系統,且包含處理器1100、儲存裝置1200以及輸入/輸出(input/output;I/O)裝置1300。I/O裝置1300包含輸入裝置1310及輸出裝置1320。
處理器1100可用於進行根據實例實施例的最佳化神經網路模型的方法。舉例而言,處理器1100可包含微處理器、應用程式處理器(application processor;AP)、數位信號處理器(digital signal processor;DSP)、圖形處理單元(graphic processing unit;GPU)或類似者。儘管圖2中僅示出一個處理器1100,但實例實施例不限於此。舉例而言,多個處理器可包含於神經網路模型處理系統1000中。另外,處理器1100可包含快取記憶體以增加運算容量。
儲存裝置1200可儲存及/或包含用於根據實例實施例的最佳化神經網路模型的方法的程式(program;PR)1210。儲存裝置1200可進一步儲存及/或包含用於進行根據實例實施例的最佳化神經網路模型的方法的適用性判定演算法(suitability determination algorithm;SDA)1220、更新演算法(updating algorithm;UA)1230以及量化方案(quantization scheme;QS)1240。程式1210、適用性判定演算法1220、更新演算法1230以及量化方案1240可自儲存裝置1200提供至處理器1100。
在一些實例實施例中,儲存裝置1200可包含用於將命令及/或資料提供至電腦的各種非暫時性電腦可讀儲存媒體中的至少一者。舉例而言,非暫時性電腦可讀儲存媒體可包含諸如靜態隨機存取記憶體(static random access memory;SRAM)、動態隨機存取記憶體(dynamic random access memory;DRAM)或類似者的揮發性記憶體,及/或諸如快閃記憶體、磁電阻隨機存取記憶體(magnetoresistive random access memory;MRAM)、相變隨機存取記憶體(phase-change random access memory;PRAM)、電阻式隨機存取記憶體(resistive random access memory;RRAM)或類似者的非揮發性記憶體。非暫時性電腦可讀儲存媒體可插入至電腦中,可整合於電腦中,或可經由諸如網路及/或無線鏈路的通信媒體連接至電腦。
輸入裝置1310可用於接收用於根據實例實施例的最佳化神經網路模型的方法的輸入。舉例而言,輸入裝置1310可接收模型資訊MI及裝置資訊DI,且可進一步接收使用者輸入。舉例而言,輸入裝置1310可包含各種輸入構件中的至少一者,諸如鍵盤、小鍵盤、觸控板、觸控螢幕、滑鼠、遠端控制器或類似者。
輸出裝置1320可用於提供用於根據實例實施例的最佳化神經網路模型的方法的輸出。舉例而言,輸出裝置1320可提供可視化輸出VOUT。舉例而言,輸出裝置1320可包含用於顯示可視化輸出VOUT的輸出構件,諸如顯示裝置,且可更包含各種輸出構件中的至少一者,諸如揚聲器、印表機或類似者。
參考圖1描述,神經網路模型處理系統1000可進行根據實例實施例的最佳化神經網路模型的方法。舉例而言,輸入裝置1310可接收第一神經網路模型的第一模型資訊(例如,模型資訊MI)及用於執行或驅動第一神經網路模型的第一目標裝置的裝置資訊(例如,裝置資訊DI)。儲存裝置1200可儲存程式常式的資訊,且程式常式可經組態以基於第一模型資訊、裝置資訊,以及多個適用性判定演算法中的至少一者來進行第一神經網路模型是否適合於在第一目標裝置上執行的分析,及產生分析的結果以使得第一模型資訊及分析的結果顯示於螢幕上。輸出裝置1320可將分析的結果可視化且輸出。處理器1100可連接至輸入裝置1310、儲存裝置1200以及輸出裝置1320,且可控制程式常式的執行。另外,神經網路模型處理系統1000可進行根據實例實施例的最佳化神經網路模型的方法,此將參考圖17及圖21而描述。
參考圖3,神經網路模型處理系統2000包含處理器2100、I/O裝置2200、網路介面2300、隨機存取記憶體(random access memory;RAM)2400、唯讀記憶體(read only memory;ROM)2500以及儲存裝置2600。
在一些實例實施例中,神經網路模型處理系統2000可為運算系統。舉例而言,運算系統可為諸如桌上型電腦、工作站或伺服器的固定運算系統,或可為諸如膝上型電腦的可攜式運算系統。
處理器2100可與圖2中的處理器1100實質上相同或類似。舉例而言,處理器2100可包含核心或用於執行任意指令集合的處理器核心(例如,因特爾(intel)架構-32 (IA-32)、64位元擴展IA-32、x86-64、PowerPC、Sparc、MIPS、ARM、IA-64等)。舉例而言,處理器2100可經由匯流排存取記憶體(例如,RAM 2400或ROM 2500),且可執行儲存於RAM 2400或ROM 2500中的指令。如圖3中所示出,RAM 2400可儲存用於根據實例實施例的最佳化神經網路模型的方法的程式PR或程式PR的至少一些元素,且程式PR可允許處理器2100進行最佳化神經網路模型的操作。
換言之,程式PR可包含可藉由處理器2100執行的多個指令及/或程序,且包含於程式PR中的多個指令及/或程序可允許處理器2100進行根據實例實施例的最佳化神經網路模型的方法。程序中的每一者可指代用於進行某一任務的一系列指令。程序可稱為函式、常式、次常式或次程式。程序中的每一者可處理自外部提供的資料及/或由另一程序產生的資料。
儲存裝置2600可與圖2中的儲存裝置1200實質上相同或類似。舉例而言,儲存裝置2600可儲存程式PR,且可儲存適用性判定演算法SDA、更新演算法UA以及量化方案QS。程式PR或程式PR的至少一些元素可在藉由處理器2100執行之前自儲存裝置2600加載至RAM 2400。儲存裝置2600可儲存以程式語言寫入的文件,且由編譯器產生的程式PR或程式PR的至少一些元素可加載至RAM 2400。
儲存裝置2600可儲存待藉由處理器2100處理的資料,或經由藉由處理器2100的處理獲得的資料。處理器2100可基於程式PR來處理儲存於儲存裝置2600中的資料以產生新資料,且可將所產生資料儲存於儲存裝置2600中。
I/O裝置2200可與圖2中的I/O裝置1300實質上相同或類似。I/O裝置2200可包含輸入裝置,諸如鍵盤、指標裝置或類似者,且可包含輸出裝置,諸如顯示裝置、印表機或類似者。舉例而言,使用者可經由I/O裝置2200觸發藉由處理器2100的程式PR的執行,可輸入圖2中的模型資訊MI及裝置資訊DI及/或圖4中的使用者輸入UI,且可檢查圖2中的可視化輸出VOUT及/或圖4中的圖形表示GR。
網路介面2300可提供對神經網路模型處理系統2000外部的網路的存取。舉例而言,網路可包含多個運算系統及通信鏈路,且通信鏈路可包含有線鏈路、光學鏈路、無線鏈路或任意其他類型的鏈路。可經由網路介面2300將圖2中的模型資訊MI及裝置資訊DI及/或圖4中的使用者輸入UI提供至神經網路模型處理系統2000,且可經由網路介面2300將圖2中的可視化輸出VOUT及/或圖4中的圖形表示GR提供至另一運算系統。
參考圖4,神經網路模型最佳化模組100可藉由圖2及圖3的神經網路模型處理系統1000及神經網路模型處理系統2000執行及/或控制。神經網路模型最佳化模組100可包含GUI控制模組200及分析模組300,且可更包含更新模組400及量化模組500。神經網路模型最佳化模組100可提供用於最佳化神經網路模型的GUI。
在本文中,術語「模組」可指示但不限於進行某些任務的軟體及/或硬體組件,諸如場可程式閘極陣列(field programmable gate array;FPGA)或特殊應用積體電路(application specific integrated circuit;ASIC)。模組可經組態以駐留於可定址儲存媒體中且經組態以在一或多個處理器上執行。舉例而言,「模組」可包含諸如軟體組件、物件定向式軟體組件、類別組件以及任務組件的組件,及過程、函式、常式、程式碼的片段、驅動器、韌體、微碼、電路、資料、資料庫、資料結構、表、陣列以及變量。可將「模組」劃分為進行詳細功能的多個「模組」。
基於適用性判定演算法(例如,圖2及圖3中的適用性判定演算法SDA),分析模組300可進行神經網路模型是否適合於在目標裝置上執行的分析(或分析操作)。
分析模組300可包含用於目標裝置的預列表(pre-listed table;PT)310、效能估計器(performance estimator;PE)320、用於目標裝置的預訓練深度學習模型(pre-trained deep learning model;PM)330、複雜性判定單元(complexity determining unit;CD)340、容量量測單元(capacity measuring unit;CM)350以及記憶體估計器(memory estimator;ME)360。將參考圖7至圖14描述與使用每一組件的分析相關聯的詳細操作。
更新模組400可基於更新演算法(例如,圖2及圖3中的更新演算法UA)對神經網路模型進行更新(或更新演算法)。舉例而言,對神經網路模型的更新可包含設定變化、層變化或類似者。將參考圖17描述與更新相關聯的詳細操作。
量化模組500可基於量化方案(例如,圖2及圖3中的量化方案QS)對神經網路模型進行量化(或量化操作)。將參考圖21描述與量化相關聯的詳細操作。
GUI控制模組200可控制GUI對神經網路模型進行最佳化。舉例而言,GUI控制模組200可控制GUI接收使用者輸入UI且輸出圖形表示GR。舉例而言,使用者輸入UI可包含圖2中的模型資訊MI及裝置資訊DI,且圖形表示GR可對應於圖2中的可視化輸出VOUT。
在一些實例實施例中,神經網路模型最佳化模組100的至少一些元件可實施為指令碼或程式常式(例如,軟體程式)。舉例而言,指令碼或程式常式可藉由基於電腦的電子系統來執行,且可儲存於定位於基於電腦的電子系統內部或外部的任何儲存裝置中。在其他實例實施例中,神經網路模型最佳化模組100的至少一些元件可實施為硬體。舉例而言,神經網路模型最佳化模組100的至少一些元件可包含於基於電腦的電子系統中。
圖5A、圖5B、圖5C以及圖6為用於描述根據實例實施例的作為最佳化神經網路模型的方法的目標的神經網路模型的實例的圖。
圖5A、圖5B以及圖5C示出神經網路模型的網路結構的實例,且圖6示出用於執行及/或驅動神經網路模型的神經網路系統的實例。舉例而言,神經網路模型可包含人工神經網路(ANN)模型、卷積神經網路(convolutional neural network;CNN)模型、循環神經網路(recurrent neural network;RNN)模型、深度神經網路(deep neural network;DNN)模型或類似者中的至少一者。然而,實例實施例不限於此。對於另一實例,神經網路模型可包含多種學習模型,諸如解卷積神經網路、堆疊神經網路(stacked neural network;SNN)、狀態空間動態神經網路(state-space dynamic neural network;SSDNN)、深度信念網路(deep belief network;DBN)、生產性對抗網路(generative adversarial network;GAN)及/或限制波茲曼機器(restricted Boltzmann machine;RBM)。替代地或另外,神經網路模型可包含機器學習模型的其他形式,諸如線性及/或邏輯回歸、統計集群、貝葉斯(Bayesian)分類、決策樹、諸如主組件分析的降維以及專家系統;及/或其組合,包含諸如隨機森林的集。
參考圖5A,通用神經網路可包含輸入層IL、多個隱藏層HL1、隱藏層HL2...隱藏層HLn以及輸出層OL。
輸入層IL可包含i個輸入節點x 1、輸入節點x 2...輸入節點x i,其中i為自然數。可將長度為i的輸入資料(例如,向量輸入資料)IDAT輸入至輸入節點x 1、輸入節點x 2...輸入節點x i以使得輸入資料IDAT的每一元素輸入至輸入節點x 1、輸入節點x 2...輸入節點x i中的各別一者。
多個隱藏層HL1、隱藏層HL2...隱藏層HLn可包含n個隱藏層,其中n為自然數,且可包含多個隱藏節點h 1 1、隱藏節點h 1 2、隱藏節點h 1 3...隱藏節點h 1 m、隱藏節點h 2 1、隱藏節點h 2 2、隱藏節點h 2 3...隱藏節點h 2 m、隱藏節點h n 1、隱藏節點h n 2、隱藏節點h n 3...隱藏節點h n m。舉例而言,隱藏層HL1可包含m個隱藏節點h 1 1、隱藏節點h 1 2、隱藏節點h 1 3...隱藏節點h 1 m,隱藏層HL2可包含m個隱藏節點h 2 1、隱藏節點h 2 2、隱藏節點h 2 3...隱藏節點h 2 m,且隱藏層HLn可包含m個隱藏節點h n 1、隱藏節點h n 2、隱藏節點h n 3...隱藏節點h n m,其中m為自然數。
輸出層OL可包含j個輸出節點y 1、輸出節點y 2...輸出節點y j,其中j為自然數。輸出節點y 1、輸出節點y 2...輸出節點y j中的每一者可對應於待分類的類別中的各別一者。輸出層OL可產生輸出值(例如,類別分數或諸如回歸變量的數值輸出)及/或與用於類別中的每一者的輸入資料IDAT相關聯的輸出資料ODAT。在一些實例實施例中,輸出層OL可為全連接層且可指示例如輸入資料IDAT對應於汽車的機率。
圖5A中所示出的神經網路的結構可藉由關於示出為線的節點之間的分支(或連接)的資訊,及未示出的指派至每一分支的權重值來表示。在一些神經網路模型中,一個層內的節點可不彼此連接,但不同層的節點可彼此完全或部分連接。在一些其他神經網路模型,諸如未受限波茲曼機器中,一個層內的至少一些節點亦可連接至除其他層的一或多個節點以外的一個層內的其他節點(或替代地與其他層的一或多個節點連接)。
每一節點(例如,節點h 1 1)可接收前述節點(例如,節點x 1)的輸出,可對接收到的輸出進行運算操作、運算或計算,且可將運算操作、運算或計算的結果作為輸出而輸出至下一節點(例如,節點h 2 1)。每一節點可藉由將輸入應用於例如非線性函數的特定函數來計算待輸出的值。
在一些實例實施例中,預先設定神經網路的結構,且藉由使用具有資料所屬的類別(有時稱為「標籤」)的已知答案的資料來適當地設定用於節點之間的連接的權重值。具有已知答案的資料有時稱為「訓練資料」且判定權重值的過程有時稱為「訓練」。神經網路在訓練過程期間「學習」將資料與對應標籤相關聯。可獨立訓練的結構及權重值的群組有時稱為「模型」,且藉由具有經判定權重值的模型來預測輸入資料所屬類別且接著輸出所預測值的過程有時稱為「測試」過程。
圖5A中所示出的通用神經網路可不適用於處理輸入影像資料(或輸入聲音資料),此是由於每一節點(例如,h 1 1)連接至前一層的所有節點(例如,包含於層IL中的節點x 1、節點x 2...節點x i)且接著權重值的數目隨輸入影像資料的大小增大而顯著增加。因此,已研究藉由將濾波技術與通用神經網路組合實施的CNN以使得藉由CNN有效訓練作為輸入影像資料的實例的二維影像。
參考圖5B,CNN可包含多個層CONV1、層RELU1、層CONV2、層RELU2、層POOL1、層CONV3、層RELU3、層CONV4、層RELU4、層POOL2、層CONV5、層RELU5、層CONV6、層RELU6、層POOL3以及層FC。此處,CONV為卷積層,RELU為整流線性單元,POOL為池化層且FC為全連接層。
不同於通用神經網路,CNN的每一層可具有寬度、高度以及深度的三個尺寸,且因此輸入至每一層的資料可為具有寬度、高度以及深度的三個尺寸的體積資料。舉例而言,若圖5B中的輸入影像具有32個寬度(例如,32個像素)及32個高度的大小以及三個色彩通道R、色彩通道G以及色彩通道B,則對應於輸入影像的輸入資料IDAT可具有32*32*3的大小。圖5B中的輸入資料IDAT可稱為輸入體積資料或輸入激活體積。
卷積層CONV1、卷積層CONV2、卷積層CONV3、卷積層CONV4、卷積層CONV5以及卷積層CONV6中的每一者可對輸入體積資料進行卷積操作。在影像處理中,卷積操作指示其中基於具有權重值的遮罩來處理影像資料的操作,且輸出值藉由用權重值乘以輸入值且將總乘積結果相加來獲得。遮罩可稱為濾波器、窗或核心。
每一卷積層的參數可包含可學習濾波器的集合。每個濾波器在空間上(沿著寬度及高度)可為較小的,但可延伸穿過輸入體積的整個深度。舉例而言,在正向傳遞期間,每一濾波器可跨越輸入體積的寬度及高度滑動(例如,卷積),且點積可在濾波器的入口與任何位置處的輸入之間經運算。當濾波器在輸入體積的寬度及高度上滑動時,可產生對應於所述濾波器在每個空間位置處的回應的二維激活圖。因此,輸出體積可藉由沿著深度尺寸堆疊此等激活圖而產生。舉例而言,若具有32*32*3的大小的輸入體積資料穿過具有帶有補零的四個濾波器的卷積層CONV1,則卷積層CONV1的輸出體積資料可具有32*32*12的大小(例如,體積資料的深度增大)。
RELU層RELU1、RELU層RELU2、RELU層RELU3、RELU層RELU4、RELU層RELU5以及RELU層RELU6中的每一者可進行對應於藉由例如函數f(x)=max(0, x)(例如,針對所有負輸入x,輸出為零)定義的激活函數的整流線性單元(rectified linear unit;RELU)操作。舉例而言,若具有32*32*12的大小的輸入體積資料穿過RELU層RELU1以進行整流線性單元操作,則RELU層RELU1的輸出體積資料可具有32*32*12的大小(例如,保持體積資料的大小)。
池化層POOL1、池化層POOL2以及池化層POOL3中的每一者可沿著寬度及高度的空間尺寸對輸入體積資料進行下取樣操作。舉例而言,可基於2*2濾波器將以2*2矩陣形式配置的四個輸入值轉換成一個輸出值。舉例而言,可基於2*2最大池化來選擇以2*2矩陣形式配置的四個輸入值的最大值,或可基於2*2平均池化來獲得以2*2矩陣形式配置的四個輸入值的平均值。舉例而言,若具有32*32*12的大小的輸入體積資料穿過具有2*2濾波器的池化層POOL1,則池化層POOL1的輸出體積資料可具有16*16*12的大小(例如,體積資料的寬度及高度減小,且保持體積資料的深度)。
通常,一個卷積層(例如,CONV1)及一個RELU層(例如,RELU1)可形成CNN中的一對CONV/RELU層,多對CONV/RELU層可重複地配置於CNN中,且池化層可週期性地插入於CNN中,由此減少影像的空間大小且提取影像的特性。
輸出層或全連接層FC可輸出用於類別中的每一者的輸入體積資料IDAT的結果(例如,類別分數)。舉例而言,當重複卷積操作及下取樣操作時,可將對應於二維影像的輸入體積資料IDAT轉換為一維矩陣或向量。舉例而言,全連接層FC可指示輸入體積資料IDAT對應於汽車、卡車、飛機、船以及馬的機率。
包含於CNN中的類型及層的數目可不受限於參考圖5B所描述的實例且可根據實例實施例改變。另外,儘管圖5B中未示出,但CNN可更包含諸如用於將對應於經預測結果的分數值轉換成機率值的softmax層、用於添加至少一個偏壓的偏壓添加層或類似者的其他層。
參考圖5C,RNN可包含使用示出於圖5C的左側上的特定節點或單元N的重複結構。
示出於圖5C的右側上的結構可指示示出於左側上的RNN的遞回連接為展開的(或未展現的)。術語「展開」」意謂將網路寫出或示出以用於包含所有節點NA、節點NB以及節點NC的完整或整個序列。舉例而言,若所關注的序列為3個字詞的句子,則可將RNN展開成3層神經網路,每一字詞一個層(例如,在無遞回連接的情況下或在無循環的情況下)。
在圖5C中的RNN中,X指示RNN的輸入。舉例而言,X t可為時間步長t處的輸入,且X t-1及X t+1可分別為時間步長t-1及時間步長t+1處的輸入。
在圖5C中的RNN中,S指示隱藏狀態。舉例而言,S t可為時間步長t處的隱藏狀態,且S t-1及S t+1可分別為時間步長t-1及t+1處的隱藏狀態。隱藏狀態可基於前述隱藏狀態及當前步驟處的輸入而計算。舉例而言,S t=f(UX t+WS t-1)。舉例而言,函數f可大體上為諸如tanh或RELU的非線性函數。需要計算第一隱藏狀態的S -1通常可經初始化至全零。
在圖5C中的RNN中,O指示RNN的輸出。舉例而言,O t可為時間步長t處的輸出,且O t-1及O t+1可分別為時間步長t-1及t+1處的輸出。舉例而言,若需要預測句子中的下一字詞,則其將為跨越詞彙的機率的向量。舉例而言,O t=softmax(VS t)。
在圖5C中的RNN中,隱藏狀態可為網路的「記憶體」。舉例而言,RNN可具有擷取迄今為止關於已計算的內容的資訊的「記憶體」。隱藏狀態S t可擷取關於所有先前時間步長中發生的內容的資訊。輸出O t可基於當前時間步長t處的記憶體而單獨計算。另外,不同於使用每一層處的不同參數的傳統的神經網路,RNN可共用跨越所有時間步長的相同參數(例如,圖5C中的U、V以及W)。此可指示相同任務可僅用不同輸入在每一步驟處進行的事實。此可極大地減少需要訓練或學習的參數的總數目。
參考圖6,神經網路系統600可包含用於執行及/或驅動神經網路模型的多個異質資源,及用於管理及/或控制多個異質資源的資源管理器601。
多個異質資源可包含中央處理單元(central processing unit;CPU)610、神經處理單元(neural processing unit;NPU)620、圖形處理單元(GPU)630、數位信號處理器(DSP)640以及影像信號處理器(image signal processor;ISP)650,且可更包含專用硬體(dedicated hardware;DHW)660、記憶體(memory;MEM)670、直接記憶體存取單元(direct memory access unit;DMA)680以及連接性690。CPU 610、NPU 620、GPU 630、DSP 640、ISP 650以及專用硬體660可稱為處理器、處理單元(processing unit;PE)、運算資源等。DMA 680及連接性690可稱為通信資源。
CPU 610、NPU 620、GPU 630、DSP 640、ISP 650以及專用硬體660可進行諸如特定計算及任務的各種運算功能,且可用於執行神經網路模型。舉例而言,專用硬體660可包含視覺處理單元(vision processing unit;VPU)、視覺智慧財產(vision intellectual property;VIP)等。記憶體670可作為工作記憶體或用於藉由多個異質資源處理的資料的資料儲存器來操作,且可儲存與神經網路模型相關聯的資料。DMA 680可控制對記憶體670的存取。舉例而言,DMA 680可包含記憶體DMA(memory DMA;MDMA)、周邊DMA(peripheral DMA;PDMA)、遠端DMA(remote DMA;RDMA)、智慧DMA(smart DMA;SDMA)等。連接性690可與內部元件及/或外部裝置進行有線/無線通信。舉例而言,連接性690可包含支援諸如系統匯流排、周邊組件互連(peripheral component interconnect;PCI)、快速PCI(PCI express;PCIe)等的內部通信,及/或可支援諸如行動電信、通用串列匯流排(universal serial bus;USB)、乙太網、WiFi、藍牙(Bluetooth)、近場通信(near field communication;NFC)、射頻識別(radio frequency identification;RFID)等的外部通信的內部匯流排。
儘管圖6中未示出,但運算資源可更包含微處理器、應用程式處理器(AP)、定製硬體、壓縮硬體等,且通信資源可更包含可記憶體拷貝資源等。
在一些實例實施例中,神經網路系統600可包含於任何運算裝置及/或行動裝置中。
在一些實例實施例中,各種服務及/或應用中的至少一者,例如電腦視覺(例如,影像分類,影像偵測、影像分段、影像追蹤等)服務、基於生物資訊或生物識別資料的使用者驗證服務、進階駕駛輔助系統(advanced driver assistance system;ADAS)服務、語音助理服務、自動語音辨識(automatic speech recognition;ASR)服務或類似者可藉由參考圖5A、圖5B以及圖5C所描述的神經網路模型及參考圖6所描述的神經網路系統600來進行執行及/或處理。
圖7為示出進行圖1中的分析的實例的流程圖。
參考圖1及圖7,當進行第一神經網路模型是否適合於在第一目標裝置上執行的分析時(步驟S300),用於進行分析的多個適用性判定演算法可包含用於判定與第一目標裝置相關聯的第一神經網路模型的結構及層的效能效率的第一演算法,且可基於第一演算法對第一神經網路模型進行第一分析(步驟S310)。舉例而言,步驟S310可藉由圖4中的分析模組300來進行。
如參考圖5A、圖5B以及圖5C所描述,第一神經網路模型可包含具有各種特性的多個層,且可具有其中若干層分組在一起的結構(或網路結構)。在第一神經網路模型的結構及層當中,可存在不適合或不適用於第一目標裝置的操作的結構、層及/或元件。在步驟S310中,可判定或檢查第一神經網路模型的結構及層是否對第一目標裝置有效,且在步驟S400中,判定結果結果可經評分且可視地顯示。
圖8為示出進行圖7中的第一分析的實例的流程圖。
參考圖7及圖8,當基於第一演算法對第一神經網路模型進行第一分析時(步驟S310),可使用用於第一目標裝置的預列表(例如,圖4中的預列表310)獲得第一神經網路模型的結構及層的第一分數(步驟S312)。
舉例而言,可基於預列表310分析第一神經網路模型的結構及層是否對第一目標裝置有效(步驟S312a),且第一分數可基於步驟S312a的結果來獲得(步驟S312b)。舉例而言,用於步驟S312a中的預列表310可為其中預定義對第一目標裝置中的推斷有效及/或低效的結構及層的表或列表。舉例而言,預列表310可包含於模型資訊(例如,圖2中的模型資訊MI)中,且可用模型資訊MI接收。舉例而言,步驟S312b中的評分可基於效率的次序而進行,且可針對具有更高效率的結構或層給出更高分數且可針對具有更低效率的結構或層給出更低分數。
另外,第一神經網路模型的結構及層的第二分數可藉由使用效能估計器(例如,圖4中的效能估計器320)預測第一神經網路模型的結構及層的處理時間來獲得(步驟S314)。
舉例而言,第一神經網路模型的結構及層的效能可使用效能估計器320(步驟S314a)來分析,且第二分數可基於步驟S314a的結果來獲得(步驟S314b)。舉例而言,用於步驟S314a中的效能估計器320可為用於估計神經網路模型的處理時間的工具,且可以軟體及/或硬體的形式實施。舉例而言,可進行步驟S314b中的評分以使得表示降低效能的結構及/或層,且可針對具有更高效能的結構或層給出更高分數且可針對具有更低效能的結構或層給出更低分數。
此外,第一神經網路模型的結構及層的第三分數可使用用於第一目標裝置的預訓練深度學習模型(例如,圖4中的預訓練深度學習模型330)來獲得(步驟S316)。
舉例而言,用於步驟S316中的預訓練深度學習模型330可為取決於第一目標裝置使用不同組件來訓練的模型。舉例而言,預訓練深度學習模型330可包含於模型資訊MI中,且可用模型資訊MI接收。舉例而言,步驟S316中的評分可基於預訓練深度學習模型330的判定輸出而進行。
換言之,在步驟S312中,可預定義對第一目標裝置中的推斷有效及/或低效的模型的結構及/或層,低效層可使用預列表310來偵測,且可提供經定義解決方案。在步驟S314中,可使用用於估計處理時間的工具來模擬每一組件,且每一組件的效能可經預測及評分。在步驟S316中,深度學習模型可藉由記錄藉由執行在第一目標裝置上具有各種結構及層的若干模型來獲得的效能來預訓練,且可使用預訓練深度學習模型來量測第一神經網路模型的每一組件的效能及適用性。
儘管圖8示出步驟S312、步驟S314以及步驟S316實質上同步進行,但實例實施例不限於此,且可依序或以任何給定次序進行步驟S312、步驟S314以及步驟S316。
可基於第一分數、第二分數以及第三分數來獲得第一神經網路模型的結構及層的效能分數(步驟S318)。舉例而言,可基於其中用不同權重加總第一分數、第二分數以及第三分數的權重加總方案來獲得效能分數。舉例而言,可針對每一目標裝置不同地設定權重。舉例而言,用於第一分數、第二分數以及第三分數的第一權重、第二權重以及第三權重可包含於模型資訊MI中,且可用模型資訊MI接收。
在一些實例實施例中,可獲得第一分數、第二分數、第三分數以及效能分數以用於第一神經網路模型的結構及層中的每一者。
圖9為示出進行圖1中的分析的實例的流程圖。
參考圖1及圖9,當進行第一神經網路模型是否適合於在第一目標裝置上執行的分析時(步驟S300),用於進行分析的多個適用性判定演算法可包含用於分析第一神經網路模型的結構及層的複雜性及容量的第二演算法,且可基於第二演算法對第一神經網路模型進行第二分析(步驟S320)。舉例而言,步驟S320可藉由圖4中的分析模組300來進行。
在步驟S320中,最佳化點可藉由分析第一神經網路模型的結構及層的複雜性及容量來判定及引導,且在步驟S400中,判定的結果可經評分且可視地顯示。
圖10為示出進行圖9中的第二分析的實例的流程圖。
參考圖9及圖10,當基於第二演算法對第一神經網路模型進行第二分析時(步驟S320),第一神經網路模型的結構及層的第四分數可藉由判定第一神經網路模型的結構及層的複雜性來獲得(步驟S322)。
舉例而言,第一神經網路模型的結構及層的複雜性可藉由使用複雜性判定單元(例如,圖4中的複雜性判定單元340)來分析(步驟S322a),且可基於步驟S322a的結果來獲得第四分數(步驟S322b)。舉例而言,用於步驟S322a中的複雜性判定單元340可為用於判定神經網路模型的複雜性的工具,且可以軟體及/或硬體的形式實施。舉例而言,可基於用於第一目標裝置的複雜性的臨限值來進行步驟S322b中的評分,且可針對具有更高複雜性的結構或層給出更低分數以且可針對具有更低複雜性的結構或層給出更高分數。
在一些實例實施例中,用於藉由複雜性判定單元340來判定複雜性的準則可包含包含於神經網路模型中的參數、單元以及層的數目。在一些實例實施例中,用於藉由複雜性判定單元340來判定複雜性的方案及/或演算法可包含由莫妮卡·比安基尼(Monica Bianchini)及弗朗哥·斯卡塞利(Franco Scarselli)揭露於論文「關於神經網路分類器的複雜性:淺架構與深架構之間的比較(On the Complexity of Neural Network Classifiers: A Comparison Between Shallow and Deep Architectures)」中的複雜性估計函數。然而,實例實施例不限於此,且可使用各種準則、方案及/或演算法來判定及/或檢查複雜性。
另外,可藉由量測第一神經網路模型的結構及層的容量來獲得第一神經網路模型的結構及層的第五分數(步驟S324)。
舉例而言,可藉由使用容量量測單元(例如,圖4中的容量量測單元350)來分析第一神經網路模型的結構及層的容量(步驟S324a),且可基於步驟S324a的結果來獲得第五分數(步驟S324b)。舉例而言,用於步驟S324a中的容量量測單元350可為用於量測神經網路模型的容量的工具,且可以軟體及/或硬體的形式實施。舉例而言,步驟S324b中的評分可取決於容量要求而進行,且可針對具有更大容量的結構或層給出更高分數且可針對具有更小容量的結構或層給出更低分數。
在一些實例實施例中,用於藉由容量量測單元350來量測容量的方案及/或演算法可包含由奧森·王(Aosen Wang)等人揭露於論文「深度神經網路容量(Deep Neural Network Capacity)」中的演算法。然而,實例實施例不限於此,且可使用各種準則、方案及/或演算法來量測容量。
換言之,在步驟S322中,可使用用於判定第一神經網路模型的複雜性的演算法來量測其中在第一目標裝置上執行第一神經網路模型的額外負荷程度,且可藉由取決於第一神經網路模型的複雜性而量測第一目標裝置的效能來預測第一神經網路模型的額外負荷。在步驟S324中,可量測第一神經網路模型的容量,可使用第一神經網路模型的容量來判定及引導最佳化點,且可更易於在第一神經網路模型的容量變得較大時最佳化第一神經網路模型。
儘管圖10示出步驟S322及步驟S324實質上同步進行,但實例實施例不限於此,且可依序或以任何給定次序進行步驟S322及步驟S324。
可基於第四分數及第五分數來獲得第一神經網路模型的結構及層的複雜性分數(步驟S326)。舉例而言,可基於其中用不同權重加總第四分數及第五分數的權重加總方案來獲得複雜性分數。舉例而言,可針對每一目標裝置不同地設定權重。舉例而言,用於第四分數及第五分數的第四權重及第五權重可包含於模型資訊MI中,且可用模型資訊MI接收。
在一些實例實施例中,可獲得第四分數、第五分數以及複雜性分數以用於第一神經網路模型的結構及層中的每一者。
圖11為示出進行圖1中的分析的實例的流程圖。
參考圖1及圖11,當進行第一神經網路模型是否適合於在第一目標裝置上執行的分析時(步驟S300),用於進行分析的多個適用性判定演算法可包含用於判定與第一目標裝置相關聯的第一神經網路模型的結構及層的記憶體效率的第三演算法,且可基於第三演算法對第一神經網路模型進行第三分析(步驟S330)。舉例而言,步驟S330可藉由圖4中的分析模組300來進行。
在步驟S330中,取決於記憶體利用率的最佳化點可藉由分析第一神經網路模型的結構及層的記憶體磁碟使用量來判定及引導,且在步驟S400中,判定的結果可經評分且可視地顯示。
圖12及圖13為示出進行圖11中的第三分析的實例的流程圖。
參考圖11及圖12,當基於第三演算法對第一神經網路模型進行第三分析時(步驟S330),可加載第一目標裝置的記憶體限制(步驟S332),且可基於第一目標裝置的記憶體限制來獲得第一神經網路模型的結構及層的記憶體磁碟使用量分數(步驟S334)。
舉例而言,歸因於第一目標裝置的特性,可存在諸如SRAM、DRAM或類似者的記憶體的限制,且因此第一目標裝置的效能可取決於記憶體的限制(例如,讀取/寫入操作)而變化。可取決於第一神經網路模型的結構及/或類型而出現於每一操作中的記憶體使用、瓶頸點、記憶體共用或類似者可預先使用記憶體估計器(例如,圖4中的記憶體估計器360)來計算,且因此可基於期望的效能來設計經最佳化模型。舉例而言,用於步驟S334中的記憶體估計器360可為用於分析神經網路模型的記憶體磁碟使用量的工具,且可以軟體及/或硬體的形式實施。
在一些實例實施例中,可獲得記憶體磁碟使用量分數以用於第一神經網路模型的結構及層中的每一者。
參考圖11及圖13,當基於第三演算法對第一神經網路模型進行第三分析時(步驟S330),步驟S332及步驟S334可分別與圖12中的步驟S332及步驟S334實質上相同或類似。
當第一神經網路模型在記憶體限制內為不可獲得的(或不為可獲得的)時(步驟S512:否),可改變、修改或更新第一神經網路模型(步驟S514)。舉例而言,第一神經網路模型可取決於記憶體使用、瓶頸點、記憶體共用或類似者而改變。步驟S512及步驟S514可對應於稍後將描述的圖17中的步驟S500。
當第一神經網路模型在記憶體限制內為可獲得的時(步驟S512:是),可在不改變第一神經網路模型的情況下終止過程。
圖14為示出進行圖1中的分析的實例的流程圖。
參考圖1及圖14,當進行第一神經網路模型是否適合於在第一目標裝置上執行的分析時(步驟S300),步驟S310可與參考圖7及圖8所描述的步驟S310實質上相同或類似,步驟S320可與參考圖9及圖10所描述的步驟S320實質上相同或類似,且步驟S330可與參考圖11、圖12以及圖13所描述的步驟S330實質上相同或類似。
可基於在步驟S310中所獲得的效能分數、在步驟S320中所獲得的複雜性分數以及在步驟S330中所獲得的記憶體磁碟使用量分數來獲得第一神經網路模型的總分數(步驟S340)。舉例而言,可基於其中用不同權重加總效能分數、複雜性分數以及記憶體磁碟使用量分數的權重加總方案來獲得總分數。舉例而言,可針對每一目標裝置不同地設定權重。舉例而言,用於效能分數、複雜性分數以及記憶體磁碟使用量分數的權重可包含於模型資訊MI中,且可用模型資訊MI接收。
圖15為示出最佳化圖1的神經網路模型的方法的實例的流程圖。將省略與圖1重複的描述。
參考圖15,在根據實例實施例的最佳化神經網路模型的方法中,提供用於最佳化神經網路模型的GUI(步驟S1100)。稍後將描述GUI的詳細組態。
經由GUI接收第一神經網路模型的第一模型資訊(步驟S100a)。經由GUI接收用於執行或驅動第一神經網路模型的第一目標裝置的裝置資訊(步驟S200a)。基於第一模型資訊、裝置資訊,以及多個適用性判定演算法中的至少一者來進行第一神經網路模型是否適合於在第一目標裝置上執行或驅動的分析(步驟S300)。在GUI上顯示分析的結果以使得第一模型資訊及分析的結果顯示於螢幕上(步驟S400a)。步驟S100a、步驟S200a以及步驟S400a可分別類似於圖1中的步驟S100、步驟S200以及步驟S400,且步驟S300可與圖1中的步驟S300實質上相同或類似。舉例而言,步驟S300及步驟S400a可藉由圖4中的分析模組300及GUI控制模組200來進行。
圖16A、圖16B、圖16C、圖16D、圖16E以及圖16F為用於描述圖15的操作的圖。
參考圖15及圖16A,在步驟S400a中,包含第一神經網路模型的結構及層的圖形表示GR11可在初始操作時間處顯示於GUI上。舉例而言,圖形表示GR11可包含第一神經網路模型的輸入與輸出之間的多個層LAYER1、層LAYER2、層LAYER3、層LAYER4、層LAYER5以及層LAYER6的網路結構。舉例而言,圖形表示GR11可包含其中的每一者對應於多個層中的各別一者的多個層框(例如,矩形),以及多個箭頭,所述多個箭頭中的每一者指示層之間的連接。
參考圖15、圖16B、圖16C、圖16D、圖16E以及圖16F,在步驟S400a中,圖形表示GR12、圖形表示GR13、圖形表示GR14、圖形表示GR15以及圖形表示GR16可顯示於GUI上,所述圖形表示中的每一者包含第一神經網路模型的結構及層且一起包含分析的結果。舉例而言,可基於包含於選單110中的按鈕112、按鈕114、按鈕116以及按鈕118中的一者的選擇來顯示分析的結果,所述選單110包含於圖形表示GR12、圖形表示GR13、圖形表示GR14、圖形表示GR15以及圖形表示GR16中。
圖16B、圖16C、圖16D以及圖16E示出基於分數來顯示分析的結果的實例。在圖16B的實例中,可選擇對應於效能分數的按鈕114,且包含多個層LAYER1至層LAYER6以及藉由步驟S310所獲得作為第一分析的結果的多個效能分數SVP1、效能分數SVP2、效能分數SVP3、效能分數SVP4、效能分數SVP5以及效能分數SVP6的圖形表示GR12可顯示於GUI上。在圖16C的實例中,可選擇對應於複雜性分數的按鈕116,且包含多個層LAYER1至層LAYER6以及藉由步驟S320所獲得作為第二分析的結果的多個複雜性分數SVC1、複雜性分數SVC2、複雜性分數SVC3、複雜性分數SVC4、複雜性分數SVC5以及複雜性分數SVC6的圖形表示GR13可顯示於GUI上。在圖16D的實例中,可選擇對應於記憶體磁碟使用量分數的按鈕118,且包含多個層LAYER1至層LAYER6以及藉由步驟S330所獲得作為第三分析的結果的多個記憶體磁碟使用量分數SVM1、記憶體磁碟使用量分數SVM2、記憶體磁碟使用量分數SVM3、記憶體磁碟使用量分數SVM4、記憶體磁碟使用量分數SVM5以及記憶體磁碟使用量分數SVM6的圖形表示GR14可顯示於GUI上。在圖16E的實例中,可選擇對應於基於效能分數、複雜性分數以及記憶體磁碟使用量分數的總分數的按鈕112,且包含多個層LAYER1至層LAYER6以及藉由步驟S340所獲得的多個總分數SVT1、總分數SVT2、總分數SVT3、總分數SVT4、總分數SVT5以及總分數SVT6的圖形表示GR15可顯示於GUI上。
在一些實例實施例中,圖16B、圖16C、圖16D以及圖16E的圖形表示GR12、圖形表示GR13、圖形表示GR14以及圖形表示GR15可為可彼此切換的。
圖16F示出基於色彩來顯示分析的結果的實例。如同圖16E的實例,可在圖16F的實例中選擇對應於總分數的按鈕112,且包含多個層LAYER1至層LAYER6以及一些著色層框的圖形表示GR16可顯示於GUI上。為方便示出起見,色彩藉由圖16F中的影線來指示,且具有更高影線密度的層框可對應於具有更暗色彩的層框。舉例而言,著色層LAYER2至層LAYER4可對應於具有相對低總分數的層,具有更暗色彩的層框可對應於具有更低總分數的層,且因此對應於層LAYER3的總分數SVT3可為最低總分數。此僅為實例,且更暗色彩可用於指示具有更高總分數的層。儘管未詳細示出,但當選擇按鈕112、按鈕114以及按鈕116中的一者時,可基於色彩來顯示分析的結果,如同圖16F的實例。
然而,實例實施例不限於此,且可使用不同形狀或類似者來實施圖形表示,只要圖形表示可自其他層以可視地可區分方式指示具有更低分數的層即可。
在一些實例實施例中,可藉由使用包含於神經網路模型處理系統1000中的諸如滑鼠或觸控螢幕的輸入裝置1310接收使用者輸入來選擇按鈕112、按鈕114、按鈕116以及按鈕118中的一者。
圖17為示出根據實例實施例的最佳化神經網路模型的方法的流程圖。將省略與圖1重複的描述。
參考圖17,在根據實例實施例的最佳化神經網路模型的方法中,步驟S100、步驟S200、步驟S300以及步驟S400可分別與圖1中的步驟S100、步驟S200、步驟S300以及步驟S400實質上相同或類似。
基於分析的結果來改變或修改第一神經網路模型的層中的至少一者(步驟S500)。舉例而言,如同步驟S400,可在步驟S500中將模型變化的結果可視化且輸出,且可使用GUI來進行S500。舉例而言,步驟S500可藉由圖4中的更新模組400來進行。
圖18為示出改變圖17中的第一神經網路模型的層中的至少一者的實例的流程圖。
參考圖17及圖18,當基於分析的結果來改變第一神經網路模型的層中的至少一者時(步驟S500),可自第一神經網路模型的層當中選擇具有最低分數的第一層(步驟S522)。可推薦能夠替換第一層且具有高於第一層的分數的分數的至少一個第二層(步驟S524)。可基於至少一個第二層來改變第一層(步驟S526)。舉例而言,可基於使用者輸入(例如,圖4中的使用者輸入UI)來進行步驟S522及步驟S526。舉例而言,可將第一層變成第二層。
圖19為示出最佳化圖17的神經網路模型的方法的實例的流程圖。將省略與圖15及圖17重複的描述。
參考圖19,在根據實例實施例的最佳化神經網路模型的方法中,步驟S1100、步驟S100a、步驟S200a、步驟S300以及步驟S400a可分別與圖15中的步驟S1100、步驟S100a、步驟S200a、步驟S300以及步驟S400a實質上相同或類似。
模型變化的過程及結果可顯示於GUI上以使得第一模型資訊及模型變化的過程及結果顯示於螢幕上(步驟S500a)。步驟S500a可類似於圖17中的步驟S500。舉例而言,步驟S500a可藉由圖4中的更新模組400及GUI控制模組200來進行。
圖20A、圖20B、圖20C以及圖20D為用於描述圖19的操作的圖。將省略與圖16A、圖16B、圖16C、圖16D、圖16E以及圖16F重複的描述。
參考圖16E、圖16F、圖19以及圖20A,在步驟S500a中,可自多個層LAYER1至層LAYER6當中選擇具有最低總分數SVT3的層LAYER3,且因此包含層LAYER3的資訊(在選單120上)的圖形表示GR21可顯示於GUI上。舉例而言,層LAYER3的輸入資料的大小可為(1, 64, 512, 512),層LAYER3的輸出資料的大小可為(1, 137, 85, 85),且可基於顯示於選單120上的組態來實施層LAYER3。
參考圖19及圖20B,在步驟S500a中,包含能夠替換第一層LAYER3的推薦層LAYER31、推薦層LAYER32以及推薦層LAYER33的資訊的圖形表示GR22可顯示於GUI上。舉例而言,第一推薦層LAYER31可用單一層且基於顯示於選單122上的組態來實施。舉例而言,第二推薦層LAYER32及第二推薦層LAYER33可用兩個層且基於顯示於選單122上的組態來實施。舉例而言,當將第一層LAYER3變成第一推薦層LAYER31時,變化之前的模型與變化之後的模型之間的類似性可更高。舉例而言,當將第一層LAYER3變成第二推薦層LAYER32及第二推薦層LAYER33時,可更為改良效能。
參考圖19及圖20C,在步驟S500a中,可選擇第一推薦層LAYER31以將層LAYER3變成第一推薦層LAYER31,且包含選擇第一推薦層LAYER31的操作的圖形表示的圖形表示GR23可顯示於GUI上。
參考圖19及圖20D,在步驟S500a中,在將層LAYER3變成第一推薦層LAYER31之後,包含經改變模型的多個層LAYER1、層LAYER2、層LAYER31、層LAYER4、層LAYER5以及層LAYER6以及經改變模型的多個總分數SVT1、總分數SVT2、總分數SVT31、總分數SVT4、總分數SVT5以及總分數SVT6的圖形表示GR24可顯示於GUI上。舉例而言,經改變的層LAYER31的總分數SVT31可高於變化之前的層LAYER3的總分數SVT3。
在一些實例實施例中,可在圖20A及圖20C中藉由經由包含於神經網路模型處理系統1000中的諸如滑鼠或觸控螢幕的輸入裝置1310接收使用者輸入來選擇層及對應的層框。
如上文所描述,可基於適用性判定演算法使用視覺介面來改變或修改神經網路模型,且可藉由重複此修改過程來設計經最佳化以用於目標裝置的神經網路模型。可提議對新替代性結構的簡單修改,且可提供基於使用者的輸入情況的自動最佳化功能及條件式最佳化功能兩者。
圖21為示出根據實例實施例的最佳化神經網路模型的方法的流程圖。將省略與圖1重複的描述。
參考圖21,在根據實例實施例的最佳化神經網路模型的方法中,步驟S100、步驟S200、步驟S300以及步驟S400可分別與圖1中的步驟S100、步驟S200、步驟S300以及步驟S400實質上相同或類似。
將不同量化方案應用於第一神經網路模型的層中的至少一些(步驟S600)。舉例而言,如同步驟S400,可在步驟S600中將量化方案變化的結果可視化且輸出,且可使用GUI來進行S600。舉例而言,步驟S600可藉由圖4中的量化模組500來進行。
圖22為示出將不同量化方案應用於圖21中的第一神經網路模型的層中的至少一些的實例的流程圖。
參考圖21及圖22,當將不同量化方案應用於第一神經網路模型的層中的至少一些時(步驟S600),可接收第一神經網路模型的第二模型資訊(步驟S610)。可在完成對第一神經網路模型的訓練之後獲得第二模型資訊。其量化方案待改變的第三層可基於第二模型資訊而選自第一神經網路模型的層當中(步驟S620)。可改變經選擇第三層的量化方案(步驟S630)。舉例而言,可基於使用者輸入(例如,圖4中的使用者輸入UI)來進行步驟S620及步驟S630。
不同於步驟S100、步驟S200、步驟S300以及步驟S400,可在完成對第一神經網路模型的訓練之後進行步驟S600。舉例而言,可藉由改變第一模型資訊的至少一部分來獲得第二模型資訊。舉例而言,儘管未詳細示出,但可在圖21中的步驟S400與S600之間進行圖17中的步驟S500以獲得第二模型資訊。
量化為對神經網路模型的一種壓縮。對神經網路模型的壓縮(或壓縮操作)指示用於在儘可能地維持預訓練神經網路模型的效能及/或準確度的同時減少神經網路模型的運算的大小及量的過程。量化(或量化操作)指示用於藉由將大體上以浮動點表示的權重降低至位元的特定數目來減少其中實際上儲存神經網路模型的大小的技術。
圖23為示出最佳化圖21的神經網路模型的方法的實例的流程圖。將省略與圖15及圖21重複的描述。
參考圖23,在根據實例實施例的最佳化神經網路模型的方法中,步驟S1100、步驟S100a、步驟S200a、步驟S300以及步驟S400a可分別與圖15中的步驟S1100、步驟S100a、步驟S200a、步驟S300以及步驟S400a實質上相同或類似。
量化方案變化的過程及結果可顯示於GUI上以使得第二模型資訊及量化方案變化的過程及結果顯示於螢幕上(步驟S600a)。步驟S600a可類似於圖21中的步驟S600。舉例而言,步驟S600a可藉由圖4中的量化模組500及GUI控制模組200來進行。
圖24A、圖24B以及圖24C為用於描述圖23的操作的圖。將省略與圖16A、圖16B、圖16C、圖16D、圖16E、圖16F、圖20A、圖20B、圖20C以及圖20D重複的描述。
參考圖23及圖24A,在步驟S600a中,可選擇對應於包含於選單130中的量化效能的按鈕132,且包含多個層LAYER1、層LAYER2、層LAYER31、層LAYER4、層LAYER5以及層LAYER6以及多個量化效能QP1、量化效能QP2、量化效能QP3、量化效能QP4、量化效能QP5以及量化效能QP6的圖形表示GR31可顯示於GUI上。
參考圖23及圖24B,在步驟S600a中,可選擇對應於包含於選單130中的量化方案的變化的按鈕134,可選擇其量化方案待改變的層LAYER31,層LAYER31的量化方案可自第一量化方案QS1變成第二量化方案QS2,且包含對應於選擇層LAYER31且改變層LAYER31的量化方案的操作的圖形表示的圖形表示GR32可顯示於GUI上。可基於第二量化方案QS2來再量化層LAYER31,且應用於層LAYER31的量化方案可與應用於其他層的量化方案不同。
參考圖23及圖24C,在步驟S600a中,可選擇包含於選單130中的按鈕132,且包含多個層LAYER1、層LAYER2、層LAYER31、層LAYER4、層LAYER5以及層LAYER6以及多個量化效能QP1、量化效能QP2、量化效能QP31、量化效能QP4、量化效能QP5以及量化效能QP6的圖形表示GR33可顯示於GUI上。舉例而言,基於第二量化方案QS2的層LAYER31的量化效能QP31可高於基於第一量化方案QS1的層LAYER31的量化效能QP3。
如上文所描述,可檢查應用於每一組件的量化方案的準確度,且可藉由取決於分佈恢復程度的損耗率將不同量化方案應用於組件來改良準確度。舉例而言,可藉由將層的量化準確度與浮點模型的特徵圖進行比較來提供取決於損耗程度而偵測用於每一層及特徵圖的合適的量化方案的演算法。可藉由將不同量化方案應用於每一組件且緊接著檢查結果來獲得經最佳化的量化效能。使用者可任意設定用於一或多個組件的目標最小/最大範圍,可設定量化分佈模式,且可藉由不同地應用不對稱方案、對稱方案或類似者,及/或藉由應用不同位元寬度來進行再量化。
圖25為示出根據實例實施例的進行最佳化神經網路模型的方法的系統的方塊圖。
參考圖25,系統3000可包含使用者裝置3100、雲端運算環境3200以及網路3300。使用者裝置3100可包含神經網路模型(neural network model;NNM)最佳化引擎前端3110。雲端運算環境3200可包含雲端儲存器3210、資料庫3220、NNM最佳化引擎後端3230、雲端NNM引擎3240以及庫存後端3250。根據實例實施例的最佳化神經網路模型的方法可在雲端環境上實施,且可藉由NNM最佳化引擎前端3110及/或NNM最佳化引擎後端3230來進行。
本發明概念可應用於包含深度學習、ANN及/或機器學習系統的各種電子裝置及系統。舉例而言,本發明概念可應用於系統,諸如個人電腦(personal computer;PC)、伺服器電腦、資料中心、工作站、行動電話、智慧型手機、平板電腦、膝上型電腦、個人數位助理(personal digital assistant;PDA)、攜帶型多媒體播放器(portable multimedia player;PMP)、數位攝影機、攜帶型遊戲主控台、音樂播放器、攝錄影機、視訊播放器、導航裝置、可穿戴裝置、物聯網(internet of things;IoT)裝置、萬物網(internet of everything;IoE)裝置、電子書閱讀器、虛擬實境(virtual reality;VR)裝置、擴增實境(augmented reality;AR)裝置、機器人裝置、無人機等。
在根據實例實施例的最佳化神經網路模型及神經網路模型處理系統的方法中,可有效實施最適合或適用於目標裝置的神經網路模型。舉例而言,在對神經網路模型進行訓練之前,可設計經最佳化以用於目標裝置的神經網路模型。在完成對神經網路模型的訓練之後,可檢查及/或判定神經網路模型是否適用於目標裝置,且若有必要,則可修改神經網路模型及/或可建議更合適的新組態。另外,可藉由將合適的量化方案應用於神經網路模型的每一組件來獲得經最佳化效能。此外,可提供用於此類操作的GUI。因此,使用者可將神經網路模型有效設計及修改為最為最佳化以用於目標裝置,且可應用合適的量化方案。
藉由圖式中的方塊表示的組件、元件、模組或單元(在本段落中統稱為「組件」)中的至少一者可體現為根據實例實施例的執行上文所描述的各別功能的硬體、軟體及/或韌體結構的各種編號。根據實例實施例,此等組件中的至少一者可使用可經由一或多個微處理器或其他控制設備的控制來執行各別功能的諸如記憶體、處理器、邏輯電路、查找表等的直接電路結構。此外,此等組件中的至少一者具體而言可由模組、程式或含有用於進行特定邏輯功能的一或多個可執行指令的編碼的一部分來體現,且藉由一或多個微處理器或其他控制設備來執行。此外,此等組件中的至少一者可包含諸如進行各別功能的中央處理單元(CPU)、微處理器或類似者的處理器或可藉由所述處理器實施。此等組件中的兩者或大於兩者可組合成進行經組合的兩個或大於兩個組件的所有操作或功能的一個單一組件。此外,此等組件中的至少一者的功能的至少部分可藉由此等組件中的另一者來進行。上文例示性實施例的功能性態樣可以在一或多個處理器上執行的演算法實施。此外,藉由方塊或處理步驟表示的組件可採用用於電子組態、信號處理及/或控制、資料處理以及類似者的任何數目個相關技術領域技術。
前述內容說明實例實施例,且並不解釋為對其的限制。儘管已描述了一些實例實施例,但所所屬技術領域中具有通常知識者將易於瞭解,在不實質上脫離實例實施例的新穎教示及優勢的情況下,對實例實施例的許多修改是可能的。因此,所有此類修改意欲包含於如申請專利範圍中所界定的實例實施例的範圍內。因此,應理解,前述內容說明各種實例實施例且但不應解釋為限於所揭露的特定實例實施例,且對所揭露的實例實施例以及其他實例實施例的修改意欲包含於所附申請專利範圍及其等效物的範圍內。
100:神經網路模型最佳化模組 110、120、122、130:選單 112、114、116、118、132、134:按鈕 200:圖形使用者介面控制模組 300:分析模組 310:預列表 320:效能估計器 330:預訓練深度學習模型 340:複雜性判定單元 350:容量量測單元 360:記憶體估計器 400:更新模組 500:量化模組 600:神經網路系統 601:資源管理器 610:中央處理單元 620:神經處理單元 630:圖形處理單元 640:數位信號處理器 650:影像信號處理器 660:專用硬體 670:記憶體 680:直接記憶體存取單元 690:連接性 1000、2000:神經網路模型處理系統 1100、2100:處理器 1200、2600:儲存裝置 1210:程式 1220:適用性判定演算法 1230:更新演算法 1240:量化方案 1300、2200:輸入/輸出裝置 1310:輸入裝置 1320:輸出裝置 2300:網路介面 2400:隨機存取記憶體 2500:唯讀記憶體 3000:系統 3100:使用者裝置 3110:神經網路模型最佳化引擎前端 3200:雲端運算環境 3210:雲端儲存器 3220:資料庫 3230:神經網路模型最佳化引擎後端 3240:雲端NNM引擎 3250:庫存後端 3300:網路 h 1 1、h 1 2、h 1 3...h 1 m、h 2 1、h 2 2、h 2 3...h 2 m、h n 1、h n 2、h n 3...h n m:隱藏節點 t-1、t、t+1:時間步長 x 1、x 2...x i:輸入節點 y 1、y 2...y j:輸出節點 CONV1、CONV2、CONV3、CONV4、CONV5、CONV6:卷積層 DI:裝置資訊 FC:全連接層 GR、GR11、GR12、GR13、GR14、GR15、GR16、GR21、GR22、GR23、GR24、GR31、GR32、GR33:圖形表示 HL1、HL2...HLn:隱藏層 IDAT:輸入資料 IL:輸入層 LAYER1、LAYER2、LAYER3、LAYER4、LAYER5、LAYER6:層 LAYER31:第一推薦層 LAYER32、LAYER33:第二推薦層 MI:模型資訊 N、NA、NB、NC:節點 O、O t-1、O t、O t+1:輸出 ODAT:輸出資料 OL:輸出層 POOL1、POOL2、POOL3:池化層 QP1、QP2、QP3、QP31、QP4、QP5、QP6:量化效能 QS1:第一量化方案 QS2:第二量化方案 RELU1、RELU2、RELU3、RELU4、RELU5、RELU6:整流線性單元層 S、S t-1、S t、S t+1:隱藏狀態 S100、S100a、S200、S200a、S300、S310、S312、S312a、S312b、S314、S314a、S314b、S316、S318、S320、S322、S322a、S322b、S324、S324a、S324b、S326、S330、S332、S334、S340、S400、S400a、S500、S500a、S512、S514、S522、S524、S526、S600、S600a、S610、S620、S630、S1100:步驟 SVC1、SVC2、SVC3、SVC4、SVC5、SVC6:複雜性分數 SVM1、SVM2、SVM3、SVM4、SVM5、SVM6:記憶體磁碟使用量分數 SVP1、SVP2、SVP3、SVP4、SVP5、SVP6:效能分數 SVT1、SVT2、SVT3、SVT4、SVT5、SVT6、SVT31:總分數 UI:使用者輸入 VOUT:可視化輸出 X、X t-1、X t、X t+1:輸入
自結合隨附圖式進行的以下詳細描述將更清楚地理解說明性、非限制性實例實施例。 圖1為示出根據實例實施例的最佳化神經網路模型的方法的流程圖。 圖2、圖3以及圖4為示出根據實例實施例的神經網路模型處理系統的方塊圖。 圖5A、圖5B、圖5C以及圖6為用於描述根據實例實施例的作為最佳化神經網路模型的方法的目標的神經網路模型的實例的圖。 圖7為示出進行圖1中的分析的實例的流程圖。 圖8為示出進行圖7中的第一分析的實例的流程圖。 圖9為示出進行圖1中的分析的實例的流程圖。 圖10為示出進行圖9中的第二分析的實例的流程圖。 圖11為示出進行圖1中的分析的實例的流程圖。 圖12及圖13為示出進行圖11中的第三分析的實例的流程圖。 圖14為示出進行圖1中的分析的實例的流程圖。 圖15為示出最佳化圖1的神經網路模型的方法的實例的流程圖。 圖16A、圖16B、圖16C、圖16D、圖16E以及圖16F為用於描述圖15的操作的圖。 圖17為示出根據實例實施例的最佳化神經網路模型的方法的流程圖。 圖18為示出改變圖17中的第一神經網路模型的層中的至少一者的實例的流程圖。 圖19為示出最佳化圖17的神經網路模型的方法的實例的流程圖。 圖20A、圖20B、圖20C以及圖20D為用於描述圖19的操作的圖。 圖21為示出根據實例實施例的最佳化神經網路模型的方法的流程圖。 圖22為示出將不同量化方案應用於圖21中的第一神經網路模型的層中的至少一些的實例的流程圖。 圖23為示出最佳化圖21的神經網路模型的方法的實例的流程圖。 圖24A、圖24B以及圖24C為用於描述圖23的操作的圖。 圖25為示出根據實例實施例的進行最佳化神經網路模型的方法的系統的方塊圖。
S100、S200、S300、S400:步驟

Claims (10)

  1. 一種最佳化神經網路模型的方法,所述方法包括: 接收關於第一神經網路模型的第一模型資訊; 接收關於用於執行所述第一神經網路模型的第一目標裝置的裝置資訊; 基於所述第一模型資訊、所述裝置資訊,以及多個適用性判定演算法中的至少一者來進行所述第一神經網路模型是否適用於在所述第一目標裝置上執行的分析;以及 輸出所述分析的結果以使得所述第一模型資訊及所述分析的所述結果顯示於螢幕上。
  2. 如請求項1所述的方法,其中所述多個適用性判定演算法包含用於判定與所述第一目標裝置相關聯的所述第一神經網路模型的結構及層的效能效率的第一演算法。
  3. 如請求項2所述的方法,其中所述進行所述分析包含: 基於所述第一演算法對所述第一神經網路模型進行第一分析。
  4. 如請求項3所述的方法,其中進行所述第一分析包含: 使用用於所述第一目標裝置的預列表獲得所述第一神經網路模型的所述結構及所述層的第一分數; 藉由使用效能估計器預測所述第一神經網路模型的所述結構及所述層的處理時間來獲得所述第一神經網路模型的所述結構及所述層的第二分數; 使用用於所述第一目標裝置的預訓練深度學習模型獲得所述第一神經網路模型的所述結構及所述層的第三分數;以及 基於所述第一分數、所述第二分數以及所述第三分數獲得所述第一神經網路模型的所述結構及所述層的效能分數。
  5. 如請求項1所述的方法,其中所述多個適用性判定演算法包含用於分析所述第一神經網路模型的結構及層的複雜性及容量的第二演算法。
  6. 如請求項5所述的方法,其中進行所述分析包含: 基於所述第二演算法對所述第一神經網路模型進行第二分析。
  7. 如請求項6所述的方法,其中進行所述第二分析包含: 藉由判定所述第一神經網路模型的所述結構及所述層的所述複雜性來獲得所述第一神經網路模型的所述結構及所述層的第四分數; 藉由量測所述第一神經網路模型的所述結構及所述層的所述容量來獲得所述第一神經網路模型的所述結構及所述層的第五分數;以及 基於所述第四分數及所述第五分數獲得所述第一神經網路模型的所述結構及所述層的複雜性分數。
  8. 如請求項1所述的方法,其中所述多個適用性判定演算法包含用於判定與所述第一目標裝置相關聯的所述第一神經網路模型的結構及層的記憶體效率的第三演算法。
  9. 如請求項8所述的方法,其中進行所述分析包含: 基於所述第三演算法對所述第一神經網路模型進行第三分析。
  10. 如請求項9所述的方法,其中進行所述第三分析包含: 基於所述第一目標裝置的記憶體限制而獲得所述第一神經網路模型的所述結構及所述層的記憶體磁碟使用量(footprint)分數。
TW111114484A 2021-06-30 2022-04-15 最佳化神經網路模型的方法 TWI824485B (zh)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
KR20210085534 2021-06-30
KR10-2021-0085534 2021-06-30
KR1020210114779A KR20230004207A (ko) 2021-06-30 2021-08-30 신경망 모델의 최적화 방법 및 이를 수행하는 신경망 모델 처리 시스템
KR10-2021-0114779 2021-08-30

Publications (2)

Publication Number Publication Date
TW202303456A true TW202303456A (zh) 2023-01-16
TWI824485B TWI824485B (zh) 2023-12-01

Family

ID=80933544

Family Applications (1)

Application Number Title Priority Date Filing Date
TW111114484A TWI824485B (zh) 2021-06-30 2022-04-15 最佳化神經網路模型的方法

Country Status (4)

Country Link
US (1) US20230004816A1 (zh)
EP (1) EP4113388A1 (zh)
CN (1) CN115545145A (zh)
TW (1) TWI824485B (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102556334B1 (ko) * 2023-02-27 2023-07-17 주식회사 노타 인공지능 기반의 모델의 벤치마크 결과를 제공하기 위한 방법 및 디바이스
CN117376170B (zh) * 2023-12-06 2024-03-08 广州思涵信息科技有限公司 用于窄带网络的大并行ai分析方法、系统和计算机介质

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20180307987A1 (en) * 2017-04-24 2018-10-25 Intel Corporation Hardware ip optimized convolutional neural network
KR102606825B1 (ko) * 2017-09-13 2023-11-27 삼성전자주식회사 뉴럴 네트워크 모델을 변형하는 뉴럴 네트워크 시스템, 이를 포함하는 어플리케이션 프로세서 및 뉴럴 네트워크 시스템의 동작방법
CN111868754A (zh) * 2018-03-23 2020-10-30 索尼公司 信息处理装置和信息处理方法

Also Published As

Publication number Publication date
US20230004816A1 (en) 2023-01-05
CN115545145A (zh) 2022-12-30
TWI824485B (zh) 2023-12-01
EP4113388A1 (en) 2023-01-04

Similar Documents

Publication Publication Date Title
EP3289529B1 (en) Reducing image resolution in deep convolutional networks
KR102582194B1 (ko) 선택적 역전파
US11651214B2 (en) Multimodal data learning method and device
WO2022068623A1 (zh) 一种模型训练方法及相关设备
US20220335293A1 (en) Method of optimizing neural network model that is pre-trained, method of providing a graphical user interface related to optimizing neural network model, and neural network model processing system performing the same
TWI824485B (zh) 最佳化神經網路模型的方法
US20200151573A1 (en) Dynamic precision scaling at epoch granularity in neural networks
CN107273936A (zh) 一种gan图像处理方法及系统
JP7226696B2 (ja) 機械学習方法、機械学習システム及び非一時的コンピュータ可読記憶媒体
US20230268035A1 (en) Method and apparatus for generating chemical structure using neural network
CN112668381A (zh) 用于识别图像的方法和设备
KR20220144281A (ko) 신경망 모델의 최적화 방법 및 이를 수행하는 신경망 모델 처리 시스템
US20200293864A1 (en) Data-aware layer decomposition for neural network compression
US20220164639A1 (en) A system for mapping a neural network architecture onto a computing core and a method of mapping a neural network architecture onto a computing core
KR20230004207A (ko) 신경망 모델의 최적화 방법 및 이를 수행하는 신경망 모델 처리 시스템
KR102215824B1 (ko) 시각 및 텍스트 정보를 포함하는 다이어그램의 분석 방법 및 장치
CN116958728A (zh) 训练用于图像识别的神经网络的方法和存储器装置
US11568303B2 (en) Electronic apparatus and control method thereof
US20210081756A1 (en) Fractional convolutional kernels
CN116710974A (zh) 在合成数据系统和应用程序中使用域对抗学习的域适应
US20230351189A1 (en) Method of training binarized neural network with parameterized weight clipping and memory device using the same
EP3859508B1 (en) Storage controllers and storage systems
WO2023220891A1 (en) Resolution-switchable segmentation networks
EP4198837A1 (en) Method and system for global explainability of neural networks
Hasan Real-Time Classification of Traffic Signs with Deep Learning