CN111310888A - 处理卷积神经网络的方法 - Google Patents

处理卷积神经网络的方法 Download PDF

Info

Publication number
CN111310888A
CN111310888A CN201911171097.1A CN201911171097A CN111310888A CN 111310888 A CN111310888 A CN 111310888A CN 201911171097 A CN201911171097 A CN 201911171097A CN 111310888 A CN111310888 A CN 111310888A
Authority
CN
China
Prior art keywords
cnn model
layer
floating
quantized
quantization
Prior art date
Legal status (The legal status 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 status listed.)
Withdrawn
Application number
CN201911171097.1A
Other languages
English (en)
Inventor
伍捷
马云汉
谢必克
李湘村
苏俊杰
刘峻诚
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Kneron Inc
Original Assignee
Kneron Inc
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 Kneron Inc filed Critical Kneron Inc
Publication of CN111310888A publication Critical patent/CN111310888A/zh
Withdrawn legal-status Critical Current

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)竞赛中的卓越成功,卷积神经网络(ConvolutionNeural Network,CNN)已成为电脑视觉处理中最受欢迎的结构。通常的预训练CNN模型需要好几百万个运算、大量的存储器空间及好几瓦的功率来进行单一推论(inference)运作。有限的运算资源及储存空间已成为在物联网(Internet ofthings,IoT)或可携装置上执行CNN的主要障碍。
开发新的CNN加速器主要有三个挑战:
使用有限储存存储器的空间数据(spatial data)传输:由于物联网设备中的存储器有限(<320KB SRAM),因此实时人工智能(artificial intelligence,AI)应用无法接受芯片外(off-chip)存储器,如动态随机存取存储器(dynamic random access memory,DRAM)及芯片上(on-chip)存储器,如同步随机存储器(synchronous random accessmemory,SRAM)之间的大量数据传输的延迟。
CNN的大量乘法运算及高功耗:对于实时推论CNN模型来说,大规模的乘法运算需要极高功耗用于算术计算,因此难以设计满足IoT设备的功率要求的CNN。
重新训练CNN模型需要大量的训练数据集:在量化近似操作中重新训练CNN模型过程往往需要花费数小时。
CNN需要大量算数运算,因此无法在低功耗装置上实现。
发明内容
本发明实施例提供一种处理卷积神经网络的方法,包含将输入数据输入至浮点预训练CNN模型以产生浮点预训练CNN模型的每层的浮点特征图,将浮点特征图输入至统计分析模拟器以产生浮点预训练CNN模型的每层的动态量化范围,依据浮点预训练CNN模型的每层的动态量化范围对浮点预训练CNN模型的每层的特征值进行量化以产生量化CNN模型的每层的特征值、量化CNN模型的每层的纯量因子、及量化CNN模型的分数位,及将量化CNN模型的每层的特征值输入至推论引擎以使用低精度的定点算数操作来产生定点推论CNN模型的每层的特征值。
附图说明
图1为本发明实施例的处理卷积神经网络的方法的流程图。
图2显示量化图1中权重及激活值的方法。
符号说明:
100 方法
S102至S108 步骤
具体实施方式
图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用于执行权重、偏差及激活值的量化方法。步骤S104由推论引擎执行以使用低精度的定点算数操作来产生定点推论CNN模型。定点推论CNN模型每层的特征值可被输入至浮点预训练CNN。
在CNN操作中,卷积(convolutional,CONV)操作及全连接(ully connected,FC)操作为主要运算负担(overhead)。透过通用矩阵乘法(general matrix multiplication,GEMM),卷积操作及全连接操作的公式由公式1显示。在CNN模型的正向传递(forward-passing)程序中,第l层的第i通道的输出特征可表示为:
Figure BDA0002288735350000031
其中k代表卷积核(kemel)大小;N代表输入通道的总数;i等于{1,2,…,M},其中M为输出通道的总数。
Figure BDA0002288735350000032
代表第l层中的第i输出通道的偏差值。对全连接操作来说,卷积核大小永远等于1。实施例中实现公式(1)中的量化方式,称为动态定点算数运算子(operator),可减低大规模CNN的运算负担。因此量化问题可由最佳化公式2表示。
Figure BDA0002288735350000033
其中Q为量化函数,使用最近舍入(round-to-nearest)方法,可产生舍入误差的最小值。
为了最小化公式2中的量化误差,再次重新考虑公式1。公式1具有二个主要成分。一者为加权向量(ω及b),另一者为激活向量(x)。对加权向量执行粗略至精细动态定点近似操作以最小化加权向量(ω及b)中的量化误差。将高效的固定精度表示法应用于激活值以最小化激活向量(x)中的量化误差。图2显示量化图1中权重及激活值的方法。
实施例揭露一种量化方法,以下以固定精度表示法描述激活向量。
当在激活向量(x)中使用动态定点格式完整表示32位浮点值时,纯量因子s由公式3定义。
Figure BDA0002288735350000034
其中p代表量化位长。在公式3中,动态量化范围为[[-maxv,maxv]]。对卷积操作及全连接操作中的激活向量(x)来说,maxv为一组大量数据组的通常输入特征的统计最大值。可由图1中的统计最大值来进行分析。
基于公式3,s为纯量因子,用以补足浮点值及定点值之间的缺口。纯量因子s为数学上的实数,以32位浮点格式表示。将纯量因子s应用于第l层中的激活向量xl,则可将公式1重写为:
Figure BDA0002288735350000035
在完成公式1的乘法操作后,公式2表示的量化问题可重写如下:
Figure BDA0002288735350000041
CNN模型中的每层都有自己的第l层中的纯量因子s(l)。将纯量因子及激活向量相乘可有效涵盖整个量化范围[[-2p-1,2p-1-1]],因此量化误差被最小化。
以下描述本发明实施例中的量化方法,涉及将粗略量化及精细量化使用动态量化范围应用于加权向量。
在公式3中,动态量化范围为加权向量中的[[-maxv,maxv]]。对操作卷积及全连接操作中的加权向量(ω及b)来说,maxv等于max(|mmin(w)|,|max(w)|),其中|max(w)|及|mmin(w)|分别为权重的最大绝对值及最小绝对值。“|x|”表示x的绝对值。依据公式1,一旦纯量因子s和每层的激活向量相乘后,执行粗略至精细动态定点近似操作时可能会对加权向量产生影响。为了处理这个议题,实施例中提出一种用于加权向量的粗略量化及精细量化定点技术。
首先对每层来说,公式(3)提到的纯量因子s可由公式(3)表示:
Figure BDA0002288735350000042
其中q等于
Figure BDA0002288735350000043
n为分数位的数量,表示分数位长,定义为:
Figure BDA0002288735350000044
注意2n为整数值,及q为32位浮点值。
加权向量具有卷积向量或批量正规化(batch-normalization)缩放向量(ω)及偏差向量(b)。由第l层的偏差向量(bl)的观点来看,由于使用缩放激活向量,更新的偏差向量可更新为ql.b。由第l层的卷积向量或批量正规化缩放加权向量(w(l))的观点来看,由于考虑激活向量而透过每层纯量因子进行迭代更新。当l>=1时,第l层的卷积加权向量(w(l))应更新为
Figure BDA0002288735350000045
当l=0时,更新的加权向量应更新为q(0).w(0)。对于没有加权向量的层,例如激活层及池化层来说,直接将来自输入层的浮点纯量因子传递至后续层。
依据卷积加权向量(w(k×k×N×M)×1)的统计分析,每个输出通道的值(输出通道的总数为M)都会有不同变动。因此当动态量化范围([-maxv(w),-maxv(w)])用于涵盖整个输出通道时会对量化正确性造成极大影响。为了解决这个问题,所以在通道量化上使用了精细量化技术。在卷积加权向量中,第i输出通道的最大值定义为maxv(wi)(i∈1,2,...,M)。每输出通道的更新的动态范围为[-maxv(wi),maxv(wi)]。透过量化范围应用粗略量化及精细量化以产生定点推论数据可对所有CNN提供极低的量化误差及提供靠近32位浮点正确度的量化结果。
本发明实施例提供处理卷积神经网络的方法。本方法将输入数据输入至浮点预训练CNN模型以产生浮点预训练CNN模型的每层的特征图,将特征图输入至统计分析模拟器以产生浮点预训练CNN模型的每层的动态量化范围,依据浮点预训练CNN模型的每层的动态量化范围对浮点预训练CNN模型的每层的特征值进行量化以产生量化CNN模型的每层的特征值、量化CNN模型的每层的纯量因子、及量化CNN模型的分数位,及将该量化CNN模型的每层的特征值输入至推论引擎以使用低精度的定点算数操作来产生定点推论CNN模型每层的特征值。应用本发明提出的技术可于仅具有限存储器大小及低算术能力的装置,例如移动电话或可携物联网装置上建造定点推论CNN模型而不会产生效能损失。
以上所述仅为本发明的较佳实施例,凡依本发明权利要求所做的均等变化与修饰,皆应属本发明的涵盖范围。

