CN113408715A - 一种神经网络的定点化方法、装置 - Google Patents

一种神经网络的定点化方法、装置 Download PDF

Info

Publication number
CN113408715A
CN113408715A CN202010186495.7A CN202010186495A CN113408715A CN 113408715 A CN113408715 A CN 113408715A CN 202010186495 A CN202010186495 A CN 202010186495A CN 113408715 A CN113408715 A CN 113408715A
Authority
CN
China
Prior art keywords
weight
quantization
value
output channel
layer
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.)
Granted
Application number
CN202010186495.7A
Other languages
English (en)
Other versions
CN113408715B (zh
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.)
Hangzhou Hikvision Digital Technology Co Ltd
Original Assignee
Hangzhou Hikvision Digital Technology Co Ltd
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 Hangzhou Hikvision Digital Technology Co Ltd filed Critical Hangzhou Hikvision Digital Technology Co Ltd
Priority to CN202010186495.7A priority Critical patent/CN113408715B/zh
Priority to PCT/CN2021/079815 priority patent/WO2021185125A1/zh
Priority to EP21772488.9A priority patent/EP4123513A4/en
Publication of CN113408715A publication Critical patent/CN113408715A/zh
Application granted granted Critical
Publication of CN113408715B publication Critical patent/CN113408715B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

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/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/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/04Architecture, e.g. interconnection topology
    • G06N3/0464Convolutional networks [CNN, ConvNet]
    • 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/048Activation functions
    • 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/0495Quantised networks; Sparse networks; Compressed 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/09Supervised learning

Landscapes

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

Abstract

本申请公开了一种神经网络的定点化方法,对神经网络进行至少如下之一低比特量化:对神经网络中的卷积层输入激活值进行第一低比特量化,对卷积层中卷积核权值进行第二低比特量化,对神经网络中除了卷积层之外的非卷积功能层,将非卷积功能层的输入激活值进行第三低比特量化;在进行所述任意低比特量化之后,基于当前低比特量化后的神经网络,进行重训练,基于重训练后的神经网络中各低比特量化结果,进行定点化;其中,所述第一低比特、第二低比特、第三低比特均在1比特至8比特以内。本申请使得最终激活值和/或卷积核权值都用低比特定点化表示,可以方便移植到嵌入式平台、专用集成电路之中。

Description

