TWM573476U - 在定點算術運算系統中實施神經網路 - Google Patents

在定點算術運算系統中實施神經網路 Download PDF

Info

Publication number
TWM573476U
TWM573476U TW107202461U TW107202461U TWM573476U TW M573476 U TWM573476 U TW M573476U TW 107202461 U TW107202461 U TW 107202461U TW 107202461 U TW107202461 U TW 107202461U TW M573476 U TWM573476 U TW M573476U
Authority
TW
Taiwan
Prior art keywords
point
value
floating
fixed
values
Prior art date
Application number
TW107202461U
Other languages
English (en)
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
Application filed by 美商谷歌有限責任公司 filed Critical 美商谷歌有限責任公司
Publication of TWM573476U publication Critical patent/TWM573476U/zh

Links

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
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F5/00Methods or arrangements for data conversion without changing the order or content of the data handled
    • G06F5/01Methods or arrangements for data conversion without changing the order or content of the data handled for shifting, e.g. justifying, scaling, normalising
    • G06F5/012Methods or arrangements for data conversion without changing the order or content of the data handled for shifting, e.g. justifying, scaling, normalising in floating-point computations
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods 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/483Computations with numbers represented by a non-linear combination of denominational numbers, e.g. rational numbers, logarithmic number system or floating-point numbers
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2207/00Indexing scheme relating to methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F2207/38Indexing scheme relating to groups G06F7/38 - G06F7/575
    • G06F2207/3804Details
    • G06F2207/3808Details concerning the type of numbers or the way they are handled
    • G06F2207/3812Devices capable of handling different types of numbers
    • G06F2207/3824Accepting both fixed-point and floating-point numbers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2207/00Indexing scheme relating to methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F2207/38Indexing scheme relating to groups G06F7/38 - G06F7/575
    • G06F2207/48Indexing scheme relating to groups G06F7/48 - G06F7/575
    • G06F2207/4802Special implementations
    • G06F2207/4818Threshold devices
    • G06F2207/4824Neural networks

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • Biophysics (AREA)
  • Biomedical Technology (AREA)
  • Health & Medical Sciences (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Molecular Biology (AREA)
  • Artificial Intelligence (AREA)
  • General Health & Medical Sciences (AREA)
  • Evolutionary Computation (AREA)
  • Mathematical Physics (AREA)
  • Data Mining & Analysis (AREA)
  • Computational Linguistics (AREA)
  • Mathematical Optimization (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Pure & Applied Mathematics (AREA)
  • Neurology (AREA)
  • Nonlinear Science (AREA)
  • Image Analysis (AREA)
  • Feedback Control In General (AREA)
  • Advance Control (AREA)

Abstract

本創作揭示用於在定點算術運算系統中實施神經網路之方法、系統及電腦儲存媒體。在一個態樣中,一種方法包含以下動作:接收使用一處理系統來處理一神經網路之一請求,該處理系統使用定點算術來執行神經網路運算;針對該神經網路之各層之各節點,從該節點之浮點權重值之各自集合來判定該節點之一各自比例值;且使用該節點之該各自比例值,將該節點之各浮點權重值轉換成一對應定點權重值,以產生該節點之一定點權重值集合;及提供該等節點之定點浮點權重值之該等集合至該處理系統,以供使用該神經網路來處理輸入。

Description

在定點算術運算系統中實施神經網路
本說明書係關於在使用定點算術執行神經網路運算之處理系統上實施神經網路。 神經網路係採用非線性單元之一或多個層來針對一接收輸入預測一輸出之機器學習模型。除一輸出層以外,一些神經網路亦包含一或多個隱藏層。使用各隱藏層之輸出作為網路中之下一層(即,下一隱藏層或輸出層)之輸入。網路之各層根據參數之一各自集合之當前值從一接收輸入產生一輸出。
本說明書描述一系統可如何在使用定點算術執行神經網路運算之一處理系統中實施一神經網路。為如此做,系統使用從節點之浮點權重值產生之比例值將神經網路之各節點之浮點權重值轉換成對應定點權重值。系統亦使用各自節點之比例值將最後神經網路層之各節點之定點輸出值轉換成一對應浮點權重值。 一般而言,可在方法中體現本說明書中描述之標的之一個新穎態樣,該等方法包含以下動作:接收使用一處理系統來處理一神經網路之一請求,該處理系統使用定點算術來執行神經網路運算,神經網路包括複數個層,各層具有複數個節點,且各層之各節點具有浮點權重值之一各自集合;針對各層之各節點:從節點之浮點權重值之各自集合判定節點之一各自比例值;且使用節點之各自比例值將節點之各浮點權重值轉換成一對應定點權重值,以產生節點之一定點權重值集合;及提供節點之定點浮點權重值集合至處理系統以供使用神經網路處理輸入。 前述及其他實施例可各自視情況單獨或組合包含以下特徵之一或多者。特定言之,一項實施例組合包含全部以下特徵。 方法進一步包括:接收藉由處理系統針對複數個層之一最後層產生之一定點輸出值集合,各定點輸出值對應於最後層之一各自節點;及使用對應於定點輸出值之最後層之各節點之比例值將定點輸出值之各者轉換成一各自浮點輸出值。方法進一步包括:接收神經網路之一或多個輸入層節點之各者之一浮點輸入值集合,其中一或多個輸入層節點之各者在神經網路之複數個層之一輸入層中;使用各自輸入層節點之各自比例值來轉換各輸入層節點之各浮點輸入值,以產生各自節點之一定點輸入值集合;及提供各定點輸入值至處理系統以在神經網路中使用,以產生定點輸出值集合。將各定點輸出值轉換成一對應浮點輸出值包括將定點輸出值除以與具有定點輸出值之各自節點相關聯之各自比例值。與各層之各節點相關聯之浮點權重值之各自集合表示與層相關聯之一權重矩陣中之一各自列或各自行。從與各自節點相關聯之浮點權重值集合及各自與不同於各自節點之一節點相關聯之浮點權重值之一或多個集合執行判定各各自節點之各自比例值。判定各自比例值包括:針對與一各自節點相關聯之各浮點權重值集合,識別具有最大量值之浮點權重值;識別由處理系統使用以執行神經網路運算之定點算術中之一最大可表示值;基於各自浮點權重值之量值與最大量值之一比率及定點算術中之最大可表示值而運算各浮點權重值集合之各自比例值。將各浮點權重值轉換成一對應定點權重值包括將各浮點權重值乘以與具有浮點權重值之各自節點相關聯之各自比例值。 可實施本說明書中描述之標的之特定實施例以便實現以下優勢之一或多者。可降低由於關於一神經網路之值從浮點值轉定點值且反之亦然之數值轉換所致之精確度損失。將浮點權重值轉換成定點權重值以及將定點輸出值轉換成浮點輸出值可導致值之精確度損失。將用於此等轉換之比例值集中至一或多個神經網路節點可降低由於此等轉換所致之精確度損失。因此,可改良藉由一神經網路處理系統產生之輸出之精確度同時仍實現使用定點算術執行運算之運算益處。 在隨附圖式及以下描述中陳述本說明書之標的之一或多個實施例之細節。將從描述、圖式及新型申請專利範圍明白標的之其他特徵、態樣及優勢。
圖1展示一例示性神經網路處理系統100。該神經網路處理系統100係實施為一或多個位置中之一或多個電腦上之電腦程式之一系統之一實例,其中實施下文中描述之系統、組件及技術。 神經網路處理系統100係使用定點算術執行神經網路運算之一處理系統。 定點算術係指使用定點資料類型執行運算。定點資料類型藉由在小數點之後具有固定數目個數位之數字表示實值(real value)。在電腦系統中,可使用係應用一或多個比例值至實值之度量的整數值來儲存實值。例如,一實值1.234可使用比例值1000表示為1234。由於儲存於一電腦系統中之一定點數字集合在其等小數點之後具有相同數目個數位,因此對於全部此等數字而言定點數字可經儲存並搭配相同比例值使用。例如,若一電腦系統始終將每一位元組之最後兩個位元分配給全部實值之小數部分,則全部此等位元組可藉由將位元組值除以比例值100而轉換成其等對應實值。 相比之下,浮點資料類型藉由在小數點之後具有可變數目個數位之數字表示實值。因而,浮點資料類型使用不同比例值來儲存不同實值。 儘管使用一浮點表示可增大儲存實值之精度,然浮點運算對運算要求更高。因此,一些處理系統(包含神經網路處理系統100)使用定點算術來執行一些或全部其等運算。舉例而言,神經網路處理系統100可使用僅支援定點算術以增大處理速度之硬體來執行神經網路運算,可使用定點表示來儲存與神經網路運算相關聯之值(例如,參數值)以降低執行神經網路運算所需之記憶體容量,或該兩者。 神經網路處理系統100接收在該神經網路處理系統100上實施一神經網路101之一請求110作為一輸入。 神經網路101係可經組態以接收任何種類之數位資料輸入且基於輸入產生任何種類之評分或分類輸出之一神經網路之一實例。 舉例而言,若神經網路101之輸入係影像或已從影像提取之特徵,則藉由神經網路101針對一給定影像產生之輸出可係一物件類別集合之各者之評分,其中各評分表示影像含有屬於類別之一物件之一影像的一估計可能性。 作為另一實例,若神經網路101之輸入係網際網路資源(例如,網頁)、文件或文件之部分,或從網際網路資源、文件或文件之部分提取之特徵,則由神經網路101針對一給定網際網路資源、文件或一文件之部分產生之輸出可係一主題集合之各者之一評分,其中各評分表示網際網路資源、文件或文件部分係關於主題之一估計可能性。 作為另一實例,若神經網路處理系統100之輸入係一特定廣告之一印象語境之特徵,則由神經網路101產生之輸出可係表示特定廣告將被點擊之一估計可能性之一評分。 作為另一實例,若神經網路101之輸入係一使用者之一個性化建議之特徵(例如,特性化建議之語境之特徵,例如,特性化由使用者採取之先前動作之特徵),則由神經網路101產生之輸出可係一內容項集合之各者之一評分,其中各評分表示使用者將有利地回應於被建議內容項之一估計可能性。 作為另一實例,若神經網路101之輸入係一個語言中之文字,則由神經網路101產生之輸出可係另一語言中之一文字段集合之各者之一評分,其中各評分表示另一語言中之文字段係將輸入文字正確轉譯成另一語言之一估計可能性。 作為另一實例,若神經網路101之輸入係一口語表達、一系列口語表達,或從該兩者之一者導出之特徵,則由神經網路101產生之輸出可係一文字段集合之各者之一評分,各評分表示文字段係表達或表達序列之正確謄本之一估計可能性。 神經網路101包含若干神經網路層,包含一或多個輸入層、一或多個輸出層,及一或多個隱藏層。神經網路層之各者包含一或多個神經網路節點。神經網路節點之各者具有一或多個權重值。各節點使用一對應權重值來處理若干輸入值之各者,且對該處理之結果執行一操作,以產生一輸出值。 與一節點相關聯之一權重值係節點應將多少重要性(significance)指派給其輸入值之一者的度量。對於一輸入層中之一節點,一權重值係神經網路101之輸入之重要性的度量。對於一隱藏層或輸出層中之一節點,一權重係節點之層之前之一層之一輸出之重要性的度量。 特定言之,實施請求110包含神經網路101之節點之權重之浮點值。此可能係因為在訓練期間藉由使用浮點值進行其處理之一訓練引擎調整權重值。 神經網路處理系統100使用一實施引擎102根據實施請求110實施神經網路101以進行處理。 實施引擎102將浮點權重值轉換成定點權重值131且將定點輸出值132轉換成浮點值。由於神經網路處理系統100使用定點算術來執行神經網路101運算,因此神經網路101之節點之權重值需要係定點值。此外,藉由神經網路101產生之輸出值132係定點值。 下文中參考圖2更詳細地描述將浮點權重值轉換成定點權重值131。 一旦實施引擎102已將浮點權重值轉換成定點值,神經網路處理系統100便可接收待由神經網路101處理之一網路輸入111。 在一些實施方案中,神經網路101之一或多個輸入層之各者之各節點接收一浮點輸入值集合。 在一些該等實施方案中,實施引擎102使用各自節點之各自比例值來轉換神經網路101之一或多個輸入層之各者之各節點之各浮點輸入值,以產生各自節點之一定點輸入值集合。 神經網路101使用神經網路101來處理網路輸入,以產生一或多個定點輸出值132,即,藉由使用定點權重值131執行定點運算。輸出值係在網路輸入之處理期間藉由神經網路101之一輸出層之節點產生之值。 接著,實施引擎102藉由將定點輸出值132轉換成浮點值而產生一網路輸出161。下文中參考圖3描述將定點輸出值132轉換成浮點值,以產生一網路輸出。 神經網路處理系統100可將產生之網路輸出161儲存於一輸出資料儲存庫中或提供網路輸出以用於某一其他目的,例如,用於呈現在一使用者器件上或用於由另一系統進一步處理。 圖2係用於將浮點神經網路權重值轉換成定點值之一例示性程序200之一流程圖。為了方便起見,程序200將描述為藉由定位於一或多個位置中之一或多個電腦之一系統執行。舉例而言,根據本說明書適當地程式化之一神經網路處理系統(例如,圖1之神經網路處理系統100)可執行程序200。 系統接收在使用定點算術執行神經網路運算之一處理系統上實施一神經網路之一請求(210)。神經網路包含若干層。各層具有節點,且各層之各節點具有一浮點權重值集合。 在一些實施方案中,與一節點相關聯之各浮點權重值集合表示與節點之層相關聯之一權重矩陣中之一列或行。因此,一神經網路層之權重矩陣包含與層之節點相關聯之全部權重值。 系統從節點之浮點權重值集合判定各節點之一比例值(220)。因而,系統判定一比例值,該比例值在節點本端且基於節點之浮點權重值之值進行判定。 在一些實施方案中,系統從與一節點相關聯之浮點權重值識別具有最大量值之浮點權重值。接著,系統識別藉由處理系統使用以執行神經網路運算之定點算術中之最大可表示值。最大可表示值係關於一資料類型可表示之值之量值之一上界(例如,在一二進制數字表示系統中全部其位元係「1」之資料類型中之值)。接著,系統基於各自浮點權重值之量值與最大量值之一比率及定點算術中之最大可表示值而運算各浮點權重值集合之比例值。 例如,系統識別與一節點N 1相關聯之最大浮點權重值係0.45。接著,系統識別系統使用不帶正負號8位元整數來執行定點神經網路運算。因此,系統識別由處理系統使用之定點算術中之最大可表示值係2 8– 1 = 255 (即,對應於二進制值11111111 2)。接著,系統將0.45除以255以運算N 1之浮點權重值集合之比例值。 在一些實施方案中,系統判定一神經網路層之兩個或兩個以上節點之一共同比例值。在該等實施方案中,系統將與兩個或兩個以上節點之任一者相關聯之最大浮點權重值除以由處理系統使用以執行神經網路運算之定點算術中之最大可表示值。 系統使用具有浮點權重值之節點之比例值將各浮點權重值轉換成一定點權重值(230)。在一些實施方案中,系統將各浮點權重值乘以與具有浮點權重值之各自節點相關聯之各自比例,以產生一定點權重值。 系統提供定點浮點權重值集合至處理系統以用於神經網路處理中(240)。神經網路處理系統使用權重值以使用神經網路處理網路輸入,以產生網路輸出。在一些實施方案中,在一給定網路輸入之處理期間且針對節點之各者,神經網路處理系統將節點之輸入值之各者乘以一對應定點權重值且加總乘法結果以使用定點算術產生節點之啟動函數之一啟動輸入。 圖3係用於將定點神經網路輸出值轉換成浮點值之一實例300之一流程圖。為了方便起見,程序300將描述為藉由定位於一或多個位置中之一或多個電腦之一系統執行。舉例而言,根據本說明書適當地程式化之一神經網路處理系統(例如,圖1之神經網路處理系統100)可執行程序300。 系統接收一定點輸出值集合(310)。藉由處理系統,針對神經網路之一最後層(即,神經網路之輸出層)產生定點輸出值。各定點輸出值係最後層之一節點之輸出。 系統識別最後層之各節點之一比例值(320)。上文中,參考圖2來進一步詳細描述運算神經網路節點之比例值。 系統將各定點輸出值轉換成一浮點輸出值(330)。在一些實施方案中,系統將定點輸出值除以與具有定點輸出值之各自節點相關聯之各自比例值,以產生節點之一浮點輸出值。 可在數位電子電路中、在有形體現的電腦軟體或韌體中、在包含本說明書中揭示之結構及其等結構等效物的電腦硬體中,或在其等之一或多者的組合中,實施本說明書中描述之標的及功能操作的實施例。本說明書中描述之標的的實施例可被實施為一或多個電腦程式,即,在一有形非暫時性儲存媒體上編碼以由資料處理裝置執行或控制資料處理裝置之操作之電腦程式指令的一或多個模組。電腦儲存媒體可係一機器可讀儲存器件、一機器可讀儲存基板、一隨機或串列存取記憶體器件,或其等之一或多者之一組合。替代地或另外地,程式指令可在一人工產生傳播信號(例如,一機器產生電氣、光學或電磁信號)上編碼,該信號經產生以對資訊編碼以傳輸至適合接收器裝置,以由一資料處理裝置執行。 術語「資料處理裝置」係指資料處理硬體,且涵蓋用於處理資料之全部種類的裝置、器件及機器,包含(藉由實例)一可程式化處理器、一電腦或多個處理器或電腦。裝置亦可係或進一步包含專用邏輯電路,例如,一FPGA (場可程式化閘陣列)或一ASIC (特定應用積體電路)。除硬體以外,裝置可視情況包含針對電腦程式建立一執行環境的程式碼,例如,組成處理器韌體、一協定堆疊、一資料庫管理系統、一作業系統或其等之一或多者之一組合的程式碼。 亦可被稱為或描述為一程式、軟體、一軟體應用程式、一應用程式、一模組、一軟體模組、一指令碼或程式碼之一電腦程式可以任何形式之程式設計語言(包含編譯或解譯語言,或宣告式或程序語言)撰寫,且其可以任何形式(包含作為一獨立程式或作為一模組、組件、副常式,或適於用於一運算環境中之其他單元)部署。一程式可能但非必需對應於一檔案系統中之一檔案。一程式亦可儲存在保存其他程式或資料(例如,儲存於一標記語言文件中之一或多個指令檔)之一檔案之一部分中、儲存在專用於討論中程式之一單一檔案中、或儲存在多個協調檔案(例如,儲存一或多個模組、副程式或程式碼之部分之檔案)中。一電腦程式可經部署以在一個電腦上執行或在定位於一個位點處或跨多個位點分佈且藉由一資料通信網路互連之多個電腦上執行。 一或多個電腦之一系統經組態以執行特定操作或動作意謂系統已在其上安裝在操作中導致系統執行操作或動作之軟體、韌體、硬體或其等之一組合。一或多個電腦程式經組態以執行特定操作或動作意謂一或多個程式包含在由資料處理裝置執行時導致裝置執行操作或動作的指令。 如本說明書中使用,一「引擎」或「軟體引擎」係指提供不同於輸入之一輸出之一軟體實施之輸入/輸出系統。一引擎可係一編碼功能性區塊,諸如一程式庫、一平台、一軟體開發工具包(「SDK」)或一物件。可在包含一或多個處理器及電腦可讀媒體之任何適當類型之運算器件(例如,伺服器、行動電話、平板電腦、筆記型電腦、音樂播放器、電子書閱讀器、膝上型或桌上型電腦、PDA、智慧型電話或其他固定或可攜帶器件)上實施各引擎。另外,可在相同運算器件上或在不同運算器件上實施引擎之兩者或兩者以上。 可藉由執行一或多個電腦程式之一或多個可程式化電腦執行本說明書中描述之程序及邏輯流程以藉由對輸入資料操作且產生輸出而執行功能。亦可藉由專用邏輯電路(例如,一FPGA或一ASIC),或藉由專用邏輯電路及一或多個程式化電腦之一組合執行程序及邏輯流程。 適於執行一電腦程式之電腦可基於通用或專用微處理器或該兩者,或任何其他種類之中央處理單元。通常,一中央處理單元將從一唯讀記憶體或一隨機存取記憶體或該兩者接收指令及資料。一電腦之必要元件係用於執行指令之一中央處理單元及用於儲存指令及資料之一或多個記憶體器件。中央處理單元及記憶體可藉由專用邏輯電路補充或併入專用邏輯電路中。通常,一電腦亦將包含用於儲存資料之一或多個大容量儲存器件(例如,磁碟、磁光碟或光碟),或以操作方式耦合以從一或多個大容量儲存器件接收資料或將資料傳送至一或多個大容量儲存器件或該兩者。然而,一電腦非必需具有此等器件。此外,一電腦可嵌入在另一器件(例如,一行動電話、一個人數位助理(PDA)、一行動音訊或視訊播放器、一遊戲主控台、一全球定位系統(GPS)接收器或一可攜帶儲存器件,例如,一通用串列匯流排(USB)快閃隨身碟,僅舉幾例)中。 適於儲存電腦程式指令及資料之電腦可讀媒體包含全部形式之非揮發性記憶體、媒體及記憶體器件,包含(藉由實例):半導體記憶體器件,例如,EPROM、EEPROM及快閃記憶體器件;磁碟,例如,內建硬碟或可移除磁碟;磁光碟;及CD-ROM及DVD-ROM磁碟。 為提供與一使用者互動,可在具有用於將資訊顯示給使用者之一顯示器件(例如,一CRT (陰極射線管)或LCD (液晶顯示器)監測器)及一鍵盤及指標器件(例如,一滑鼠、軌跡球或一存在敏感顯示器或藉此使用者可提供輸入至電腦之其他表面)之一電腦上實施本說明書中描述之標的之實施例。亦可使用其他種類之器件來提供與一使用者互動;舉例而言,提供至使用者之回饋可係任何形式之感測回饋,例如,視覺回饋、聽覺回饋或觸覺回饋;且來自使用者之輸入可以任何形式接收,包含聲學、語音或觸覺輸入。另外,一電腦可藉由將文件發送至由使用者使用之一器件且從器件接收文件而與一使用者互動;舉例而言,藉由回應於從一使用者之器件上之一網頁瀏覽器接收之請求而將網頁發送至網頁瀏覽器。再者,一電腦可藉由將文字訊息或其他形式之訊息發送至運行一傳訊應用程式且作為回報從使用者接收回應訊息之一個人器件(例如,一智慧型電話)而與一使用者互動。 可在一運算系統中實施本說明書中描述之標的之實施例,該運算系統包含一後端組件(例如,作為一資料伺服器),或包含一中間組件(例如,一應用程式伺服器),或包含一前端組件(例如,具有透過其一使用者可與本說明書中描述之標的之一實施方案互動之一圖形使用者介面、一網頁瀏覽器或一應用程式之一用戶端電腦),或一或多個此等後端組件、中間組件或前端組件之任何組合。系統之組件可藉由數位資料通信之任何形式或介質(例如,一通信網路)互連。通信網路之實例包含一局域網路(LAN)及一廣域網路(WAN),例如,網際網路。 運算系統可包含用戶端及伺服器。一用戶端及伺服器通常遠離彼此且通常透過一通信網路互動。用戶端及伺服器之關係鑑於在各自電腦上運行且具有相對於彼此之一用戶端-伺服器關係之電腦程式而產生。在一些實施例中,一伺服器將資料(例如,一HTML頁面)傳輸至一使用者器件,例如,用於將資料顯示給與器件互動之充當一用戶端之一使用者且從使用者接收使用者輸入之目的。可在伺服器處從器件接收使用者器件處產生之資料(例如,使用者互動之結果)。 雖然本說明書含有許多特定實施方案細節,但此等不應解釋為對任何新型內容之範疇或對可主張之內容之範疇之限制,而係解釋為可能特定於特定新型內容之特定實施例之特徵之描述。本說明書中在不同實施例之背景內容中描述之某些特徵亦可在一單一實施例中組合實施。相反地,在一單一實施例之背景內容中描述之各種特徵亦可在多個實施例中分別或以任何適合次組合實施。此外,儘管特徵在上文中可描述為以某些組合起作用且甚至最初照此主張,然來自一主張組合之一或多個特徵在一些情況中可從組合刪除,且主張組合可能針對一次組合或一次組合之變化例。 類似地,雖然在圖式中以一特定順序描繪操作,但此不應理解為要求以展示之特定順序或以循序順序執行此等操作,或執行全部圖解說明操作,以達成所要結果。在某些情境中,多任務及並行處理可係有利的。此外,上文中描述之實施例中之各種系統模組及組件之分離不應理解為在全部實施例中要求此分離,且應瞭解,描述之程式組件及系統通常可一起整合於一單一軟體產品中或封裝成多個軟體產品。 在以下實例中概述進一步實施方案: 實例1:一種方法包括:接收使用一處理系統來處理一神經網路之一請求,該處理系統使用定點算術來執行神經網路運算,神經網路包括複數個層,各層具有複數個節點,且各層之各節點具有浮點權重值之一各自集合;針對各層之各節點:從節點之浮點權重值之各自集合判定節點之一各自比例值;且使用節點之各自比例值將節點之各浮點權重值轉換成一對應定點權重值,以產生節點之一定點權重值集合;及提供節點之定點浮點權重值集合至處理系統以供使用神經網路處理輸入。 實例2:實例1之方法,其進一步包括:接收藉由處理系統針對複數個層之一最後層產生之一定點輸出值集合,各定點輸出值對應於最後層之一各自節點;及使用對應於定點輸出值之最後層之各節點之比例值將定點輸出值之各者轉換成一各自浮點輸出值。 實例3:實例2之方法,其進一步包括:接收神經網路之一或多個輸入層節點之各者之一浮點輸入值集合,其中一或多個輸入層節點之各者在神經網路之複數個層之一輸入層中;使用各自輸入層節點之各自比例值來轉換各輸入層節點之各浮點輸入值,以產生各自節點之一定點輸入值集合;及提供各定點輸入值至處理系統以在神經網路中使用,以產生定點輸出值集合。 實例4:實例2或3之方法,其中將各定點輸出值轉換成一對應浮點輸出值包括:將定點輸出值除以與具有定點輸出值之各自節點相關聯之各自比例值。 實例5:實例1至4之一者之方法,其中與各層之各節點相關聯之浮點權重值之各自集合表示與層相關聯之一權重矩陣中之一各自列或各自行。 實例6:實例1至5之一者之方法,其中從與各自節點相關聯之浮點權重值集合及各自與不同於各自節點之一節點相關聯之浮點權重值之一或多個集合執行判定各各自節點之各自比例值。 實例7:實例1至6之一者之方法,其中判定各自比例值包括:針對與一各自節點相關聯之各浮點權重值集合,識別具有最大量值之浮點權重值;識別由處理系統使用以執行神經網路運算之定點算術中之一最大可表示值;基於各自浮點權重值之量值與最大量值之一比率及定點算術中之最大可表示值而運算各浮點權重值集合之各自比例值。 實例8:實例1至7之一者之方法,其中將各浮點權重值轉換成一對應定點權重值包括:將各浮點權重值乘以與具有浮點權重值之各自節點相關聯之各自比例值。 實例9:一種系統包括一或多個電腦及儲存指令之一或多個儲存器件,該等指令可操作以在由一或多個電腦執行時導致一或多個電腦執行操作,該等操作包括:接收在使用定點算術執行神經網路運算之一處理系統上實施一神經網路之一請求,神經網路包括複數個層,各層具有複數個節點,且各層之各節點具有浮點權重值之一各自集合;針對各層之各節點:從浮點權重值之各自集合判定節點之一各自比例值;且使用節點之各自比例值將節點之各浮點權重值轉換成一對應定點權重值,以產生節點之一定點權重值集合;及提供節點之定點浮點權重值集合至處理系統以供使用神經網路處理輸入。 實例10:實例9之系統,其進一步包括:接收藉由處理系統針對複數個層之一最後層產生之一定點輸出值集合,各定點輸出值對應於最後層之一各自節點;及使用對應於定點輸出值之最後層之各節點之比例值將定點輸出值之各者轉換成一各自浮點輸出值。 實例11:實例10之系統,其進一步包括:接收神經網路之一或多個輸入層節點之各者之一浮點輸入值集合,其中一或多個輸入層節點之各者在神經網路之複數個層之一輸入層中;使用各自輸入層節點之各自比例值來轉換各輸入層節點之各浮點輸入值,以產生各自節點之一定點輸入值集合;及提供各定點輸入值至處理系統以在神經網路中使用,以產生定點輸出值集合。 實例12:實例10或11之系統,其中將各定點輸出值轉換成一對應浮點輸出值包括:將定點輸出值除以與具有定點輸出值之各自節點相關聯之各自比例值。 實例13:實例9至12之一者之系統,其中與各層之各節點相關聯之浮點權重值之各自集合表示與層相關聯之一權重矩陣中之一各自列或各自行。 實例14:實例9至13之一者之系統,其中從與各自節點相關聯之浮點權重值集合及各自與不同於各自節點之一節點相關聯之浮點權重值之一或多個集合執行判定各各自節點之各自比例值。 實例15:實例9至14之一者之系統,其中判定各自比例值包括:針對與一各自節點相關聯之各浮點權重值集合,識別具有最大量值之浮點權重值;識別由處理系統使用以執行神經網路運算之定點算術中之一最大可表示值;基於各自浮點權重值之量值與最大量值之一比率及定點算術中之最大可表示值而運算各浮點權重值集合之各自比例值。 實例16:實例9至15之一者之系統,其中將各浮點權重值轉換成一對應定點權重值包括:將各浮點權重值乘以與具有浮點權重值之各自節點相關聯之各自比例值。 實例17:一種運用在由一或多個電腦執行時導致一或多個電腦執行操作之指令編碼之電腦儲存媒體,該等操作包括:接收在使用定點算術執行神經網路運算之一處理系統上實施一神經網路之一請求,神經網路包括複數個層,各層具有複數個節點,且各層之各節點具有浮點權重值之一各自集合;針對各層之各節點:從浮點權重值之各自集合判定節點之一各自比例值;且使用節點之各自比例值將節點之各浮點權重值轉換成一對應定點權重值,以產生節點之一定點權重值集合;及提供節點之定點浮點權重值集合至處理系統以供使用神經網路處理輸入。 實例18:實例17之電腦儲存媒體,其進一步包括:接收藉由處理系統針對複數個層之一最後層產生之一定點輸出值集合,各定點輸出值對應於最後層之一各自節點;及使用對應於定點輸出值之最後層之各節點之比例值將定點輸出值之各者轉換成一各自浮點輸出值。 實例19:實例18之電腦儲存媒體,其進一步包括:接收神經網路之一或多個輸入層節點之各者之一浮點輸入值集合,其中一或多個輸入層節點之各者在神經網路之複數個層之一輸入層中;使用各自輸入層節點之各自比例值來轉換各輸入層節點之各浮點輸入值,以產生各自節點之一定點輸入值集合;及提供各定點輸入值至處理系統以在神經網路中使用,以產生定點輸出值集合。 實例20:實例19之電腦儲存媒體,其中將各定點輸出值轉換成一對應浮點輸出值包括將定點輸出值除以與具有定點輸出值之各自節點相關聯之各自比例值。 已描述標的之特定實施例。其他實施例在以下新型申請專利範圍之範疇內。舉例而言,新型申請專利範圍中敘述之動作可按一不同順序執行且仍達成所要結果。作為一個實例,附圖中描繪之程序不一定要求展示之特定順序,或循序順序,以達成所要結果。在特定一些情況中,多任務及並行處理可係有利的。
100‧‧‧神經網路處理系統
101‧‧‧神經網路
102‧‧‧實施引擎
110‧‧‧請求
111‧‧‧網路輸入
131‧‧‧定點權重值
132‧‧‧定點輸出值
161‧‧‧網路輸出
200‧‧‧程序
210‧‧‧步驟
220‧‧‧步驟
230‧‧‧步驟
240‧‧‧步驟
300‧‧‧程序
310‧‧‧步驟
320‧‧‧步驟
330‧‧‧步驟
圖1展示一例示性神經網路處理系統。 圖2係用於將浮點神經網路權重值轉換成定點值之一例示性程序之一流程圖。 圖3係用於將定點神經網路輸出值轉換成浮點值之一例示性程序之一流程圖。 各個圖式中之相同元件符號及名稱指示相同元件。

Claims (8)

  1. 一種運算系統,其包括:一或多個電腦,其包括使用定點算術(fixed point arithmetic)來執行神經網路運算之至少一處理系統;及一或多個儲存器件,其耦合至該一或多個電腦,其中該一或多個儲存器件儲存多個指令,當該等指令由該一或多個電腦執行時,該一或多個電腦經組態以:接收在該處理系統上實施一神經網路之一請求,其中該神經網路包括複數個層,各層具有複數個節點,且各層之各節點具有浮點權重值之一各自集合;針對各層之各節點:從浮點權重值之該各自集合來判定該節點之一各自比例值(scaling value);且使用該節點之該各自比例值,將該節點之各浮點權重值轉換成一對應定點權重值,以產生該節點之一定點權重值集合;及提供該等節點之定點浮點權重值之該等集合至該處理系統以供使用該神經網路來處理輸入。
  2. 如請求項1之運算系統,該一或多個電腦經進一步組態以:接收藉由該處理系統針對該複數個層之一最後層產生之一定點輸出值集合,各定點輸出值對應於該最後層之一各自節點;及使用對應於該定點輸出值之該最後層之各節點之該比例值來將該等定點輸出值之各者轉換成一各自浮點輸出值。
  3. 如請求項2之運算系統,該一或多個電腦經進一步組態以:接收該神經網路之一或多個輸入層節點之各者之一浮點輸入值集合,其中該一或多個輸入層節點之各者係在該神經網路之該複數個層之一輸入層中;使用各自輸入層節點之該各自比例值來轉換各輸入層節點之各浮點輸入值,以產生該各自節點之一定點輸入值集合;及提供各定點輸入值至該處理系統以在該神經網路中使用,以產生該定點輸出值集合。
  4. 如請求項2之運算系統,其中該一或多個電腦藉由將該定點輸出值除以與具有該定點輸出值之該各自節點相關聯之該各自比例值而將各定點輸出值轉換成一對應浮點輸出值。
  5. 如請求項1之運算系統,其中與各層之各節點相關聯之浮點權重值之該各自集合表示與該層相關聯之一權重矩陣中之一各自列或各自行。
  6. 如請求項1之運算系統,其中該一或多個電腦從與該各自節點相關聯之該浮點權重值集合及各自與不同於該各自節點之一節點相關聯之浮點權重值之一或多個集合來判定各各自節點之該各自比例值。
  7. 如請求項1之運算系統,其中該一或多個電腦藉由以下步驟來判定該各自比例值,該等步驟包括:針對與一各自節點相關聯之浮點權重值之各集合,識別具有該最大量值之該浮點權重值;識別由該處理系統使用以執行神經網路運算之該定點算術中之一最大可表示值;及基於該各自浮點權重值之該量值與該最大量值之一比率及該定點算術中之該最大可表示值來運算各浮點權重值集合之該各自比例值。
  8. 如請求項1之運算系統,其中該一或多個電腦藉由將各浮點權重值乘以與具有該浮點權重值之該各自節點相關聯之該各自比例值而將各浮點權重值轉換成一對應定點權重值。
TW107202461U 2017-02-14 2018-02-14 在定點算術運算系統中實施神經網路 TWM573476U (zh)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US15/432,842 US10650303B2 (en) 2017-02-14 2017-02-14 Implementing neural networks in fixed point arithmetic computing systems
US15/432,842 2017-02-14
US15/476,769 2017-03-31
US15/476,769 US9836692B1 (en) 2017-02-14 2017-03-31 Implementing neural networks in fixed point arithmetic computing systems

Publications (1)

Publication Number Publication Date
TWM573476U true TWM573476U (zh) 2019-01-21

Family

ID=60452224

Family Applications (4)

Application Number Title Priority Date Filing Date
TW111135158A TWI823571B (zh) 2017-02-14 2018-02-14 用於在定點算術運算系統中實施神經網路之方法、系統及電腦儲存媒體
TW107105678A TWI728230B (zh) 2017-02-14 2018-02-14 用於在定點算術運算系統中實施神經網路之方法、系統及電腦儲存媒體
TW110115931A TWI787803B (zh) 2017-02-14 2018-02-14 用於在定點算術運算系統中實施神經網路之方法、系統及電腦儲存媒體
TW107202461U TWM573476U (zh) 2017-02-14 2018-02-14 在定點算術運算系統中實施神經網路

Family Applications Before (3)

Application Number Title Priority Date Filing Date
TW111135158A TWI823571B (zh) 2017-02-14 2018-02-14 用於在定點算術運算系統中實施神經網路之方法、系統及電腦儲存媒體
TW107105678A TWI728230B (zh) 2017-02-14 2018-02-14 用於在定點算術運算系統中實施神經網路之方法、系統及電腦儲存媒體
TW110115931A TWI787803B (zh) 2017-02-14 2018-02-14 用於在定點算術運算系統中實施神經網路之方法、系統及電腦儲存媒體

Country Status (9)

Country Link
US (3) US10650303B2 (zh)
EP (1) EP3361422B1 (zh)
CN (2) CN116415637A (zh)
DE (1) DE102018103303A1 (zh)
DK (1) DK3361422T3 (zh)
GB (1) GB2561669A (zh)
HK (1) HK1259158A1 (zh)
TW (4) TWI823571B (zh)
WO (1) WO2018152205A1 (zh)

Families Citing this family (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10417525B2 (en) * 2014-09-22 2019-09-17 Samsung Electronics Co., Ltd. Object recognition with reduced neural network weight precision
US10467796B2 (en) 2017-04-17 2019-11-05 Intel Corporation Graphics system with additional context
CN109961133B (zh) * 2017-12-14 2020-04-24 中科寒武纪科技股份有限公司 集成电路芯片装置及相关产品
WO2019129070A1 (zh) * 2017-12-27 2019-07-04 北京中科寒武纪科技有限公司 一种集成电路芯片装置
KR102354720B1 (ko) * 2018-02-13 2022-01-21 상하이 캠브리콘 인포메이션 테크놀로지 컴퍼니 리미티드 계산 장치 및 방법
KR20190125141A (ko) 2018-04-27 2019-11-06 삼성전자주식회사 뉴럴 네트워크의 파라미터들을 양자화하는 방법 및 장치
KR20200026455A (ko) 2018-09-03 2020-03-11 삼성전자주식회사 인공 신경망 시스템 및 인공 신경망의 고정 소수점 제어 방법
CN109284761B (zh) * 2018-09-04 2020-11-27 苏州科达科技股份有限公司 一种图像特征提取方法、装置、设备及可读存储介质
KR20200029661A (ko) 2018-09-07 2020-03-19 삼성전자주식회사 뉴럴 프로세싱 시스템
US11663464B2 (en) * 2018-09-20 2023-05-30 Kneron (Taiwan) Co., Ltd. Deep neural network with low-precision dynamic fixed-point in reconfigurable hardware design
KR20200061164A (ko) * 2018-11-23 2020-06-02 삼성전자주식회사 뉴럴 네트워크 연산 수행을 위한 뉴럴 네트워크 장치, 뉴럴 네트워크 장치의 동작 방법 및 뉴럴 네트워크 장치를 포함하는 애플리케이션 프로세서
CN109670582B (zh) * 2018-12-28 2021-05-07 四川那智科技有限公司 一种全定点化神经网络的设计方法
JP7104183B2 (ja) * 2019-01-18 2022-07-20 日立Astemo株式会社 ニューラルネットワークの縮約装置
CN110008952B (zh) * 2019-03-26 2021-06-15 深兰科技(上海)有限公司 一种目标识别方法及设备
CN114365147A (zh) * 2019-10-22 2022-04-15 深圳鲲云信息科技有限公司 神经网络计算压缩方法、系统及存储介质
US11601134B2 (en) 2020-01-10 2023-03-07 Robert Bosch Gmbh Optimized quantization for reduced resolution neural networks
US20220156567A1 (en) * 2020-11-13 2022-05-19 Mediatek Inc. Neural network processing unit for hybrid and mixed precision computing
CN112702600B (zh) * 2020-12-29 2022-04-12 南京大学 一种图像编解码神经网络分层定点化方法
CN113342346B (zh) * 2021-05-18 2022-03-25 北京百度网讯科技有限公司 深度学习框架的算子注册方法、装置、设备和存储介质
TWI778822B (zh) * 2021-09-30 2022-09-21 鴻海精密工業股份有限公司 基於神經網路模型的影像處理方法、電子設備及儲存介質

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TW305998B (en) 1996-06-14 1997-05-21 Ind Tech Res Inst Weighted sum type of artificial neural network with reconfigurable structure and bit-serial I/O mode
US8443169B2 (en) * 2005-03-28 2013-05-14 Gerald George Pechanek Interconnection network connecting operation-configurable nodes according to one or more levels of adjacency in multiple dimensions of communication in a multi-processor and a neural processor
US7917333B2 (en) 2008-08-20 2011-03-29 Caterpillar Inc. Virtual sensor network (VSN) based control system and method
US9015204B2 (en) 2009-07-15 2015-04-21 Hewlett-Packard Development Company, L.P. Onboarding resources to an identity management system
TWI525558B (zh) 2011-01-17 2016-03-11 Univ Nat Taipei Technology Resilient high - speed hardware reverse transfer and feedback type neural network system
CN102981854A (zh) 2012-11-16 2013-03-20 天津市天祥世联网络科技有限公司 基于浮点数运算内联函数库的神经网络优化方法
WO2016039651A1 (en) 2014-09-09 2016-03-17 Intel Corporation Improved fixed point integer implementations for neural networks
US20170061279A1 (en) * 2015-01-14 2017-03-02 Intel Corporation Updating an artificial neural network using flexible fixed point representation
US10373050B2 (en) 2015-05-08 2019-08-06 Qualcomm Incorporated Fixed point neural network based on floating point neural network quantization
US11244225B2 (en) 2015-07-10 2022-02-08 Samsung Electronics Co., Ltd. Neural network processor configurable using macro instructions
JP6745019B2 (ja) * 2015-10-29 2020-08-26 株式会社Preferred Networks 情報処理装置及び情報処理方法
CN105760933A (zh) 2016-02-18 2016-07-13 清华大学 卷积神经网络的逐层变精度定点化方法及装置

Also Published As

Publication number Publication date
TWI728230B (zh) 2021-05-21
TW201835818A (zh) 2018-10-01
TW202131233A (zh) 2021-08-16
TWI787803B (zh) 2022-12-21
EP3361422B1 (en) 2021-12-08
WO2018152205A1 (en) 2018-08-23
GB2561669A (en) 2018-10-24
US9836692B1 (en) 2017-12-05
US10650303B2 (en) 2020-05-12
HK1259158A1 (zh) 2019-11-29
CN108427991A (zh) 2018-08-21
US20180232626A1 (en) 2018-08-16
US11868864B2 (en) 2024-01-09
US20200226445A1 (en) 2020-07-16
DK3361422T3 (da) 2022-01-31
DE102018103303A1 (de) 2018-08-16
CN116415637A (zh) 2023-07-11
EP3361422A1 (en) 2018-08-15
GB201802414D0 (en) 2018-03-28
TW202301201A (zh) 2023-01-01
TWI823571B (zh) 2023-11-21

Similar Documents

Publication Publication Date Title
TWI787803B (zh) 用於在定點算術運算系統中實施神經網路之方法、系統及電腦儲存媒體
US11023804B2 (en) Generating an output for a neural network output layer
US11321542B2 (en) Processing text sequences using neural networks
TW201917602A (zh) 文本語義編碼方法及裝置
US20220036155A1 (en) Quantizing trained long short-term memory neural networks
US11893491B2 (en) Compound model scaling for neural networks
WO2018137420A1 (zh) 一种信息推荐列表的生成方法及装置
CN111133458B (zh) 增强神经网络
JP2022028897A (ja) 文章翻訳方法、装置、電子機器及び記憶媒体
US20220113943A1 (en) Method for multiply-add operations for neural network
JP2019087157A (ja) 単語ベクトル変換装置、方法、及びプログラム
CN117892733A (zh) 基于联合多语义信息的文本匹配方法和系统
WO2023102233A1 (en) Linear memory attention system and methods
KR20230060719A (ko) 대화 시스템에서, 슬롯을 추출하기 위한 장치, 방법, 시스템 및 컴퓨터 판독가능 저장 매체
CN117649669A (zh) 一种算式计算方法、装置、设备和存储介质
CN111401508A (zh) 文本数据的处理方法、装置和计算机可读存储介质