TWI744724B - 處理卷積神經網路的方法 - Google Patents

處理卷積神經網路的方法 Download PDF

Info

Publication number
TWI744724B
TWI744724B TW108142282A TW108142282A TWI744724B TW I744724 B TWI744724 B TW I744724B TW 108142282 A TW108142282 A TW 108142282A TW 108142282 A TW108142282 A TW 108142282A TW I744724 B TWI744724 B TW I744724B
Authority
TW
Taiwan
Prior art keywords
cnn model
layer
floating
quantization
generate
Prior art date
Application number
TW108142282A
Other languages
English (en)
Other versions
TW202022798A (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
Application filed by 耐能智慧股份有限公司 filed Critical 耐能智慧股份有限公司
Publication of TW202022798A publication Critical patent/TW202022798A/zh
Application granted granted Critical
Publication of TWI744724B publication Critical patent/TWI744724B/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/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/08Learning methods
    • G06N3/082Learning methods modifying the architecture, e.g. adding, deleting or silencing nodes or connections
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Health & Medical Sciences (AREA)
  • Computing Systems (AREA)
  • Biomedical Technology (AREA)
  • Biophysics (AREA)
  • Computational Linguistics (AREA)
  • Data Mining & Analysis (AREA)
  • Evolutionary Computation (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Molecular Biology (AREA)
  • Artificial Intelligence (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • Health & Medical Sciences (AREA)
  • Complex Calculations (AREA)
  • Image Analysis (AREA)

Abstract

一種處理卷積神經網路的方法,包含將輸入資料輸入至浮點預訓練CNN模型以產生浮點預訓練CNN模型的每層之浮點特徵圖,將浮點特徵圖輸入至統計分析模擬器以產生浮點預訓練CNN模型的每層之動態量化範圍,依據浮點預訓練CNN模型的每層之動態量化範圍對浮點預訓練CNN模型的每層之特徵值進行量化以產生量化CNN模型的每層之特徵值、量化CNN模型的每層之純量因子、及量化CNN模型的分數位元,及將量化CNN模型的每層之特徵值輸入至推論引擎以使用低精度之定點算數操作來產生定點推論CNN模型的每層之特徵值。

Description

處理卷積神經網路的方法
本發明關於影像處理,特別是一種節能的卷積神經網路實現方式。
由於在影像網(ImageNet)競賽中的卓越成功,卷積神經網路(Convolution Neural Network,CNN)已成為電腦視覺處理中最受歡迎的結構。通常的預訓練CNN模型需要好幾百萬個運算、大量的記憶體空間及好幾瓦的功率來進行單一推論(inference)運作。有限的運算資源及儲存空間已成為在物聯網(Internet of things,IoT)或可攜裝置上執行CNN的主要障礙。
開發新的CNN加速器主要有三個挑戰:
使用有限儲存記憶體的空間資料(spatial data)傳輸:由於物聯網設備中的儲存記憶體有限(<320KB SRAM),因此實時人工智能(artificial intelligence,AI)應用無法接受晶片外(off-chip)記憶體,如動態隨機存取記憶體(dynamic random access memory,DRAM)及晶片上(on-chip)記憶體,如同步隨機記憶體(synchronous random access memory,SRAM)之間的大量資料傳輸的延遲。
CNN的大量乘法運算及高功耗:對於實時推論CNN模型來說,大規模的乘法運算需要極高功耗用於算術計算,因此難以設計滿足IoT設備的功率要求的CNN。
重新訓練CNN模型需要大量的訓練資料集:在量化近似操作中重新 訓練CNN模型過程往往需要花費數小時。
CNN需要大量算數運算,因此無法在低功耗裝置上實現。
本發明實施例提供一種處理卷積神經網路的方法,包含將輸入資料輸入至浮點預訓練CNN模型以產生浮點預訓練CNN模型的每層之浮點特徵圖,將浮點特徵圖輸入至統計分析模擬器以產生浮點預訓練CNN模型的每層之動態量化範圍,依據浮點預訓練CNN模型的每層之動態量化範圍對浮點預訓練CNN模型的每層之特徵值進行量化以產生量化CNN模型的每層之特徵值、量化CNN模型的每層之純量因子、及量化CNN模型的分數位元,及將量化CNN模型的每層之特徵值輸入至推論引擎以使用低精度之定點算數操作來產生定點推論CNN模型的每層之特徵值。
100:方法
S102至S108:步驟
第1圖係為本發明實施例之處理卷積神經網路的方法之流程圖。
第2圖係顯示量化第1圖中權重及激活值的方法。
第1圖係為本發明實施例之處理卷積神經網路(convolution neural network,CNN)的方法100之流程圖。方法100包含下列步驟: S102:將輸入資料輸入至浮點預訓練CNN模型以產生浮點預訓練 CNN模型的每層之浮點特徵圖(feature map);S104:將浮點特徵圖輸入至統計分析模擬器以產生浮點預訓練CNN模型的每層之動態量化範圍;S106:依據浮點預訓練CNN模型的每層之動態量化範圍對該浮點預訓練CNN模型每層之特徵值進行量化以產生量化CNN模型每層之特徵值、量化CNN模型的每層之純量因子、及量化CNN模型的分數位元;及S108:將量化CNN模型每層之特徵值輸入至推論(inference)引擎以使用低精度之定點算數操作來產生定點CNN模型。
步驟S102用於將輸入資料輸入至浮點預訓練CNN以產生浮點預訓練CNN模型的每層之浮點特徵圖。輸入資料為多媒體資料。步驟S104由自動統計分析模擬器執行。步驟S106用於執行權重、偏差及激活值的量化方法。步驟S108由推論引擎執行以使用低精度之定點算數操作來產生定點推論CNN模型。定點推論CNN模型每層的特徵值可被輸入至浮點預訓練CNN。
在CNN操作中,卷積(convolutional,CONV)操作及全連接(fully connected,FC)操作為主要運算負擔(overhead)。透過通用矩陣乘法(general matrix multiplication,GEMM),卷積操作及全連接操作的公式由公式1顯示。在CNN模型的正向傳遞(forward-passing)程序中,第l層的第i通道的輸出特徵可表示為:
Figure 108142282-A0305-02-0006-1
其中k代表卷積核(kernel)大小;N代表輸入通道的總數;i等於{1,2,…,M},其中M為輸出通道的總數。
Figure 108142282-A0305-02-0006-2
代表第l層中之第i輸出通道的偏差值。對全連接操作來說,卷積核大小永遠等於1。實施例中實現公式(1)中的量化方 式,稱為動態定點算數運算子(operator),可減低大規模CNN的運算負擔。因此量化問題可由最佳化公式2表示。
Figure 108142282-A0305-02-0007-3
其中Q( )係為量化函數,使用最近捨入(round-to-nearest)方法,可產生捨入誤差的最小值。
為了最小化公式2中的量化誤差,再次重新考慮公式1。公式1具有二個主要成分。一者為加權向量(ωb),另一者為激活向量(x)。對加權向量執行粗略至精細動態定點近似操作以最小化加權向量(ωb)中的量化誤差。將高效的固定精度表示法應用於激活值以最小化激活向量(x)中的量化誤差。第2圖係顯示量化第1圖中權重及激活值的方法。
實施例揭露一種量化方法,以下以固定精度表示法描述激活向量。
當在激活向量(x)中使用動態定點格式完整表示32位元浮點值時,純量因子s由公式3定義。
Figure 108142282-A0305-02-0007-4
其中p代表量化位元長。在公式3中,動態量化範圍係為[[-max v ,max v ]]。對卷積操作及全連接操作中的激活向量(x)來說,max v 為一組大量資料組的通常輸入特徵的統計最大值。可由第1圖中之統計最大值來進行分析。
基於公式3,s係為純量因子,用以補足浮點值及定點值之間的缺口。純量因子s係為數學上的實數,以32位元浮點格式表示。將純量因子s應用於第l層 中之激活向量x l ,則可將公式1重寫為:
Figure 108142282-A0305-02-0008-5
在完成公式1的乘法操作後,公式2表示的量化問題可重寫如下:
Figure 108142282-A0305-02-0008-6
CNN模型中的每層都有自己的第l層中之純量因子s (l)。將純量因子及激活向量相乘可有效涵蓋整個量化範圍[[-2 p-1,2 p-1-1]],因此量化誤差被最小化。
以下描述本發明實施例中之量化方法,涉及將粗略量化及精細量化使用動態量化範圍應用於加權向量。
在公式3中,動態量化範圍係為加權向量中的[[-max v ,max v ]]。對操作卷積及全連接操作中的加權向量(ωb)來說,max v 等於max(|min(w)|,|max(w)|),其中|max(w)|及|min(w)|分別為權重的最大絕對值及最小絕對值。“|x|”表示x的絕對值。依據公式1,一旦純量因子s和每層的激活向量相乘後,執行粗略至精細動態定點近似操作時可能會對加權向量產生影響。為了處理這個議題,實施例中提出一種用於加權向量的粗略量化及精細量化定點技術。
首先對每層來說,公式(3)提到的純量因子s可由公式(3)表示:
Figure 108142282-A0305-02-0008-7
其中q等於
Figure 108142282-A0305-02-0008-9
,n係為分數位元的數量,表示分數位元長,定義為:
Figure 108142282-A0305-02-0008-8
注意2 n 係為整數值,及q係為32位元浮點值。
加權向量具有卷積向量或批量正規化(batch-normalization)縮放向量(ω)及偏差向量(b)。由第l層的偏差向量(b l )的觀點來看,由於使用縮放激活向量,更新的偏差向量可更新為q l .b。由第l層的卷積向量或批量正規化縮放加權向量(w (l))的觀點來看,由於考慮激活向量而透過每層純量因子進行迭代更新。當l>=1時,第l層的卷積加權向量(w (l))應更新為
Figure 108142282-A0305-02-0009-10
。當l=0時,更新的加權向量應更新為q (0).w (0)。對於沒有加權向量的層,例如激活層及池化層來說,直接將來自輸入層的浮點純量因子傳遞至後續層。
依據卷積加權向量(w (k×k×N×M)×1)的統計分析,每個輸出通道的值(輸出通道的總數為M)都會有不同變動。因此當動態量化範圍([-max v (w),max v (w)])用於涵蓋整個輸出通道時會對量化正確性造成極大影響。為了解決這個問題,所以在通道量化上使用了精細量化技術。在卷積加權向量中,第i輸出通道的最大值定義為max v (w i )(i
Figure 108142282-A0305-02-0009-13
1,2,...,M)。每輸出通道的更新的動態範圍為[-max v (w i ),max v (w i )]。透過量化範圍應用粗略量化及精細量化以產生定點推論資料可對所有CNN提供極低之量化誤差及提供靠近32位元浮點正確度的量化結果。
本發明實施例提供處理卷積神經網路的方法。本方法將輸入資料輸入至浮點預訓練CNN模型以產生浮點預訓練CNN模型的每層之特徵圖,將特徵圖輸入至統計分析模擬器以產生浮點預訓練CNN模型的每層之動態量化範圍,依據浮點預訓練CNN模型的每層之動態量化範圍對浮點預訓練CNN模型的每層之特徵值進行量化以產生量化CNN模型的每層之特徵值、量化CNN模型的每層之純量 因子、及量化CNN模型的分數位元,及將該量化CNN模型的每層之特徵值輸入至推論引擎以使用低精度之定點算數操作來產生定點推論CNN模型每層之特徵值。應用本發明提出之技術可於僅具有限記憶體大小及低算術能力的裝置,例如行動電話或可攜物聯網裝置上建造定點推論CNN模型而不會產生效能損失。
以上所述僅為本發明之較佳實施例,凡依本發明申請專利範圍所做之均等變化與修飾,皆應屬本發明之涵蓋範圍。
100:方法
S102至S108:步驟

Claims (8)

  1. 一種處理卷積神經網路(convolution neural network,CNN)的方法,包含:將輸入資料輸入至一浮點預訓練CNN模型以產生該浮點預訓練CNN模型的每層之複數個浮點特徵圖(feature map);將該等浮點特徵圖輸入至一統計分析模擬器以產生該浮點預訓練CNN模型的該每層之一動態量化範圍;依據該浮點預訓練CNN模型的該每層之該動態量化範圍對該浮點預訓練CNN模型的該每層之特徵值進行量化以產生一量化CNN模型的每層之複數個特徵值、該量化CNN模型的該每層之一純量因子、及該量化CNN模型的一分數位元;及將該量化CNN模型的該每層之該等特徵值輸入至一推論(inference)引擎以使用低精度之複數個定點算數操作來產生一定點推論CNN模型的每層之複數個特徵值。
  2. 如請求項1所述之方法,另包含:將該定點推論CNN模型的該每層之該等特徵值輸入至該浮點預訓練CNN模型。
  3. 如請求項1所述之方法,其中依據該浮點預訓練CNN模型的該每層之該動態量化範圍對該浮點預訓練CNN模型的該每層之該等特徵值進行量化以產生該量化CNN模型的該每層之該等特徵值、該量化CNN模型的該每層之該純量因子、及該量化CNN模型的該分數位元包含:依據該浮點預訓練CNN模型的該每層之該動態量化範圍對該浮點預訓練 CNN模型的該每層之該等特徵值執行一粗略至精細量化以產生該量化CNN模型的該每層之該等特徵值、該量化CNN模型的該每層之該純量因子、及該量化CNN模型的該分數位元。
  4. 如請求項3所述之方法,其中依據該浮點預訓練CNN模型的該每層之該動態量化範圍對該浮點預訓練CNN模型的該每層之該等特徵值執行該粗略至精細量化以產生該量化CNN模型的該每層之該等特徵值包含:依據該浮點預訓練CNN模型的該每層之該動態量化範圍對該浮點預訓練CNN模型的該每層之該等特徵值執行一粗略量化以產生一粗略CNN模型;及對該粗略CNN模型的複數個卷積層及/或複數個全連接層的所有複數個通道的該每層之複數個特徵值執行一精細量化以產生該量化CNN模型。
  5. 如請求項4所述之方法,其中依據該浮點預訓練CNN模型的該每層之該動態量化範圍對該浮點預訓練CNN模型的該每層之該等特徵值執行該粗略量化以產生該粗略CNN模型包含:執行一激活量化程序、一偏差量化程序及一權重量化程序以產生該粗略CNN模型。
  6. 如請求項5所述之方法,其中執行該激活量化程序、該偏差量化程序及該權重量化程序以產生該粗略CNN模型包含:對該浮點預訓練CNN模型的該每層之複數個激活向量執行該激活量化程序以產生複數個量化的激活值;對該浮點預訓練CNN模型的偏差資料執行該偏差量化程序以產生複數個量 化的偏差值;及對該浮點預訓練CNN模型的權重資料執行該權重量化程序以產生複數個量化的權重。
  7. 如請求項4所述之方法,其中對該粗略CNN模型的該等卷積層及/或該等全連接層的所有該等通道的該每層之該等特徵值執行該精細量化以產生該量化CNN模型包含:對該粗略CNN模型的該等卷積層及/或該等全連接層的所有該等通道的該每層之該等特徵值執行一每通道權重(weight per channel)量化程序以產生權重該量化CNN模型,該量化CNN模型包含一每通道量化權重。
  8. 如請求項1所述之方法,其中該輸入資料為多媒體資料。
TW108142282A 2018-12-12 2019-11-21 處理卷積神經網路的方法 TWI744724B (zh)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US201862778299P 2018-12-12 2018-12-12
US62/778,299 2018-12-12
US16/551,753 US12014273B2 (en) 2018-12-12 2019-08-27 Low precision and coarse-to-fine dynamic fixed-point quantization design in convolution neural network
US16/551,753 2019-08-27

Publications (2)

Publication Number Publication Date
TW202022798A TW202022798A (zh) 2020-06-16
TWI744724B true TWI744724B (zh) 2021-11-01

Family

ID=71071182

Family Applications (1)

Application Number Title Priority Date Filing Date
TW108142282A TWI744724B (zh) 2018-12-12 2019-11-21 處理卷積神經網路的方法

Country Status (3)

Country Link
US (1) US12014273B2 (zh)
CN (1) CN111310888A (zh)
TW (1) TWI744724B (zh)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108228696B (zh) * 2017-08-31 2021-03-23 深圳市商汤科技有限公司 人脸图像检索方法和系统、拍摄装置、计算机存储介质
US11507823B2 (en) * 2019-01-22 2022-11-22 Black Sesame Technologies Inc. Adaptive quantization and mixed precision in a network
US11763158B2 (en) * 2019-12-04 2023-09-19 Deep Vision Inc. Method for automatic hybrid quantization of deep artificial neural networks
US11704556B2 (en) * 2020-02-06 2023-07-18 Baidu Usa Llc Optimization methods for quantization of neural network models

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20180314940A1 (en) * 2017-04-28 2018-11-01 Intel Corporation Incremental precision networks using residual inference and fine-grain quantization
TW201842478A (zh) * 2017-04-28 2018-12-01 美商英特爾股份有限公司 用於低精度機器學習操作之計算最佳化

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20180046903A1 (en) * 2016-08-12 2018-02-15 DeePhi Technology Co., Ltd. Deep processing unit (dpu) for implementing an artificial neural network (ann)
US11392825B2 (en) * 2017-01-09 2022-07-19 Samsung Electronics Co., Ltd. Method and algorithm of recursive deep learning quantization for weight bit reduction
KR102601604B1 (ko) * 2017-08-04 2023-11-13 삼성전자주식회사 뉴럴 네트워크의 파라미터들을 양자화하는 방법 및 장치
KR20190054454A (ko) * 2017-11-13 2019-05-22 삼성전자주식회사 인공 신경망의 양자화 방법 및 장치
US20210019630A1 (en) * 2018-07-26 2021-01-21 Anbang Yao Loss-error-aware quantization of a low-bit neural network

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20180314940A1 (en) * 2017-04-28 2018-11-01 Intel Corporation Incremental precision networks using residual inference and fine-grain quantization
TW201842478A (zh) * 2017-04-28 2018-12-01 美商英特爾股份有限公司 用於低精度機器學習操作之計算最佳化

Non-Patent Citations (4)

* Cited by examiner, † Cited by third party
Title
Doyun Kim; Han Young Yim; Sanghyuck Ha; Changgwun Lee; Inyup Kang," Convolutional Neural Network Quantization using Generalized Gamma Distribution", arXiv:1810.13329v1[cs. NE], 2018/10/31 *
Doyun Kim; Han Young Yim; Sanghyuck Ha; Changgwun Lee; Inyup Kang," Convolutional Neural Network Quantization using Generalized Gamma Distribution", arXiv:1810.13329v1[cs. NE], 2018/10/31。
ZHOURUI SONG ET AL:"Computation Error Analysis of Block Floating Point Arithmetic Oriented Convolution Neural Network Accelerator Design",arXiv:1709.07776v2 [cs.LG],2017/11/24 *
ZHOURUI SONG ET AL:"Computation Error Analysis of Block Floating Point Arithmetic Oriented Convolution Neural Network Accelerator Design",arXiv:1709.07776v2 [cs.LG],2017/11/24。

Also Published As

Publication number Publication date
US12014273B2 (en) 2024-06-18
CN111310888A (zh) 2020-06-19
US20200193270A1 (en) 2020-06-18
TW202022798A (zh) 2020-06-16

Similar Documents

Publication Publication Date Title
TWI744724B (zh) 處理卷積神經網路的方法
US11373087B2 (en) Method and apparatus for generating fixed-point type neural network
CN108510067B (zh) 基于工程化实现的卷积神经网络量化方法
TW201918939A (zh) 用於學習低精度神經網路的方法及裝置
CN109785826B (zh) 用于嵌入式模型的迹范数正则化和更快推理的系统和方法
JP2022513404A (ja) トレーニング済み長短期記憶ニューラルネットワークの量子化
WO2023011002A1 (zh) 溢出感知的量化模型训练方法、装置、介质及终端设备
WO2019238029A1 (zh) 卷积神经网络系统和卷积神经网络量化的方法
CN112257858A (zh) 一种模型压缩方法及装置
WO2023050707A1 (zh) 网络模型量化方法、装置、计算机设备以及存储介质
US20230004813A1 (en) Jointly pruning and quantizing deep neural networks
WO2022111002A1 (zh) 用于训练神经网络的方法、设备和计算机可读存储介质
CN113011571A (zh) 基于Transformer模型的INT8离线量化及整数推断方法
KR20190098671A (ko) 뉴럴 네트워크의 고속 처리 방법 및 그 방법을 이용한 장치
US20220044109A1 (en) Quantization-aware training of quantized neural networks
US20200257966A1 (en) Quality monitoring and hidden quantization in artificial neural network computations
WO2022222649A1 (zh) 神经网络模型的训练方法、装置、设备及存储介质
CN114139683A (zh) 一种神经网络加速器模型量化方法
WO2024012476A1 (zh) 一种模型训练方法及相关设备
CN112257466A (zh) 一种应用于小型机器翻译设备的模型压缩方法
CN117421703A (zh) 一种深度符号回归加速器及深度符号回归方法
CN115062777B (zh) 卷积神经网络的量化方法、量化装置、设备及存储介质
CN115860062A (zh) 一种适合fpga的神经网络量化方法及装置
Ren et al. Hardware implementation of KLMS algorithm using FPGA
CN116472538A (zh) 用于量化神经网络的方法和系统