一种神经网络的定点化方法、装置
技术领域
本申请涉及计算机技术领域,特别地,涉及一种神经网络的定点化方法。
背景技术
在计算机中数值会按照整型、浮点型等不同类型,占用计算机不同比特位来进行保存,例如浮点数一般用高精度的32bit或者64bit表示,在可允许的精度损失范围内,用更少的比特数,例如4bit、8bit、16bit,来表示浮点数的行为称之为量化,通过动态量化算法,得到的量化后数值取值是离散的。
神经网络是机器学习算法中一种重要的算法,它推动了计算机领域的发展,随着人们不断研究,其算法的计算与存储复杂度也随之增长,不断膨胀的计算复杂度和空间复杂度对计算设备的性能提出了挑战,在保证神经网络目标性能的情形下将神经网络中的各个参数进行量化,成为神经网络应用的基础。
随着神经网络的广泛应用,越来越多的小型化设备例如嵌入式系统需要通过神经网络来实现各种场景应用,受限于硬件资源,减少神经网络被运行时所占用的处理资源成为需求。
发明内容
本申请提供了一种神经网络的定点化方法,以减少神经网络所占用的处理资源。
本申请提供的一种神经网络的定点化方法,该方法包括,
对神经网络进行至少如下之一低比特量化:
对神经网络中的卷积层输入激活值进行第一低比特量化,对卷积层中卷积核权值进行第二低比特量化,
对神经网络中除了卷积层之外的非卷积功能层,将非卷积功能层的输入激活值进行第三低比特量化;
在进行所述任意低比特量化之后,基于当前低比特量化后的神经网络,进行重训练,
基于重训练后的神经网络中各低比特量化结果,进行定点化;
其中,所述第一低比特、第二低比特、第三低比特在1比特至8比特以内。
本申请还提供一种神经网络的定点化装置,该装置包括,
至少如下之一用于对神经网络进行低比特量化的量化模块:
卷积层输入激活值量化模块,对神经网络中的卷积层输入激活值进行第一低比特量化,
卷积层权值量化模块,对卷积层中卷积核权值进行第二低比特量化,
非卷积功能层输入激活值量化模块,对神经网络中除了卷积层之外的非卷积功能层,将非卷积功能层的输入激活值进行第三低比特量化,
重训练模块,在任意所述量化模块进行低比特量化之后,基于当前低比特量化后的神经网络,进行重训练,
定点化模块,基于重训练神经网络中各低比特量化结果,进行定点化;
其中,所述第一低比特、第二低比特、第三低比特均在1比特至8比特以内。
本申请提供的一种计算机可读存储介质,所述存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现所述神经网络定点化方法的步骤。
本申请使得最终定点化神经网络中激活值和卷积核权值都用低比特定点化表示,从而可以方便移植到嵌入式平台、专用集成电路之中;卷积层输入激活值和/或卷积核权值定点化为低比特,计算量和存储空间被极大的压缩;采用分阶段量化的方式,不需要逐层计算或者重复执行计算,同时能够保证阶段量化性能误差低,可根据神经网络目标性能需求灵活地选择需定点化功能层参数;在卷积层输入激活值量化后、卷积层权值量化后进行神经网络重训练,避免了逐层地训练方式所带来的误差累积,实现了端到端的重训练,有效的减少了整个网络的误差,保证了量化后的网络仍然具有足够的目标性能。
附图说明
图1为卷积神经网络模型中隐含层的一种示意图。
图2a、2b为本申请实施例一卷积神经网络的定点化方法的一种流程图。
图3为卷积层中各输出通道对应的卷积核的权值的一种示意图。
图4为卷积核权值量化过程中有关参数的关系的一种示意图。
图5为本申请实施例二的卷积神经网络的定点化方法的一种流程图。
图6为本申请实施例三的卷积神经网络的定点化方法的一种流程图。
图7为本申请实施例的神经网络定点化装置的一种示意图。
图8为本申请实施例低比特定点化的神经网络应用于基于车载摄像头目标检测的一种示意图。
图9是本申请实施例低比特定点化的神经网络应用于基于门禁摄像图像识别的一种示意图。
具体实施方式
为了使本申请的目的、技术手段和优点更加清楚明白,以下结合附图对本申请做进一步详细说明。
本申请提供一种神经网络定点化的计算方法,通过低比特定点化神经网络,从而解决神经网络采用浮点数运算带来的占用硬件资源多的问题。
为便于理解,以下以卷积神经网络的定点化为例来进行说明。鉴于各种场景下业务应用即使相同的神经网络模型,所涉及的参数特征也不尽相同,为说明本申请的技术方案,以下围绕神经网络模型本身为核心来说明。
卷积神经网络模型包括:输入层,隐含层,以及输出层,其中,输入层处理多维训练数据,例如,应用于机器视觉的卷积神经网络,输入层将分布于0~255的原始像素值归一化,以有利于提升卷积神经网络的学习效率和表现;隐含层用于对输入层的数据进行训练,输出层用于输出卷积神经网络模型的训练结果,例如,对于图像分类问题,输出层使用逻辑函数或归一化指数函数(softmax function)输出分类标签。
参见图1所示,图1为卷积神经网络模型中隐含层的一种示意图。隐含层通常依次包括,将上一激活函数层的激活值输入的卷积层1、归化池1、激活函数层1、池化层1、卷积层2、归一化层2、激活函数层2、卷积层3、归一化层3、相加层、激活函数层4....。在同一卷积层中,输入卷积层的至少一个以上激活值通过不同卷积核可以得到不同的输出结果,一输出结果可视为一输出通道。所应理解的是,隐含层的结构不限于此,例如,池化层、归一化层、相加层等除卷积层之外的非卷积功能层可视需求设计,例如,图中池化层2输出至相加层中,但卷积层是隐含层的核心。因此,在卷积神经网络中计算最耗时的部分就是卷积计算,降低这部分的计算量即能够最大程度减少整个网络计算量。
实施例一
参见图2a和2b所示,图2a、2b为本申请实施例一卷积神经网络的定点化方法的一种流程图。
步骤201,向卷积神经网络输入训练数据,前向计算出各个激活函数层输出的第一激活值,即,激活函数层中至少一个以上激活函数输出的激活值,也就是输入卷积层的各个激活值。
其中,第一激活值用浮点型数据表示,卷积神经网络中的参数以浮点型数据来保存。
步骤202,根据当前各激活函数层输出的第一激活值分布,确定各激活函数层输出的第一激活值的当前量化步长。
在该步骤中,对于任一激活函数层,分析该激活函数层输出的第一激活值分布,例如,对该激活函数层输出的第一激活值分布进行排序,然后按给定比例值选择一个量化步长,作为该激活函数层输出的第一激活值当前量化步长。
较佳地,对于任一激活函数层,还可以通过搜索的方式搜到一个量化步长,使得该激活函数层输出的第一激活值的量化误差最小化。
这样,可以得到各激活函数层输出的第一激活值浮点数的当前量化步长。
步骤203,对于各个激活函数层输出的第一激活值,根据上一步骤确定的各个激活函数层当前量化步长,求解第一激活值的取值上限,并按照求解的取值上限限制第一激活值的取值范围,得到各个激活函数层的第二激活值。
在该步骤中,对于任一激活函数层输出的第一激活值,根据浮点量化步长计算公式
Figure BDA0002414388940000041
可以得到该激活函数层输出的第一激活值的取值上限β,其中,s为当前量化步长,用于激活值量化的第一比特数为ba,较佳地,ba为低比特,即8比特以内,较佳地,ba通常情况下可以取4。
将各个第一激活值与求解得到的取值上限进行比较,如果第一激活值大于所述取值上限,则将该第一激活值取值为所述取值上限,否则,保持第一激活值不变。由此,得到了该激活函数层的被限制取值范围的第二激活值。
数学表达为:
Figure BDA0002414388940000042
其中,下标i表示激活函数层i,βi表示激活函数层i输出的第一激活值的取值上限,si表示激活函数层i输出的第一激活值的当前量化步长,bai表示用于激活函数层i输出的激活值的量化比特数,较佳地,用于各激活函数层的量化比特数相同。
Figure BDA0002414388940000051
其中,xfi表示激活函数层i输出的第二激活值,该第二激活值为浮点数。
步骤204,将各激活函数层第二激活值进行量化,得到量化后的激活值。
在该步骤中,对于任一激活函数层的第二激活值,按照浮点数量化公式
Figure BDA0002414388940000052
Figure BDA0002414388940000053
得到量化后的激活值,其中floor操作是对该数值进行四舍五入,xf为第二激活值,ba比特的定点数值的表达范围为
Figure BDA0002414388940000054
因此量化后的激活值限制在这个范围之中。
数学表达为:
Figure BDA0002414388940000055
其中,
Figure BDA0002414388940000056
表示激活函数层i量化后的激活值,xfi为激活函数层i第二激活值。
步骤205,基于当前卷积神经网络,重新进行训练,其中,当前卷积神经网络中的各个卷积层输入的激活值为量化后的激活值。
该步骤将激活值的取值上限β作为一个可训练迭代更新的参数,随着整个网络的训练进行更新,直至收敛,这样,量化步长也随着更新。
步骤206,基于当前卷积神经网络获取各个卷积层中每个卷积核中的每个第一权值,该权值为浮点数据;对于各个卷积层的每个输出通道,累加该输出通道对应卷积核的各个第一权值的平方数,得到输出通道的第一权值平方数的累加结果。基于所述累加结果,在指定的阈值范围中进行搜索一个量化阈值,作为该输出通道的当前权值量化阈值。
参见图3所示,图3为卷积层中各输出通道对应的卷积核的权值的一种示意图。在同一卷积层中,每个输出通道对应的卷积核数量为k,每个卷积核的尺寸相同,每个卷积核具有n个第一权值;不同卷积层之间,如图中卷积层1和卷积层i之间,其输出通道的数量、卷积核数量、卷积核尺寸不同。
在该步骤中,对于任一卷积层i的任一输出通道j,计算输出通道j对应的各卷积核k中每个第一权值的平方,得到输出通道j对应的各个卷积核中每个第一权值的平方数,累加该输出通道所有卷积核中所有第一权值的平方数,得到输出通道j的累加结果;
其中,累加输出通道j的所有卷积核中所有第一权值的平方数数学表达为:
Figure BDA0002414388940000061
其中,Lij表示卷积层i输出通道j的累加结果,wfijkn为卷积层i中输出通道j对应卷积核k中第n个第一权值。
基于该卷积层该输出通道累加结果Lij,在指定的阈值范围中进行搜索一个量化阈值,作为卷积层i输出通道j的当前权值量化阈值。
通过该步骤,可以获得各卷积层中每个输出通道的当前权值量化阈值。
步骤207,基于各个输出通道的当前权值量化阈值,对各个输出通道对应的卷积核中的各个第一权值进行量化,得到各个输出通道对应的卷积核中的各个第一权值的当前量化权值。
在该步骤中,对于任一卷积层i,将该卷积层输出通道j的累加结果乘以该输出通道的当前权值量化阈值的结果,作为该输出通道当前幅值;将该输出通道对应的卷积核中的各个第一权值与所述当前幅值进行比较,大于该幅值则第一权值被赋值为该幅值,小于该幅值的负数则第一权值赋值为负的幅值,取值在中间的第一权值赋值为0,从而可以得到该输出通道的当前量化权值。
数学表达为:
λij=Lij×tij
其中,tij为卷积层i中输出通道j的当前权值量化阈值,λij为卷积层i中输出通道j的当前幅值;
Figure BDA0002414388940000062
其中,
Figure BDA0002414388940000063
为卷积层i中输出通道j对应卷积核k的第n个第一权值的当前量化权值,wfijkn为卷积层i中输出通道j对应卷积核k中第n个第一权值。
步骤208,估计输出通道的各个第一权值的当前量化权值与各个第一权值之间的误差,如果误差大于设定的误差阈值,则说明该输出通道的当前量化阈值不符合要求,重新搜索量化阈值,作为该输出通道的当前权值量化阈值,并返回执行步骤207,直至误差小于设定的误差阈值,将最小误差所对应的量化阈值作为权值量化阈值系数。
在该步骤中,所述估计误差可以是,输出通道第一权值的当前量化权值与该第一权值的平均误差或累计误差,即,输出通道j的所有第一权值的当前量化权值与所有第一权值的累计误差或平均误差,数学表达为:
Figure BDA0002414388940000071
Figure BDA0002414388940000072
通过步骤207~208,可以得到各卷积层中每个输出通道的权值量化阈值系数。
步骤209,基于各个输出通道的权值量化阈值系数和累加结果,计算各个输出通道的第一幅值,
在该步骤中,对于任一卷积层i,将该卷积层输出通道j的累加结果乘以该输出通道的权值量化阈值系数的结果,作为该输出通道第一幅值;
数学表达为:
αij=Lij×Tij
其中,Tij为卷积层i中输出通道j的权值量化阈值系数,αij为卷积层i中输出通道j的第一幅值;
步骤210,基于各个卷积层中的各个输出通道的第一幅值,采用第二低比特来表示各个卷积层中的各个输出通道对应卷积核中的第一权值,得到第二权值;即,对每个第一权值进行第二低比特量化,以定点化第一权值。
为了保证卷积神经网络目标性能,按照低比特量化所导致的卷积神经网络目标性能变化的敏感程度来选择低比特量化方式。如果目标性能下降不多,说明该卷积层不敏感;如果量化为低比特时目标性能下降较多,说明该卷积层很敏感。
对于不敏感的卷积层,采用一个第二低比特来表达第一权值。具体为,将输出通道的第一幅值与第二低比特表达的权值量化阈值系数相乘;其中,低比特表达的权值量化阈值系数用低比特为bw表达的定点化数值为T1,T1的取值范围为
Figure BDA0002414388940000073
例如,当低比特bw为2时,T1的取值范围为[-2,1]。这样,则对于卷积层i中输出通道j对应的卷积核k中第n个第一权值wfijkn的低比特表达、即第二权值wijkn为:
wijkn=αijT1ij
其中,αi为卷积层i中输出通道j的第一幅值;T1ij为卷积层i中输出通道j的权值量化阈值系数的低比特表达,即定点化后的权值量化阈值系数;wijkn为定点数据。
对于敏感的卷积层,采用两个以上第二低比特基的组合来表达卷积层的浮点权值。具体为,将卷积层中两个以上输出通道作为组合输出通道,所示组合输出通道的权值量化阈值系数为组合权值量化阈值系数,将两个以上组合输出通道的第一幅值与两个以上组合权值量化阈值系数相乘,并将所有相乘的结果求和;其中,所述组合权值量化阈值系数采用两个以上第二低比特基的组合进行表达,分别为T1,T2,...Tm定点化数值,其中,m为第二低比特基组合的数量,各组合权值量化阈值系数的取值范围为
Figure BDA0002414388940000081
例如,当第二低比特bw为2时,各组合权值量化阈值系数的取值范围为[一2,1],比如各组合权值量化阈值系数的取值可以为-1,0,1这3个数,这时,m为3。对于卷积层i中输出通道j对应的卷积核k中第n个第一权值wfijkn的低比特表达、即第二权值wijkn为:
wijkn=αi1T1ij+…+αimTmij
其中,αim为卷积层i中J个输出通道中的第m个组合输出通道的第一幅值;Tmij为两个以上低比特基的组合中第m个组合低比特基所表达的卷积层i中输出通道j的组合权值量化阈值系数,即两个以上低比特基的组合定点化后的组合权值量化阈值系数;m为第二低比特基组合的数量,小于等于J;J为卷积层i中输出通道的总数;wijkn为定点数据。
步骤211,对各个输出通道对应的权值量化阈值系数进行量化,得到各个输出通道对应的量化后的权值量化阈值系数,即,系数量化值。
在该步骤中,对于不敏感的卷积层,对于任一输出通道j,将该输出通道对应的卷积核中的各个第二权值与第一幅值进行比较,大于该幅值,则该输出通道的权值量化阈值系数的第一系数量化值为定点化后的权值量化阈值系数本身;小于该幅值的负数,则该输出通道的权值量化阈值系数第一系数量化值为负的定点化后的权值量化阈值系数;取值在中间的,则输出通道的权值量化阈值系数被赋值为0,从而可以得到该输出通道对应的权值量化阈值系数的第一系数量化值。
数学表达为:
Figure BDA0002414388940000082
其中,wijkn为卷积层i中输出通道j对应卷积核k中第n个第二权值,
Figure BDA0002414388940000083
为卷积层i中输出通道j的权值量化阈值系数的第一系数量化值,即,输出通道j的第一系数量化值。
对于敏感的卷积层,对于任一卷积层中的任一组合输出通道m,将组合输出通道的第一幅值与该组合输出通道的组合权值量化阈值系数相乘的结果作为第二幅值,将该第二幅值与第二权值进行比较,如果第二权值大于该幅值,则将该组合权值量化阈值系数作为第二系数量化值,如果第二权值小于该幅值的负数,则负的组合权值量化阈值系数作为第二系数量化值,如果第二权值取值在中间,则将0为第二系数量化值,从而可以得到该组合输出通道对应的组合权值量化阈值系数的第二系数量化值。
数学表达为:
Figure BDA0002414388940000091
其中,wijkn为卷积层i中输出通道j对应卷积核k中第n个第二权值,
Figure BDA0002414388940000092
为卷积层i的J个输出通道中第m个组合输出通道的组合权值量化阈值系数的第二系数量化值,即,组合输出通道m的第二系数量化值。
例如,若组合权值量化阈值系数的取值范围为-1,0,1这三个数,则,对于任一组合权值量化阈值系数m的第二系数量化值为:
Figure BDA0002414388940000093
步骤212,根据各个输出通道的权值量化阈值系数的系数量化值和各个输出通道的第一幅值,计算各个输出通道的各个权值,得到第一量化权值,将各个输出通道的各个第一量化权值代入卷积神经网络,进行重训练。
在该步骤中,对于不敏感的卷积层,卷积层i中输出通道j对应的卷积核k中第n个第一权值的第一量化权值为:卷积层i中输出通道j的第一幅值与第一系数量化值的乘积;数学式表示为:
Figure BDA0002414388940000094
其中,
Figure BDA0002414388940000095
为卷积层i中输出通道j对应的卷积核k中第n个第一权值的第一量化权值,这意味着,对于不敏感卷积层,同一输出通道对应卷积核中各个第一权值的第一量化权值是相同的。
对于敏感的卷积层,卷积层i中输出通道j对应的卷积核k中第n个第一权值的第一量化权值为:各组合输出通道的第一幅值与其组合输出通道的第二系数量化值乘积之和;数学式表示为:
Figure BDA0002414388940000101
通过步骤209~212,原来保存为32比特的权值被量化为bw比特。该过程中的数据关系可参见图4所示,图4为卷积核权值量化过程中有关参数的关系的一种示意图。
步骤213,基于重训练后的卷积神经网络,在用于对卷积层的各个输出通道的输出结果按照每个通道进行归一化操作的归一化层,将输出结果分布归一化到0均值,或1方差,使之分布满足正态分布;对于卷积层各输出通道的第一幅值,将该卷积层所连接的归一化层的各通道参数作为乘数与所述第一幅值相乘,以更新第一幅值。
在经典的神经网络中,都会在卷积层之后进行归一化操作,即,将卷积层的输出通道按照每个通道将输出结果数据分布归一化到0均值,或1方差,使之分布满足正态分布,由于归一化层的参数也是各个输出通道独立,因此在本申请中将归一化层各个通道参数乘以到与该归一化层连接的卷积层各个输出通道的第一幅值之中。
对于不敏感卷积层,将输出通道的第一幅值与归一化层对应通道的通道参数相乘,得到更新后的第一幅值,上述更新第一幅值用数学式表达为:
αij≡αij×σij
其中,σij为与卷积层i连接的归一化层i中通道j的通道参数,上式表示将与卷积层i的输出连接的归一化层通道j的参数与卷积层i的输出通道j的第一幅值相乘,用相乘的结果更新该第一幅值。
对于敏感卷积层,将输出通道中每个组合输出通道的第一幅值分别与归一化层对应输出通道的通道参数相乘,得到更新后的组合输出通道的第一幅值,上述更新第一幅值用数学式表达为:
αim≡αim×σim
其中,σim表示归一化层i中与卷积层i中组合输出通道m对应的通道参数;上式表示:将卷积层i的输出通道J中每个组合输出通道的第一幅值,与,该卷积层i的输出连接的归一化层i中对应于该组合输出通道的通道参数,进行相乘,用相乘的结果更新该组合输出通道的第一幅值。
该步骤所进行的归一化参数融合,使得第一幅值被更新,以便去除归一化操作对网络性能的影响。
步骤214,通过动态量化算法,将神经网络中的各个非卷积功能层的输入激活值进行量化。
之前步骤解决了最耗存储空间和计算量的卷积层操作,将它变为ba比特激活值和bw比特权值之间的卷积运算,神经网络中,除了卷积层之外,还有相加层、池化层等非卷积功能层,这些非卷积功能层相比于卷积层运算来说占用的计算量非常少,为了保证这部分的准确度,当它们的输出激活值不作为卷积层的输入时,采用第三低比特以量化成较高精度,一般地,第三低比特是8比特,如果作为卷积层的输入则量化为第一低比特ba
量化过程与步骤202~204所述激活值的量化过程相同。具体为:
在前向计算出各个卷积层输入的第一激活值时,还可计算各个非卷积功能层输入的第三激活值,
对于任一非卷积功能层输入的各个第三激活值:
根据该非卷积功能层各个第三激活值分布,确定当前量化步长,例如,将各个第三激活值进行排序,然后按给定比例值选择当前量化步长,或者,搜索使得第三激活值的量化误差最小化的量化步长,作为当前量化步长;
根据当前量化步长和第三低比特,计算用于限制该非卷积功能层各个第三激活值取值范围的取值上限,在该步骤中,通过浮点量化步长计算公式,得到所述取值上限;所述浮点量化步长计算公式为:
Figure BDA0002414388940000112
其中,ηi为非卷积功能层i的第三激活值的取值上限,ri为非卷积功能层i第三激活值的当前量化步长,bpi为第三低比特,
根据所述取值上限,对该非卷积功能层每个第三激活值进行取值,得到该非卷积功能层各个第四激活值;在该步骤中,将第三激活值与取值上限进行比较,如果第三激活值大于取值上限,则将取值上限赋予该第三激活值,作为第四激活值,如果第三激活值小于等于取值上限,则将第三激活值保持不变,作为第四激活值;用数学式表达为:
Figure BDA0002414388940000111
将该非卷积功能层第四激活值进行量化,得到该非卷积功能层量化后的激活值;在该步骤中,按照浮点数量化公式,对第四激活值进行量化,所述浮点数量化公式为:
Figure BDA0002414388940000121
其中,
Figure BDA0002414388940000122
表示非卷积功能层i量化后的激活值,yfi为非卷积功能层i第三激活值,ri为非卷积功能层i第三激活值的当前量化步长,floor表示是对数值进行四舍五入。
步骤215,判断神经网络中激活函数层的激活函数是否为线性修正函数(ReLU,Rectified Linear Unit),若是,则将激活函数层ReLU激活函数输出的量化后的激活值整体减去一个偏移量,然后在该激活值输入的卷积层或者其他功能层中将该偏移量弥补回来,之后执行步骤216;否则,则直接执行步骤216。
具体地,由于ReLU函数输入至卷积层的数据取值范围是低比特无符号数,例如用于激活值量化的第一低比特数ba=4时,由于ReLU函数的输出特性,则定点化数值的取值范围
Figure BDA0002414388940000123
为了更有效地移植到硬件平台上,将低比特无符号数转化为低比特有符号数,即,确定一偏移量使得ReLU函数输出的量化后的激活值由无符号数转化为有符号数,且可用第一低比特有符号数来表达,按照偏移量将输入至ReLU函数的输入值做数据移位。例如,在ba=4时每个ReLU函数的输入值都减去8,使得取值范围变为[-8,7],按照ReLU函数的输出特性,ReLU函数的输出值也会减去8,这样能够保证用4比特有符号数来保存这些数据;为了避免ReLU函数将有符号数取值为0的影响,接着,删除各个ReLU函数层,并在被删除ReLU函数层的下一层中将偏移量弥补回来,例如当下一层为卷积层,那么可以将偏移量加在卷积层的偏置数据中,当下一层为相加层,则将偏移量加在该层的预设值之中。
在该步骤中,将ReLU激活函数的输入值和输出值由无符号数变为有符号数,并在下一层中将由无符号数变为有符号数所产生的偏移量弥补回来,这样在移植和部署时能够有效减少无符号数的资源消耗。
步骤216,将全网络参数定点化,
在该步骤中,将神经网络中各功能层之间传输的低比特量化数值转化为定点化数值,具体为,将上述步骤所得到的任一低比特量化数值,包括各卷积层量化后的输入激活值、敏感卷积层输出通道的第一幅值(归一化层融合参数更新后的)、以及权值量化阈值系数的第一系数量化值、从各不敏感卷积层输出通道中选定的组合输出通道的第一幅值(归一化层融合参数更新后的)、以及组合权值量化阈值系数的第二系数量化值、非卷积功能层量化后的输入激活值、激活函数为ReLU的激活函数层的输入值和/或输出值的有符号数、被删除的ReLU激活函数层量化后的输入值和/或输出值、各激活函数为ReLU的激活函数层的偏移量用低比特量化的数值,分别转化为定点化数值并保存,从而将当前神经网络中各层之间传输的低比特量化数值转化成定点化数值,实现了全网络参数定点化。
在上述步骤205、212中,在卷积层输入激活值量化后、卷积层权值量化后,分别进行了神经网络重训练,这是因为,对于卷积层而言,可理解为激活值与卷积核权值做乘法,由于激活值进行了量化,例如数值a从1.2量化成了1,这样一个数b与量化后a做乘法时就和量化之前的结果不一致了,因此需要通过重训练,慢慢更新改变a和b的数值,让a与b的乘法结果接近没有量化之前的结果,从而有利于保证神经网络的目标性能。所应理解的是,也可以卷积层输入激活值量化后、或卷积层权值量化后进行重训练,例如,可以不执行步骤205,而只执行步骤212,以仅在步骤212时进行重训练,这时,或者,执行步骤205,而不执行步骤212。
本实施例使得最终定点化神经网络中激活值和卷积核权值都用低比特定点化表示,从而可以方便移植到嵌入式平台、专用集成电路之中;卷积层输入激活值和卷积核权值定点化为低比特,计算量和存储空间被极大的压缩;针对量化敏感的卷积层权值分配更多的计算量,不敏感的层分配较少的计算量,实现了卷积核权值非均匀量化,能够有效减少网络量化性能误差,提升神经网络的目标性能;采用分阶段量化的方式,不需要逐层计算或者重复执行计算,同时能够保证激活值、卷积核权值两个阶段量化性能误差低,并可根据神经网络目标性能需求灵活地选择需定点化功能层参数;在定点化过程中,针对ReLU激活函数,将它的范围由无符号变为有符号,并在其下一个功能层中将由无符号变为有符号所产生的偏移量弥补回来,有利于在移植和部署时能够有效减少无符号数的资源消耗;在各个卷积层输入激活值量化后、各个卷积层权值量化后进行神经网络重训练,避免了逐层地训练方式所带来的误差累积,实现了端到端的重训练,有效的减少了整个网络的误差,保证了量化后的网络仍然具有足够的目标性能。
实施例二
参见图5所示,图5为本申请实施例二的卷积神经网络的定点化方法的一种流程图。在本实施例中,将卷积层的输入激活值用第一低比特进行量化,进一步地,将除卷积层之外的非卷积功能层的输入激活值用第三低比特进行量化。具体包括,
步骤501,向卷积神经网络输入训练数据,前向计算出各个激活函数层输出的第一激活值,即,激活函数层中至少一个以上激活函数输出的激活值,也就是输入卷积层的各个激活值。
这时,第一激活值、第三激活值是用浮点型数据表示的,卷积神经网络中的参数以浮点型数据来保存。
步骤502,根据当前各激活函数层输出的第一激活值分布,确定各激活函数层输出的第一激活值的当前量化步长。
在该步骤中,对于任一激活函数层,分析该激活函数层输出的第一激活值分布,例如,对该激活函数层输出的第一激活值分布进行排序,然后按给定比例值选择一个量化步长,作为该激活函数层输出的第一激活值当前量化步长。
较佳地,对于任一激活函数层,还可以通过搜索的方式搜到一个量化步长,使得该激活函数层输出的第一激活值的量化误差最小化。
这样,可以得到各激活函数层输出的第一激活值浮点数的当前量化步长。
步骤503,对于各个激活函数层输出的第一激活值,根据上一步骤确定的各个激活函数层当前量化步长,求解第一激活值的取值上限,并按照求解的取值上限限制第一激活值的取值范围,得到各个激活函数层的第二激活值。
在该步骤中,对于任一激活函数层输出的第一激活值,根据浮点量化步长计算公式
Figure BDA0002414388940000141
可以得到该激活函数层输出的第一激活值的取值上限β,其中,s为当前量化步长,用于激活值量化的第一比特数为ba,较佳地,ba为低比特,即8比特以内,较佳地,ba通常情况下可以取4。
将各个第一激活值与求解得到的取值上限进行比较,如果第一激活值大于所述取值上限,则将该第一激活值取值为所述取值上限,否则,保持第一激活值不变。由此,得到了该激活函数层的被限制取值范围的第二激活值。
数学表达为:
Figure BDA0002414388940000142
其中,下标i表示激活函数层i,βi表示激活函数层i输出的第一激活值的取值上限,si表示激活函数层i输出的第一激活值的当前量化步长,bai表示用于激活函数层i输出的激活值的量化比特数,较佳地,用于各激活函数层的量化比特数相同。
Figure BDA0002414388940000143
其中,xfi表示激活函数层i输出的第二激活值,该第二激活值为浮点数。
步骤504,将各激活函数层第二激活值进行量化,得到量化后的激活值。
在该步骤中,对于任一激活函数层的第二激活值,按照浮点数量化公式
Figure BDA0002414388940000151
Figure BDA0002414388940000152
得到量化后的激活值,其中floor操作是对该数值进行四舍五入,xf为第二激活值,ba比特的定点数值的表达范围为
Figure BDA0002414388940000153
因此量化后的激活值限制在这个范围之中。
数学表达为:
Figure BDA0002414388940000154
其中,
Figure BDA0002414388940000155
表示激活函数层i量化后的激活值,xfi为激活函数层i第二激活值。
步骤505,进一步地,在步骤501前向计算出各个激活函数层输出的第一激活值时,还可前向计算出输入各个非卷积功能层的第三激活函数通过动态量化算法,将神经网络中的各个非卷积功能层的输入激活值进行量化。
神经网络中,除了卷积层之外,还有相加层、池化层等非卷积功能层,这些非卷积功能层相比于卷积层运算来说占用的计算量非常少,为了保证这部分的准确度,当它们的输出激活值不作为卷积层的输入时,采用第三低比特以量化成较高精度,一般地,第三低比特是8比特,如果作为卷积层的输入则量化为第一低比特ba
量化过程与步骤502~504所述激活值的量化过程相同。具体为:
对于任一非卷积功能层输入的各个第三激活值:
根据该非卷积功能层各个第三激活值分布,确定当前量化步长,例如,将各个第三激活值进行排序,然后按给定比例值选择当前量化步长,或者,搜索使得第三激活值的量化误差最小化的量化步长,作为当前量化步长;
根据当前量化步长和第三低比特,计算用于限制该非卷积功能层各个第三激活值取值范围的取值上限,在该步骤中,通过浮点量化步长计算公式,得到所述取值上限;所述浮点量化步长计算公式为:
Figure BDA0002414388940000156
其中,ηi为非卷积功能层i的第三激活值的取值上限,ri为非卷积功能层i第三激活值的当前量化步长,bpi为第三低比特,
根据所述取值上限,对该非卷积功能层每个第三激活值进行取值,得到该非卷积功能层各个第四激活值;在该步骤中,将第三激活值与取值上限进行比较,如果第三激活值大于取值上限,则将取值上限赋予该第三激活值,作为第四激活值,如果第三激活值小于等于取值上限,则将第三激活值保持不变,作为第四激活值;用数学式表达为:
Figure BDA0002414388940000161
将该非卷积功能层第四激活值进行量化,得到该非卷积功能层量化后的激活值;在该步骤中,按照浮点数量化公式,对第四激活值进行量化,所述浮点数量化公式为:
Figure BDA0002414388940000162
其中,
Figure BDA0002414388940000163
表示非卷积功能层i量化后的激活值,yfi为非卷积功能层i第三激活值,ri为非卷积功能层i第三激活值的当前量化步长,floor表示是对数值进行四舍五入。
步骤506,基于当前卷积神经网络,重新进行训练,其中,当前卷积神经网络中的各个功能层输入的激活值为量化后的激活值。
该步骤将激活值的取值上限β、η作为一个可训练迭代更新的参数,随着整个网络的训练进行更新,直至收敛,这样,量化步长s、r也随着更新。
步骤507,判断神经网络中激活函数层的激活函数是否为ReLU,若是,则将激活函数层ReLU激活函数输出的量化后的激活值整体减去一个偏移量,然后在该激活值输入的卷积层或者其他功能层中将该偏移量弥补回来,之后执行步骤508;否则,则直接执行步骤508。
具体地,由于ReLU函数输入至卷积层的数据取值范围是低比特无符号数,例如用于激活值量化的第一低比特数ba=4时,由于ReLU函数的输出特性,则定点化数值的取值范围
Figure BDA0002414388940000164
为了更有效地移植到硬件平台上,将低比特无符号数转化为低比特有符号数,即,确定一偏移量使得ReLU函数输出的量化后的激活值由无符号数转化为有符号数,且可用第一低比特有符号数来表达,按照偏移量将输入至ReLU函数的输入值做数据移位。例如,在ba=4时每个ReLU函数的输入值都减去8,使得取值范围变为[-8,7],按照ReLU函数的输出特性,ReLU函数的输出值也会减去8,这样能够保证用4比特有符号数来保存这些数据;为了避免ReLU函数将有符号数取值为0的影响,接着,删除各个ReLU函数层,并在被删除ReLU函数层的下一层中将偏移量弥补回来,例如当下一层为卷积层,那么可以将偏移量加在卷积层的偏置数据中,当下一层为相加层,则将偏移量加在该层的预设值之中。
在该步骤中,将ReLU激活函数的输入值和输出值由无符号数变为有符号数,并在下一层中将由无符号数变为有符号数所产生的偏移量弥补回来,这样在移植和部署时能够有效减少无符号数的资源消耗。
步骤508,基于量化结果,将相关参数定点化,
在该步骤中,将上述步骤所得到的任一低比特量化数值,包括各卷积层量化后的输入激活值、非卷积功能层量化后的输入激活值、激活函数为ReLU的激活函数层的输入值和/或输出值的有符号数、被删除的ReLU激活函数层量化后的输入值和/或输出值、各激活函数为ReLU的激活函数层的偏移量用低比特量化的数值,分别转化为定点化数值并保存,从而将当前神经网络中各层之间传输激活值的低比特量化数值转化成定点化数值,实现了网络参数定点化。
所应理解的是,在上述步骤中,步骤506所述重训练也可以仅在卷积层输入激活值量化后进行,即,在步骤504之后505步骤之前,将激活值的取值上限β作为一个可训练迭代更新的参数,随着整个网络的训练进行更新,直至收敛,这样,量化步长s也随着更新;还可以分别在卷积层输入激活值量化后、非卷积功能层输入激活值量化后进行神经网络重训练。
本申请实施例将卷积层的输入激活值用低比特定点化,压缩了计算量和存储空间,在定点化过程中,针对ReLU激活函数,将它的范围由无符号变为有符号,并在其下一个功能层中将由无符号变为有符号所产生的偏移量弥补回来,有利于在移植和部署时能够有效减少无符号数的资源消耗;在卷积层输入激活值量化后和/或非卷积功能层输入激活值量化后进行神经网络重训练,有效的减少了整个网络的误差,保证了量化后的网络仍然具有足够的目标性能。
实施例三
参见图6所示,图6为本申请实施例三的卷积神经网络的定点化方法的一种流程图。在本实施例中,将卷积层中卷积核的权值用第二低比特进行量化。
步骤601,基于当前卷积神经网络获取各个卷积层中每个卷积核中的每个第一权值,该权值为浮点数据;对于各个卷积层的每个输出通道,累加该输出通道对应卷积核的各个第一权值的平方数,得到输出通道的第一权值平方数的累加结果。基于所述累加结果,在指定的阈值范围中进行搜索一个量化阈值,作为该输出通道的当前权值量化阈值。
在该步骤中,对于任一卷积层i的任一输出通道j,计算输出通道j对应的各卷积核k中每个第一权值的平方,得到输出通道j对应的各个卷积核中每个第一权值的平方数,累加该输出通道所有卷积核中所有第一权值的平方数,得到输出通道j的累加结果;
其中,累加输出通道j的所有卷积核中所有第一权值的平方数数学表达为:
Figure BDA0002414388940000181
其中,Lij表示卷积层i输出通道j的累加结果,wfijkn为卷积层i中输出通道j对应卷积核k中第n个第一权值。
基于该卷积层该输出通道累加结果Lij,在指定的阈值范围中进行搜索一个量化阈值,作为卷积层i输出通道j的当前权值量化阈值。
通过该步骤,可以获得各卷积层中每个输出通道的当前权值量化阈值。
步骤602,基于各个输出通道的当前权值量化阈值,对各个输出通道对应的卷积核中的各个第一权值进行量化,得到各个输出通道对应的卷积核中的各个第一权值的当前量化权值。
在该步骤中,对于任一卷积层i,将该卷积层输出通道j的累加结果乘以该输出通道的当前权值量化阈值的结果,作为该输出通道当前幅值;将该输出通道对应的卷积核中的各个第一权值与所述当前幅值进行比较,大于该幅值则第一权值被赋值为该幅值,小于该幅值的负数则第一权值赋值为负的幅值,取值在中间的第一权值赋值为0,从而可以得到该输出通道的当前量化权值。
数学表达为:
λij=Lij×tij
其中,tij为卷积层i中输出通道j的当前权值量化阈值,λij为卷积层i中输出通道j的当前幅值;
Figure BDA0002414388940000182
其中,
Figure BDA0002414388940000183
为卷积层i中输出通道j对应卷积核k的第n个第一权值的当前量化权值,wfijkn为卷积层i中输出通道j对应卷积核k中第n个第一权值。
步骤603,估计输出通道的各个第一权值的当前量化权值与各个第一权值之间的误差,如果误差大于设定的误差阈值,则说明该输出通道的当前量化阈值不符合要求,重新搜索量化阈值,作为该输出通道的当前权值量化阈值,并返回执行步骤601,直至误差小于设定的误差阈值,将最小误差所对应的量化阈值作为权值量化阈值系数。
在该步骤中,所述估计误差可以是,输出通道第一权值的当前量化权值与该第一权值的平均误差或累计误差,即,输出通道j的所有第一权值的当前量化权值与所有第一权值的累计误差或平均误差,数学表达为:
Figure BDA0002414388940000191
Figure BDA0002414388940000192
通过步骤601~603,可以得到各卷积层中每个输出通道的权值量化阈值系数。
步骤604,基于各个输出通道的权值量化阈值系数和累加结果,计算各个输出通道的第一幅值,
在该步骤中,对于任一卷积层i,将该卷积层输出通道j的累加结果乘以该输出通道的权值量化阈值系数的结果,作为该输出通道第一幅值;
数学表达为:
αij=Lij×Tij
其中,Tij为卷积层i中输出通道j的权值量化阈值系数,αij为卷积层i中输出通道j的第一幅值;
步骤605,基于各个卷积层中的各个输出通道的第一幅值,采用第二低比特来表示各个卷积层中的各个输出通道对应卷积核中的第一权值,得到第二权值;即,对每个第一权值进行第二低比特量化,以定点化第一权值。
为了保证卷积神经网络目标性能,按照低比特量化所导致的卷积神经网络目标性能变化的敏感程度来选择低比特量化方式。如果目标性能下降不多,说明该卷积层不敏感;如果量化为低比特时目标性能下降较多,说明该卷积层很敏感。
对于不敏感的卷积层,采用一个第二低比特来表达第一权值。对于卷积层i中输出通道j对应的卷积核k中第n个第一权值wfijkn的低比特表达、即第二权值wijkn为:
wijkn=αijT1ij
其中,αi为卷积层i中输出通道j的第一幅值;T1ij为卷积层i中输出通道j的权值量化阈值系数的低比特表达,即定点化后的权值量化阈值系数;wijkn为定点数据。
对于敏感的卷积层,采用两个以上第二低比特基的组合来表达卷积层的浮点权值。对于卷积层i中输出通道j对应的卷积核k中第n个第一权值wfijkn的低比特表达、即第二权值wijkn为:
wijkn=αi1T1ij+…+αimTmij
其中,αim为卷积层i中J个输出通道中的第m个组合输出通道的第一幅值;Tmij为两个以上低比特基的组合中第m个组合低比特基所表达的卷积层i中输出通道j的组合权值量化阈值系数,即两个以上低比特基的组合定点化后的组合权值量化阈值系数;m为第二低比特基组合的数量,小于等于J;J为卷积层i中输出通道的总数;wijkn为定点数据。
步骤606,对各个输出通道对应的权值量化阈值系数进行量化,得到各个输出通道对应的量化后的权值量化阈值系数,即得到系数量化值。
在该步骤中,对于不敏感的卷积层,对于任一输出通道j,将该输出通道对应的卷积核中的各个第二权值与第一幅值进行比较,大于该幅值,则该输出通道的权值量化阈值系数的第一系数量化值为定点化后的权值量化阈值系数本身;小于该幅值的负数,则该输出通道的权值量化阈值系数第一系数量化值为负的定点化后的权值量化阈值系数;取值在中间的,则输出通道的权值量化阈值系数被赋值为0,从而可以得到该输出通道对应的权值量化阈值系数的第一系数量化值。
数学表达为:
Figure BDA0002414388940000201
其中,wijkn为卷积层i中输出通道j对应卷积核k中第n个第二权值,
Figure BDA0002414388940000202
为卷积层i中输出通道j的权值量化阈值系数的第一系数量化值,即,输出通道j的第一系数量化值。
对于敏感的卷积层,对于任一卷积层中的任一组合输出通道m,将组合输出通道的第一幅值与该组合输出通道的组合权值量化阈值系数相乘的结果作为第二幅值,将该第二幅值与第二权值进行比较,如果第二权值大于该幅值,则将该组合权值量化阈值系数作为第二系数量化值,如果第二权值小于该幅值的负数,则负的组合权值量化阈值系数作为第二系数量化值,如果第二权值取值在中间,则将0为第二系数量化值,从而可以得到该组合输出通道对应的组合权值量化阈值系数的第二系数量化值。
数学表达为:
Figure BDA0002414388940000211
其中,wijkn为卷积层i中输出通道j对应卷积核k中第n个第二权值,
Figure BDA0002414388940000212
为卷积层i的J个输出通道中第m个组合输出通道的组合权值量化阈值系数的第二系数量化值,即,组合输出通道m的第二系数量化值。
例如,若组合权值量化阈值系数的取值范围为-1,0,1这三个数,则,对于任一组合权值量化阈值系数m的第二系数量化值为:
Figure BDA0002414388940000213
步骤607,根据各个输出通道的权值量化阈值系数的系数量化值和各个输出通道的第一幅值,计算各个输出通道的各个权值,得到第一量化权值,将各个输出通道的各个第一量化权值代入卷积神经网络,进行重训练。
在该步骤中,对于不敏感的卷积层,卷积层i中输出通道j对应的卷积核k中第n个第一权值的第一量化权值为:卷积层i中输出通道j的第一幅值与第一系数量化值的乘积;数学式表示为:
Figure BDA0002414388940000214
其中,
Figure BDA0002414388940000215
为卷积层i中输出通道j对应的卷积核k中第n个第一权值的第一量化权值,这意味着,对于不敏感卷积层,同一输出通道对应卷积核中各个第一权值的第一量化权值是相同的。
对于敏感的卷积层,卷积层i中输出通道j对应的卷积核k中第n个第一权值的第一量化权值为:各组合输出通道的第一幅值与其组合输出通道的第二系数量化值乘积之和;数学式表示为:
Figure BDA0002414388940000216
通过步骤604~607,原来保存为32比特的权值被量化为bw比特。
步骤608,基于重训练后的卷积神经网络,在用于对卷积层的各个输出通道的输出结果按照每个通道进行归一化操作的归一化层,将输出结果分布归一化到0均值,或1方差,使之分布满足正态分布;对于卷积层各输出通道的第一幅值,将该卷积层所连接的归一化层的各通道参数作为乘数与所述第一幅值相乘,以更新第一幅值。
在经典的神经网络中,都会在卷积层之后进行归一化操作,即,将卷积层的输出通道按照每个通道将输出结果数据分布归一化到0均值,或1方差,使之分布满足正态分布,由于归一化层的参数也是各个输出通道独立,因此在本申请中将归一化层各个通道参数乘以到与该归一化层连接的卷积层各个输出通道的第一幅值之中。
对于不敏感卷积层,将输出通道的第一幅值与归一化层对应通道的通道参数相乘,得到更新后的第一幅值,上述更新第一幅值用数学式表达为:
αij≡αij×σij
其中,σij为与卷积层i连接的归一化层i中通道j的通道参数,上式表示将与卷积层i的输出连接的归一化层通道j的参数与卷积层i的输出通道j的第一幅值相乘,用相乘的结果更新该第一幅值。
对于敏感卷积层,将输出通道中每个组合输出通道的第一幅值分别与归一化层对应输出通道的通道参数相乘,得到更新后的组合输出通道的第一幅值,上述更新第一幅值用数学式表达为:
αim≡αim×σim
其中,σim表示归一化层i中与卷积层i中组合输出通道m对应的通道参数;上式表示:将卷积层i的输出通道J中每个组合输出通道的第一幅值,与,该卷积层i的输出连接的归一化层i中对应于该组合输出通道的通道参数,进行相乘,用相乘的结果更新该组合输出通道的第一幅值。
该步骤所进行的归一化参数融合,使得第一幅值被更新,以便去除归一化操作对网络性能的影响。
步骤609基于更新后的第一幅值、以及权值量化阈值系数的系数量化值,将卷积层中卷积核参数定点化,
在该步骤中,将神经网络中各卷积层之间传输的低比特量化数值转化为定点化数值,具体为,将上述步骤所得到的任一低比特量化数值,包括敏感卷积层输出通道的归一化层参数融合后的第一幅值、以及第一系数量化值、不敏感卷积层输出通道中选定的组合输出通道归一化层参数融合后的第一幅值、以及第二系数量化值用低比特量化的数值,分别转化为定点化数值并保存,从而将当前神经网络中各卷积层之间传输的低比特量化数值转化成定点化数值,实现了网络卷积层参数定点化。
所应理解的是,在本实施例中,还可以对如同实施例二中的步骤07一样,将ReLU激活函数的输入值和输出值由无符号数变为有符号数,并在下一层中将由无符号数变为有符号数所产生的偏移量弥补回来,以在移植和部署时能够有效减少无符号数的资源消耗。
本实施例使得最终定点化神经网络中卷积核权值都用低比特定点化表示,从而可以方便移植到嵌入式平台、专用集成电路之中;卷积核权值定点化为低比特,压缩了计算量和存储空间;针对量化敏感的卷积层权值分配更多的计算量,不敏感的层分配较少的计算量,实现了卷积核权值非均匀量化,能够有效减少网络量化性能误差,提升神经网络的目标性能;采用分阶段量化的方式,不需要逐层计算或者重复执行计算,能够保证各功能层量化性能误差低;卷积层权值量化后进行神经网络重训练,有效地减少了整个网络的误差,保了量化后的网络仍然具有足够的目标性能。
参见图7所示,图7为本申请实施例的神经网络定点化装置的一种示意图。该装置包括,
卷积层输入激活值量化模块,对神经网络中的卷积层输入激活值进行第一低比特量化,和/或
卷积层权值量化模块,对卷积层中卷积核权值进行第二低比特量化,和/或
非卷积功能层输入激活值量化模块,对神经网络中除了卷积层之外的非卷积功能层,将非卷积功能层的输入激活值进行第三低比特量化,以及
重训练模块,在卷积层输入激活值进行第一低比特量化之后,和/或对卷积层中卷积核权值进行第二低比特量化之后,和/或对非卷积功能层的输入激活值进行第三低比特量化之后,基于当前低比特量化后的神经网络,进行重训练,
定点化模块,基于神经网络中各层输入激活值的低比特量化结果、和/或卷积层中卷积核权值的低比特量化结果、和/或非卷积功能层的输入激活值进行第三低比特量化的结果,进行定点化;
加载模块,将定点化后的神经网络进行加载。例如,加载至FPGA、DSP、固件、或者嵌入式系统中等硬件中。
其中,所述第一低比特、第二低比特、第三低比特在1比特至8比特以内。参见图8所示,图8为本申请实施例低比特定点化的神经网络应用于基于车载摄像头目标检测的一种示意图。多个车载环视摄像头进行拍摄,获取当前路况的图像;在基于FPGA芯片实现的自动泊车终端设备,基于低比特定点化的神经网络对当前路况图像进行神经网络的计算,以识别当前路况中行人、车辆等相关检测目标;根据当前目标检测结果控制汽车,包括且不限于判断汽车是否进行加减速或者转动方向盘。本申请应用实例在该应用场景中硬件内存消耗大大降低,硬件带宽能达到多倍以上加速比。
参见图9所示,图9是本申请实施例低比特定点化的神经网络应用于基于门禁摄像图像识别的一种示意图。门禁摄像头拍摄待识别目标以获取待识别目标图像,在基于DSP芯片实现的识别终端设备,基于低比特定点化的神经网络对当前图像进行神经网络的计算,根据网络计算结果得到当前图像的识别特征,按照识别特征与库中已有特征进行比对,根据比对结果判断人脸识别结果是否在库中。本申请实例在该应用场景中硬件内存消耗降低,硬件带宽能达到多倍以上加速比。
所应理解的是,采用本申请所述定点化的神经网络不限于上述的应用,还可应用于包括且不限于基于图像的目标行人检测、姿态检测、路况检测、以及视频分析等,通过将定点化的神经网络加载至用于实现应用的硬件中,从而使得各种应用需要的数据通过神经网络来处理,以适应设备的小型化,减少硬件资源的消耗。例如,将低比特定点化的神经网络加载到如下硬件中的至少一个中:
摄像机、车载智能系统、扫地机器人、载货机器人、无人机、无人售货机等。
本申请实施例还提供了一种计算机可读存储介质,所述存储介质内存储有计算机程序,所述计算机程序被处理器执行时上述实施例的各个步骤。
存储器可以包括随机存取存储器(Random Access Memory,RAM),也可以包括非易失性存储器(Non-Volatile Memory,NVM),例如至少一个磁盘存储器。可选的,存储器还可以是至少一个位于远离前述处理器的存储装置。
上述的处理器可以是通用处理器,包括中央处理器(Central Processing Unit,CPU)、网络处理器(Network Processor,NP)等;还可以是数字信号处理器(DigitalSignalProcessing,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
对于装置/网络侧设备/存储介质实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语″包括″、″包含″或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句″包括一个......″限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
以上所述仅为本申请的较佳实施例而已,并不用以限制本申请,凡在本申请的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本申请保护的范围之内。

Claims (10)

1.一种神经网络的定点化方法,其特征在于,该方法包括,
对神经网络进行至少如下之一低比特量化:
对神经网络中的卷积层输入激活值进行第一低比特量化,
对卷积层中卷积核权值进行第二低比特量化,
对神经网络中除了卷积层之外的非卷积功能层,将非卷积功能层的输入激活值进行第三低比特量化;
在进行所述任意低比特量化之后,基于当前低比特量化后的神经网络,进行重训练,
基于重训练后的神经网络中各低比特量化结果,进行定点化;
加载定点化后的神经网络;
其中,所述第一低比特、第二低比特、第三低比特均在1比特至8比特以内。
2.如权利要求1所述的定点化方法,其特征在于,所述对神经网络中的卷积层输入激活值进行第一低比特量化包括,
向神经网络输入训练数据,计算出各个卷积层输入的第一激活值;
对于任一卷积层的各个第一激活值:
根据该卷积层各个第一激活值分布,确定当前量化步长;
根据当前量化步长和第一低比特,计算用于限制该卷积层各个第一激活值取值范围的取值上限,
根据所述取值上限,对该卷积层每个第一激活值进行取值,得到该卷积层各个第二激活值,
将该卷积层第二激活值进行量化,得到该卷积层量化后的激活值。
3.如权利要求1所述的定点化方法,其特征在于,所述对卷积层中卷积核权值进行第二低比特量化包括,
对于任一卷积层中任一输出通道:
获取该输出通道对应卷积核的各个第一权值,
根据各个权值分布,确定该输出通道的当前权值量化阈值,
基于当前权值量化阈值,获取该输出通道各个第一权值的当前量化权值,估计当前量化权值与第一权值的误差,根据误差调整所述当前量化阈值,直至当前量化权值与各个第一权值的误差达到最小,将最小误差所对应的量化阈值作为该输出通道的权值量化阈值系数;
基于权值量化阈值系数,计算该输出通道的第一幅值;
基于该输出通道的第一幅值,采用第二低比特进行第一权值的低比特表达,得到第二权值;根据第二权值与该输出通道的第一幅值的比较结果,对该输出通道的权值量化阈值系数进行量化,得到该输出通道权值量化阈值系数的系数量化值。
4.如权利要求3所述的定点化方法,其特征在于,所述根据各个权值分布,确定该输出通道的当前量化阈值,包括,
将该输出通道对应卷积核中的各个第一权值的平方进行累加,得到该输出通道的累加结果,基于该输出通道的累加结果,在指定的阈值范围中确定当前权值量化阈值;
所述基于当前权值量化阈值,获取该输出通道的当前量化权值,包括,
计算该输出通道的累加结果与该输出通道当前权值量化阈值的乘积,得到该输出通道当前幅值,
将该输出通道对应的卷积核中的各个第一权值与当前幅值进行比较,
如果第一权值大于当前幅值,则将该幅值赋值给第一权值,得到当前量化权值;
如果第一权值小于负的当前幅值,则将负的幅值赋值给第一权值,得到当前量化权值;
如果第一权值大于等于负的当前幅值、且小于等于当前幅值,则将第一权值赋值为0,得到当前量化权值;
所述估计当前量化权值与第一权值的误差,根据误差调整所述当前量化阈值,包括,
计算该输出通道第一权值的当前量化权值与第一权值平均误差或累计误差,如果误差大于设定的误差范围,则重新执行所述根据各个权值分布,确定该输出通道的当前权值量化阈值的步骤;
所述基于权值量化阈值系数,计算该输出通道的第一幅值,包括,计算该输出通道的累加结果与该输出通道权值量化阈值系数的乘积,得到第一幅值。
5.如权利要求4所述的定点化方法,其特征在于,所述基于该输出通道的幅值,采用第二低比特进行第一权值的低比特表达,包括,对于不敏感的卷积层,采用一个第二低比特基表达第一权值;对于敏感卷积层,采用两个以上第二比特基表达第一权值;
所述在卷积层输入激活值进行第一低比特量化之后,和/或对卷积层中卷积核权值进行第二低比特量化之后,基于当前低比特量化后的神经网络,进行重训练,包括,
对任一卷积层:
根据该卷积层中各个输出通道的权值量化阈值系数的系数量化值和各个输出通道的第一幅值,计算各个输出通道的各个权值,得到第一量化权值,将各个输出通道的各个第一量化权值代入神经网络,进行重训练。
6.如权利要求5所述的定点化方法,其特征在于,所述对于不敏感的卷积层,采用一个第二低比特基表达第一权值,包括,
根据第二低比特确定的定点化数值取值范围,确定权值量化阈值系数的一个定点化数值,计算该定点化数值与第一幅值的乘积,得到第二权值;
所述根据第二权值与该输出通道的第一幅值的比较结果,对该输出通道的权值量化阈值系数进行量化,得到该输出通道权值量化阈值系数的系数量化值,包括,
将第二权值与该输出通道的第一幅值进行比较,
如果第二权值大于第一幅值,则将权值量化阈值系数的定点化数值本身作为该权值量化阈值系数的第一系数量化值;
如果第二权值小于负的第一幅值,则将负的权值量化阈值系数的定点化数值作为该权值量化阈值系数的第一系数量化值;
如果第二权值大于等于负的第一幅值、且小于等于第一幅值,则将0作为该权值量化阈值系数的第一系数量化值;
所述根据该卷积层中各个输出通道的权值量化阈值系数的系数量化值和各个输出通道的第一幅值,计算各个输出通道的各个权值,得到第一量化权值,包括,
对于任一卷积层中的任一输出通道:
将该输出通道的第一幅值与该输出通道权值量化阈值系数的第一系数量化值相乘,得到第一量化权值,作为该输出通道对应卷积核中各个第一权值的量化结果。
7.如权利要求6所述的定点化方法,其特征在于,对于敏感卷积层,采用两个以上第二比特基表达第一权值,包括,
根据第二低比特确定的定点化数值取值范围,确定权值量化阈值系数的两个以上定点化数值,得到组合权值量化阈值系数;
从该卷积层中选出两个以上组合输出通道;其中,组合输出通道的数量与组合权值量化阈值系数的数量相同;
将一组合输出通道的第一幅值与一组合权值量化阈值系数相乘,并将所有相乘的结果相加,得到第二权值;
所述根据第二权值与该输出通道的第一幅值的比较结果,对该输出通道的权值量化阈值系数进行量化,得到该输出通道权值量化阈值系数的系数量化值,包括,
对于任一卷积层中的任一组合输出通道:
将组合输出通道的第一幅值与该组合输出通道的组合权值量化阈值系数相乘的结果作为第二幅值,
将第二权值与该输出通道的第二幅值进行比较,
如果第二权值大于第二幅值,则将组合权值量化阈值系数的定点化数值本身作为该组合权值量化阈值系数的第二系数量化值;
如果第二权值小于负的第二幅值,则将负的组合权值量化阈值系数的定点化数值作为该组合权值量化阈值系数的第二系数量化值;
如果第二权值大于等于负的第二幅值、且小于等于第二幅值,则将0作为该组合权值量化阈值系数的第二系数量化值;
所述根据该卷积层中各个输出通道的权值量化阈值系数的系数量化值和各个输出通道的第二幅值,计算各个输出通道的各个权值,得到第一量化权值,包括,
对于任一卷积层:
计算各组合输出通道的第一幅值与其组合输出通道的第二系数量化值乘积之和,得到第一量化权值,作为该输出通道对应卷积核中各个第一权值的量化结果。
8.如权利要求1所述的定点化方法,其特征在于,所述对神经网络中除了卷积层之外的非卷积功能层,将非卷积功能层的输入激活值进行第三低比特量化,包括,
获取各个非卷积功能层输入的第三激活值;
对于任一非卷积功能层输入的各个第三激活值:
根据该非卷积功能层各个第三激活值分布,确定当前量化步长;
根据当前量化步长和第三低比特,计算用于限制该卷积层各个第三激活值取值范围的取值上限,
根据所述取值上限,对该非卷积功能层每个第三激活值进行取值,得到该卷积层各个第四激活值,
将该卷积层第四激活值进行量化,得到该非卷积功能层量化后的激活值。
9.如权利要求1所述的定点化方法,其特征在于,所述对神经网络中除了卷积层之外的非卷积功能层,将非卷积功能层的输入激活值进行第三低比特量化之后,进一步包括,
判断神经网络中激活函数层的激活函数是否为线性修正函数ReLU函数,
若是,则将该ReLU函数输出的量化后的激活值由无符号数转化为有符号数,然后删除该ReLU函数,在该激活值所输入的功能层中将该偏移量弥补,之后,执行所述基于重训练后的神经网络中各低比特量化结果,进行定点化的步骤,
否则,直接执行所述基于重训练后的神经网络中各低比特量化结果,进行定点化的步骤。
10.一种神经网络的定点化装置,其特征在于,该装置包括,
至少如下之一用于对神经网络进行低比特量化的量化模块:
卷积层输入激活值量化模块,对神经网络中的卷积层输入激活值进行第一低比特量化,和/或
卷积层权值量化模块,对卷积层中卷积核权值进行第二低比特量化,和/或
非卷积功能层输入激活值量化模块,对神经网络中除了卷积层之外的非卷积功能层,将非卷积功能层的输入激活值进行第三低比特量化;
重训练模块,在任意所述量化模块进行低比特量化之后,基于当前低比特量化后的神经网络,进行重训练,
定点化模块,基于重训练的神经网络中各低比特量化结果,进行定点化;
加载模块,将定点化后的神经网络进行加载;
其中,所述第一低比特、第二低比特、第三低比特均在1比特至8比特以内。
CN202010186495.7A 2020-03-17 2020-03-17 一种神经网络的定点化方法、装置 Active CN113408715B (zh)

Priority Applications (3)

Application Number Priority Date Filing Date Title
CN202010186495.7A CN113408715B (zh) 2020-03-17 2020-03-17 一种神经网络的定点化方法、装置
PCT/CN2021/079815 WO2021185125A1 (zh) 2020-03-17 2021-03-09 一种神经网络的定点化方法、装置
EP21772488.9A EP4123513A4 (en) 2020-03-17 2021-03-09 FIXED POINT METHOD AND DEVICE FOR NEURAL NETWORK

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010186495.7A CN113408715B (zh) 2020-03-17 2020-03-17 一种神经网络的定点化方法、装置

Publications (2)

Publication Number Publication Date
CN113408715A true CN113408715A (zh) 2021-09-17
CN113408715B CN113408715B (zh) 2024-05-28

Family

ID=77677139

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010186495.7A Active CN113408715B (zh) 2020-03-17 2020-03-17 一种神经网络的定点化方法、装置

Country Status (3)

Country Link
EP (1) EP4123513A4 (zh)
CN (1) CN113408715B (zh)
WO (1) WO2021185125A1 (zh)

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114494246A (zh) * 2022-03-31 2022-05-13 腾讯科技(深圳)有限公司 图像质量评估方法、装置、电子设备及存储介质
CN114898108A (zh) * 2022-03-30 2022-08-12 哈尔滨工业大学 一种基于fpga的cnn模型轻量化方法、目标检测方法及系统
CN115238873A (zh) * 2022-09-22 2022-10-25 深圳市友杰智新科技有限公司 神经网络模型部署方法、装置、计算机设备
CN116187420A (zh) * 2023-05-04 2023-05-30 上海齐感电子信息科技有限公司 轻量化的深度神经网络的训练方法、系统、设备和介质
WO2023137710A1 (zh) * 2022-01-21 2023-07-27 深圳市大疆创新科技有限公司 神经网络的训练方法、图像处理方法、装置、系统及介质
CN116720563A (zh) * 2022-09-19 2023-09-08 荣耀终端有限公司 一种提升定点神经网络模型精度的方法、装置及电子设备
CN116992032A (zh) * 2023-09-25 2023-11-03 之江实验室 基于模型自动量化的文本分类方法、系统和存储介质
CN118133924A (zh) * 2024-05-08 2024-06-04 深圳鲲云信息科技有限公司 用于卷积网络均衡量化的方法及计算设备

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115984802B (zh) * 2023-03-08 2023-06-09 安徽蔚来智驾科技有限公司 一种目标检测方法、计算机可读存储介质及驾驶设备
CN118133900B (zh) * 2024-05-06 2024-08-02 深圳鲲云信息科技有限公司 一种量化目标检测网络中激活值的方法及计算设备

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP3242254A1 (en) * 2016-05-03 2017-11-08 Imagination Technologies Limited Convolutional neural network hardware configuration
CN109409514A (zh) * 2018-11-02 2019-03-01 广州市百果园信息技术有限公司 卷积神经网络的定点运算方法、装置、设备和存储介质
US20190347550A1 (en) * 2018-05-14 2019-11-14 Samsung Electronics Co., Ltd. Method and apparatus with neural network parameter quantization
CN110555450A (zh) * 2018-05-31 2019-12-10 北京深鉴智能科技有限公司 人脸识别神经网络调整方法和装置
CN110555508A (zh) * 2018-05-31 2019-12-10 北京深鉴智能科技有限公司 人工神经网络调整方法和装置
CN110598723A (zh) * 2018-06-13 2019-12-20 北京深鉴智能科技有限公司 人工神经网络调整方法和装置
US20200012926A1 (en) * 2018-07-05 2020-01-09 Hitachi, Ltd. Neural network learning device and neural network learning method
CN110852434A (zh) * 2019-09-30 2020-02-28 成都恒创新星科技有限公司 基于低精度浮点数的cnn量化方法、前向计算方法及装置

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP3242254A1 (en) * 2016-05-03 2017-11-08 Imagination Technologies Limited Convolutional neural network hardware configuration
US20190347550A1 (en) * 2018-05-14 2019-11-14 Samsung Electronics Co., Ltd. Method and apparatus with neural network parameter quantization
CN110555450A (zh) * 2018-05-31 2019-12-10 北京深鉴智能科技有限公司 人脸识别神经网络调整方法和装置
CN110555508A (zh) * 2018-05-31 2019-12-10 北京深鉴智能科技有限公司 人工神经网络调整方法和装置
CN110598723A (zh) * 2018-06-13 2019-12-20 北京深鉴智能科技有限公司 人工神经网络调整方法和装置
US20200012926A1 (en) * 2018-07-05 2020-01-09 Hitachi, Ltd. Neural network learning device and neural network learning method
CN109409514A (zh) * 2018-11-02 2019-03-01 广州市百果园信息技术有限公司 卷积神经网络的定点运算方法、装置、设备和存储介质
CN110852434A (zh) * 2019-09-30 2020-02-28 成都恒创新星科技有限公司 基于低精度浮点数的cnn量化方法、前向计算方法及装置

Cited By (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2023137710A1 (zh) * 2022-01-21 2023-07-27 深圳市大疆创新科技有限公司 神经网络的训练方法、图像处理方法、装置、系统及介质
CN114898108A (zh) * 2022-03-30 2022-08-12 哈尔滨工业大学 一种基于fpga的cnn模型轻量化方法、目标检测方法及系统
CN114898108B (zh) * 2022-03-30 2023-01-06 哈尔滨工业大学 一种基于fpga的cnn模型轻量化方法、目标检测方法及系统
CN114494246A (zh) * 2022-03-31 2022-05-13 腾讯科技(深圳)有限公司 图像质量评估方法、装置、电子设备及存储介质
CN114494246B (zh) * 2022-03-31 2022-07-12 腾讯科技(深圳)有限公司 图像质量评估方法、装置、电子设备及存储介质
CN116720563A (zh) * 2022-09-19 2023-09-08 荣耀终端有限公司 一种提升定点神经网络模型精度的方法、装置及电子设备
CN116720563B (zh) * 2022-09-19 2024-03-29 荣耀终端有限公司 一种提升定点神经网络模型精度的方法、装置及电子设备
CN115238873A (zh) * 2022-09-22 2022-10-25 深圳市友杰智新科技有限公司 神经网络模型部署方法、装置、计算机设备
CN116187420A (zh) * 2023-05-04 2023-05-30 上海齐感电子信息科技有限公司 轻量化的深度神经网络的训练方法、系统、设备和介质
CN116992032A (zh) * 2023-09-25 2023-11-03 之江实验室 基于模型自动量化的文本分类方法、系统和存储介质
CN116992032B (zh) * 2023-09-25 2024-01-09 之江实验室 基于模型自动量化的文本分类方法、系统和存储介质
CN118133924A (zh) * 2024-05-08 2024-06-04 深圳鲲云信息科技有限公司 用于卷积网络均衡量化的方法及计算设备

Also Published As

Publication number Publication date
WO2021185125A1 (zh) 2021-09-23
EP4123513A4 (en) 2023-07-05
CN113408715B (zh) 2024-05-28
EP4123513A1 (en) 2023-01-25

Similar Documents

Publication Publication Date Title
CN113408715A (zh) 一种神经网络的定点化方法、装置
WO2018140294A1 (en) Neural network based on fixed-point operations
US20210012183A1 (en) Method and device for ascertaining a network configuration of a neural network
US20190286982A1 (en) Neural network apparatus, vehicle control system, decomposition device, and program
CN111079780B (zh) 空间图卷积网络的训练方法、电子设备及存储介质
CN112926570B (zh) 一种自适应比特网络量化方法、系统及图像处理方法
CN113112013A (zh) 针对分辨率降低的神经网络的优化量化
CN113128419A (zh) 一种障碍物识别方法和装置、电子设备及存储介质
CN115210719A (zh) 用于执行机器学习模型的自适应量化
KR20210039921A (ko) 신경망 모델을 최적화하도록 구성된 심층 신경망 시스템의 동작 방법
CN110647974A (zh) 深度神经网络中的网络层运算方法及装置
CN112990438A (zh) 基于移位量化操作的全定点卷积计算方法、系统及设备
EP4343616A1 (en) Image classification method, model training method, device, storage medium, and computer program
CN111383157B (zh) 图像处理方法、装置、车载运算平台、电子设备及系统
CN113822410A (zh) 神经网络模型训练、图像分类、文本翻译方法及装置、设备
US5274744A (en) Neural network for performing a relaxation process
CN111339808A (zh) 车辆碰撞概率预测方法、装置、电子设备及存储介质
CN115841590B (zh) 神经网络推理优化方法、装置、设备及可读存储介质
CN111565065B (zh) 一种无人机基站部署方法、装置及电子设备
CN112232477A (zh) 图像数据处理方法、装置、设备及介质
CN113177634B (zh) 基于神经网络输入输出量化的图像分析系统、方法和设备
US20230058500A1 (en) Method and machine learning system to perform quantization of neural network
CN115860068A (zh) 基于模型量化的任务处理方法、装置、设备及存储介质
TW202328983A (zh) 基於混合神經網絡的目標跟蹤學習方法及系統
US11823043B2 (en) Machine learning with input data domain transformation

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
GR01 Patent grant
GR01 Patent grant