Claims (8)

1.一种处理卷积神经网络的方法,其特征在于,包含:
将输入数据输入至一浮点预训练CNN模型以产生所述浮点预训练CNN模型的每层的多个浮点特征图;
将所述浮点特征图输入至一统计分析模拟器以产生所述浮点预训练CNN模型的所述每层的一动态量化范围;
依据所述浮点预训练CNN模型的所述每层的所述动态量化范围对所述浮点预训练CNN模型的所述每层的特征值进行量化以产生一量化CNN模型的每层的多个特征值、所述量化CNN模型的所述每层的一纯量因子、及所述量化CNN模型的一分数位;及
将所述量化CNN模型的所述每层的所述特征值输入至一推论引擎以使用低精度的多个定点算数操作来产生一定点推论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模型的所述卷积层及/或所述全连接层的所有所述通道的所述每层的所述特征值执行一每通道权重量化程序以产生权重所述量化CNN模型,所述量化CNN模型包含一每通道量化权重。
8.根据权利要求1所述的方法,其特征在于,所述输入数据为多媒体数据。
CN201911171097.1A 2018-12-12 2019-11-26 处理卷积神经网络的方法 Withdrawn CN111310888A (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 (1)

Publication Number Publication Date
CN111310888A true CN111310888A (zh) 2020-06-19

Family

ID=71071182

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201911171097.1A Withdrawn CN111310888A (zh) 2018-12-12 2019-11-26 处理卷积神经网络的方法

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

Family Cites Families (7)

* 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
US10726514B2 (en) * 2017-04-28 2020-07-28 Intel Corporation Compute optimizations for low precision machine learning operations
US11556772B2 (en) * 2017-04-28 2023-01-17 Intel Corporation Incremental precision networks using residual inference and fine-grain quantization
KR102601604B1 (ko) * 2017-08-04 2023-11-13 삼성전자주식회사 뉴럴 네트워크의 파라미터들을 양자화하는 방법 및 장치
KR20190054454A (ko) * 2017-11-13 2019-05-22 삼성전자주식회사 인공 신경망의 양자화 방법 및 장치
WO2020019236A1 (en) * 2018-07-26 2020-01-30 Intel Corporation Loss-error-aware quantization of a low-bit neural network

Also Published As

Publication number Publication date
US20200193270A1 (en) 2020-06-18
TW202022798A (zh) 2020-06-16
US12014273B2 (en) 2024-06-18
TWI744724B (zh) 2021-11-01

Similar Documents

Publication Publication Date Title
KR102672004B1 (ko) 저 정밀도 뉴럴 네트워크 학습을 위한 방법 및 장치
CN111310888A (zh) 处理卷积神经网络的方法
CN110363279B (zh) 基于卷积神经网络模型的图像处理方法和装置
US11373087B2 (en) Method and apparatus for generating fixed-point type neural network
CN109063825B (zh) 卷积神经网络加速装置
WO2023011002A1 (zh) 溢出感知的量化模型训练方法、装置、介质及终端设备
CN107967516A (zh) 一种基于迹范数约束的神经网络的加速与压缩方法
WO2022111002A1 (zh) 用于训练神经网络的方法、设备和计算机可读存储介质
CN110764885A (zh) 一种多移动设备的dnn任务的拆分和卸载方法
US20210294874A1 (en) Quantization method based on hardware of in-memory computing and system thereof
CN111160524A (zh) 一种两阶段的卷积神经网络模型压缩方法
CN112686031A (zh) 文本特征提取模型的量化方法、装置、设备及存储介质
WO2022222649A1 (zh) 神经网络模型的训练方法、装置、设备及存储介质
CN112884146A (zh) 一种训练基于数据量化与硬件加速的模型的方法及系统
CN113238987B (zh) 量化数据的统计量化器、存储装置、处理装置及板卡
CN118468976A (zh) 模型训练方法、文本生成方法、装置、设备和介质
CN114756517A (zh) 一种基于可微量化训练的视觉Transformer压缩方法及系统
Zhan et al. Field programmable gate array‐based all‐layer accelerator with quantization neural networks for sustainable cyber‐physical systems
CN115860062A (zh) 一种适合fpga的神经网络量化方法及装置
CN114154631A (zh) 一种基于fpga的卷积神经网络量化实现方法以及装置
Zhen et al. A Secure and Effective Energy-Aware Fixed-Point Quantization Scheme for Asynchronous Federated Learning.
CN113238976A (zh) 缓存控制器、集成电路装置及板卡
CN109726805B (zh) 利用黑盒模拟器进行神经网络处理器设计的方法
Bain et al. Quantization Modes for Neural Network Inference: ASIC Implementation Trade-offs
US20240094986A1 (en) Method and apparatus for matrix computation using data conversion in a compute accelerator

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
WW01 Invention patent application withdrawn after publication
WW01 Invention patent application withdrawn after publication

Application publication date: 20200619