CN115205097A - 一种神经网络量化的激活阈值的获取方法和装置 - Google Patents

一种神经网络量化的激活阈值的获取方法和装置 Download PDF

Info

Publication number
CN115205097A
CN115205097A CN202210805524.2A CN202210805524A CN115205097A CN 115205097 A CN115205097 A CN 115205097A CN 202210805524 A CN202210805524 A CN 202210805524A CN 115205097 A CN115205097 A CN 115205097A
Authority
CN
China
Prior art keywords
initial
activation
activation threshold
candidate
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.)
Pending
Application number
CN202210805524.2A
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.)
Hunan Goke Microelectronics Co Ltd
Original Assignee
Hunan Goke Microelectronics 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 Hunan Goke Microelectronics Co Ltd filed Critical Hunan Goke Microelectronics Co Ltd
Priority to CN202210805524.2A priority Critical patent/CN115205097A/zh
Publication of CN115205097A publication Critical patent/CN115205097A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T5/00Image enhancement or restoration
    • G06T5/40Image enhancement or restoration using histogram techniques
    • 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
    • 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
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • G06T1/20Processor architectures; Processor configuration, e.g. pipelining

Landscapes

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

Abstract

本申请的实施例提供了一种神经网络量化的激活阈值的获取方法和装置,方法包括:将预设数量校准图像输入预设神经网络;获取预设神经网络的各初始网络层的全部初始激活值;根据各初始网络层的全部初始激活值生成各初始网络层的初始统计直方图;根据预设量化位数、各初始统计直方图和对应的初始激活阈值确定各初始网络层的候选激活阈值;从全部候选激活阈值中选择目标激活阈值,候选激活阈值的相似度为根据候选激活阈值生成的参考分布和量化分布之间的瓦瑟斯坦距离确定的相似度。本申请采用瓦瑟斯坦距离计算参考分布和量化分布的相似度,计算量小,耗时短,能确定出适合预设神经网络的各初始层的激活阈值,降低预设神经网络由于量化造成的精度损失。

Description

一种神经网络量化的激活阈值的获取方法和装置
技术领域
本发明涉及数据处理技术领域,具体而言,涉及一种神经网络量化的激活阈值的获取方法和装置。
背景技术
神经网络在图像处理和计算机视觉等许多领域都取得了巨大的成功,但其昂贵的存储和计算成本严重阻碍了其在广泛的资源受限设备上的应用,特别是在实时应用中。为了解决这一问题,近年来,量化技术作为一种很有前途的网络压缩方案应运而生,可减少存储并加快神经网络的推理速度。一般需要对权重参数和激活进行低比特量化以实现对神经网络的量化,其中,在对激活进行低比特量化的过程中,需要选择一个合适的激活阈值,以使量化后的低比特空间既能良好的标识整个激活特征空间又具备较高的识别精度。
在神经网络进行相关图像处理过程中,现有方案中可通过感知量化训练的方式选择出一个合适的激活阈值,但需要大量的量化训练数据集,难度高且耗时长。还可以采用训练后量化方法如基于KL散度的方法选择出一个合适的激活阈值,但KL散度计算过程中含有对数函数,求得的KL散度值中存在很多大的突变值,影响激活阈值的选取且计算密度大、耗时长。因此,亟需一种神经网络量化的激活阈值的获取方法,通过快速确定出合适的激活阈值以实现对神经网络的量化,减少神经网络量化的损失。
发明内容
有鉴于此,本申请的目的之一在于提供一种神经网络量化的激活阈值的获取方法和装置,至少解决上述部分技术问题。
第一方面,本申请实施例提供了一种神经网络量化的激活阈值的获取方法,所述方法包括:
将预设数量校准图像输入预设神经网络;
获取所述预设神经网络的各初始网络层的全部初始激活值;
根据各初始网络层的全部初始激活值生成对应各初始网络层的初始统计直方图,其中,所述初始统计直方图的横轴分成各初始激活值区间,各初始激活值区间的边界值表示初始激活阈值,纵轴表示初始网络层的初始激活值落入各初始激活值区间的初始激活值的数量,所述初始统计直方图包括至少两个所述初始激活值区间;
根据预设量化位数、各初始统计直方图和各与初始统计直方图对应的初始激活阈值确定各初始网络层的至少两个候选激活阈值;
从各初始网络层的全部候选激活阈值中选择相似度最高的候选激活阈值作为对应初始网络层的目标激活阈值,其中,所述候选激活阈值的相似度为根据所述候选激活阈值对应的参考分布和量化分布之间的瓦瑟斯坦距离确定的相似度。
可选的,所述“根据预设量化位数、各初始统计直方图和各与初始统计直方图对应的初始激活阈值确定各初始网络层的至少两个候选激活阈值”的步骤,包括:
根据预设量化位数计算量化参数;
根据所述量化参数和目标统计直方图内区间的数量确定至少两个第一目标区间,其中,所述量化参数在数值上小于所述目标统计直方图内区间的数量,所述目标统计直方图为全部初始统计直方图中的任一初始统计直方图;
根据各第一目标区间和各第一目标区间的相邻区间上的边界值确定候选激活阈值。
可选的,所述候选激活阈值对应的参考分布的生成步骤,包括:
识别所述候选激活阈值所处的第一目标区间;
根据所述候选激活阈值所处的第一目标区间和所述候选激活阈值所在的初始统计直方图的全部区间确定至少一个第二目标区间;
根据全部第二目标区间上的初始激活值生成第一数组;
根据除全部第二目标区间外的其他区间上的初始激活值生成第二数组,并拼接所述第一数组和所述第二数组,得到拼接后的第一数组;
将拼接后的第一数组做归一化处理,得到所述候选激活阈值对应的参考分布。
可选的,所述候选激活阈值对应的量化分布的生成步骤,包括:
将所述第一数组做量化处理,得到第三数组;
将所述第三数组做扩张映射处理,得到第四数组;
将所述第四数组做归一化处理,得到所述候选激活阈值对应的量化分布。
可选的,所述相似度的计算步骤,包括:
按预设计算规则计算各候选激活阈值对应的参考分布和量化分布之间的瓦瑟斯坦距离;
根据所述瓦瑟斯坦距离判断各候选激活阈值对应的参考分布和量化分布之间的相似度,其中,所述相似度最高的候选激活阈值为所述参考分布和所述量化分布之间的最小瓦瑟斯坦距离对应的候选激活阈值。
可选的,所述“按预设计算规则计算与各候选激活阈值对应的参考分布和量化分布的瓦瑟斯坦距离”的步骤后,所述方法还包括:
根据预设滤波器过滤与各候选激活阈值对应的参考分布和量化分布的瓦瑟斯坦距离,以滤除大于第一预设距离和/或小于第二预设距离的异常的瓦瑟斯坦距离,其中,所述第一预设距离大于所述第二预设距离,所述预设滤波器包括算数平均滤波器、递推平均滤波器和加权移动平均滤波器中的至少一种。
第二方面,本申请实施例提供了一种神经网络量化激活阈值的获取装置,所述神经网络的量化装置包括:
第一处理模块,用于将预设数量校准图像输入预设神经网络;
获取模块,用于获取所述预设神经网络的各初始网络层的全部初始激活值;
第二处理模块,用于根据各初始网络层的全部初始激活值生成对应各初始网络层的初始统计直方图,其中,所述初始统计直方图的横轴分成各初始激活值区间,各初始激活值区间的边界值表示初始激活阈值,纵轴表示初始网络层的初始激活值落入各初始激活值区间的初始激活值的数量,所述初始统计直方图包括至少两个所述初始激活值区间;
计算模块,用于根据预设量化位数、各初始统计直方图和各与初始统计直方图对应的初始激活阈值确定各初始网络层的至少两个候选激活阈值;
第三处理模块,用于从各初始网络层的全部候选激活阈值中选择相似度最高的候选激活阈值作为对应初始网络层的目标激活阈值,其中,所述候选激活阈值的相似度为根据所述候选激活阈值对应的参考分布和量化分布之间的瓦瑟斯坦距离确定的相似度。
可选的,所述计算模块,还用于根据预设量化位数计算量化参数;
根据所述量化参数和目标统计直方图内区间的数量确定至少两个第一目标区间,其中,所述量化参数在数值上小于所述目标统计直方图内区间的数量,所述目标统计直方图为全部初始统计直方图中的任一初始统计直方图;
根据各第一目标区间和各第一目标区间的相邻区间上的边界值确定候选激活阈值。
第三方面,本申请实施例提供了一种计算机设备,所述计算机设备包括存储器及处理器,所述存储器上存储有计算机程序,所述计算机程序在被所述处理器执行时,实现第一方面提供的神经网络量化的激活阈值的获取方法。
第四方面,本申请实施例提供了一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序在被一个或多个处理器执行时,实现本申请提供的神经网络量化的激活阈值的获取方法。
本申请实施例提供的神经网络量化的激活阈值的获取方法,通过根据预设神经网络的各初始网络层的全部初始激活值生成各初始网络层的初始统计直方图,然后通过各初始统计直方图确认出各初始网络层的候选激活阈值。之后计算各候选激活阈值对应的参考分布和量化分布之间的相似度,并从各初始网络层的全部候选激活阈值中选择相似度最高的候选激活阈值作为对应初始网络层的目标激活阈值,中间计算过程计算量小,耗时短,能确定出适合预设神经网络的各初始层的激活阈值,降低预设神经网络的量化所造成的精度损失。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本发明的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1示出了本申请实施例提供的一种计算机设备的结构示意图;
图2示出了本申请实施例提供的一种神经网络量化的激活阈值的获取方法的方法流程图;
图3示出了本申请实施例提供的一种神经网络量化的激活阈值的获取装置的功能模块示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本发明实施例的组件可以以各种不同的配置来布置和设计。
因此,以下对在附图中提供的本发明的实施例的详细描述并非旨在限制要求保护的本发明的范围,而是仅仅表示本发明的选定实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。
在本发明的描述中,需要说明的是,若出现术语“上”、“下”、“内”、“外”等指示的方位或位置关系为基于附图所示的方位或位置关系,或者是该发明产品使用时惯常摆放的方位或位置关系,仅是为了便于描述本发明和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本发明的限制。
此外,若出现术语“第一”、“第二”等仅用于区分描述,而不能理解为指示或暗示相对重要性。
需要说明的是,在不冲突的情况下,本发明的实施例中的特征可以相互结合。
请参见图1,所提供的计算机设备100可以为具有数据处理能的计算机设备,例如,个人电脑、服务器等,主要包括神经网络量化的激活阈值的获取装置110、存储器120和处理器130。其中,计算机设备100可以作为下述神经网络量化的激活阈值的获取方法的执行设备,存储器120及处理器130各元件相互之间直接或间接地电性连接,以实现数据的传输或交互。例如,这些元件相互之间可通过一条或多条通讯总线或信号线实现电性连接。所述计算机设备100包括至少一个可以软件或固件(Firmware)的形式存储于所述存储器120中或固化在所述计算机设备100的操作系统(Operating System,OS)中的软件功能模块。所述处理器130用于执行所述存储器120中存储的可执行模块,例如所述神经网络量化的激活阈值的获取装置110所包括的软件功能模块及计算机程序等。
其中,所述存储器120可以是,但不限于,随机存取存储器(Random AccessMemory,RAM),只读存储器(Read Only Memory,ROM),可编程只读存储器(ProgrammableRead-Only Memory,PROM),可擦除只读存储器(Erasable Programmable Read-OnlyMemory,EPROM),电可擦除只读存储器(Electric Erasable Programmable Read-OnlyMemory,EEPROM)等。其中,存储器120用于存储程序,所述处理器130在接收到执行指令后,执行所述程序。
所述处理器130可能是一种集成电路芯片,具有信号的处理能力。上述的处理器可以是通用处理器,包括中央处理器(Central Processing Unit,CPU)、网络处理器(NetworkProcessor,NP)等;还可以是数字信号处理器(Digital Signal Process,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列(FieldProgrammable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本申请实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
请参见图2,图2为本申请实施例提供的一种神经网络量化的激活阈值的获取方法的方法流程图,以下将对神经网络量化的激活阈值的获取方法的各个步骤进行详细说明。
S210,将预设数量校准图像输入预设神经网络。
本实施例中的预设神经网络具备一定的图像处理识别功能,适用于图像识别领域,预设数量校准图像可作为预设神经网络的校准数据集,其中,可以选取数十到数百张训练图像作为预设数量校准图像,无需选择数量庞大的训练图像,当预设神经网络对预设数量校准图像进行处理时,能够快速完成后续实施例中对激活阈值选取。
S220,获取所述预设神经网络的各初始网络层的全部初始激活值。
在本实施例中,预设神经网络一般包括一个输入层、多个中间层和一个输出层,这些网络层在本实施中均可以称为初始网络层,预设神经网络的各初始网络层可以使用相同的激活函数,也可以使用不同的激活函数,但使用的激活函数均存在对应的激活值,在本实施例中均可称为初始激活值。
具体的,对于激活,也即下一初始网络层的输入特征图,一般存在长尾分布,在这种情况下,需要选择一个适合的激活阈值,使得量化后的低比特空间既具备高的精度,又可以良好的表示整个激活特征空间。
S230,根据各初始网络层的全部初始激活值生成对应各初始网络层的初始统计直方图,其中,所述初始统计直方图的横轴分成各初始激活值区间,各初始激活值区间的边界值表示初始激活阈值,纵轴表示初始网络层的初始激活值落入各初始激活值区间的初始激活值的数量,所述初始统计直方图包括至少两个所述初始激活值区间。
在本实施例中,各初始网络层的全部初始激活值可以通过统计直方图进行表示,也即本实施例中的初始统计直方图,使用初始统计直方图表示初始激活值的分布,可以显著减少计算量,并且能够更加直观地展示初始激活值的分布情况。各初始激活值区间的边界值可确定为初始激活阈值。
其中,针对一个预设神经网络可以生成多个初始统计直方图,预设神经网络的每个初始网络层均对应生成一个初始统计直方图。
本实施例采用对称线性量化神经网络为例,说明神经网络量化的激活阈值选取方法。本领域的人很容易的可以想到,该方法还可用在神经网络的对称、非对称、线性、非线性量化及其组合上,均在本申请的保护范围之内。
其中,对应对称量化,可以对全部激活值做绝对值处理,也即将数轴上负半轴的激活值折叠到正半轴,这样一次便能选择好初始网络层的最佳激活阈值;将上述初始统计直方图记作H,其最小为0,最大值为上述本层全部初始激活值中绝对值最大元素VM,预设区间数为G;初始统计直方图H第i个区间记作Ri,本层初始激活值绝对值落入区间Ri的个数统计值记作Ni,i∈[0,G-1];
S240,根据预设量化位数、各初始统计直方图和各与初始统计直方图对应的初始激活阈值确定各初始网络层的至少两个候选激活阈值。
为了减少计算次数和确定最适合各个初始网络层的目标激活阈值,本实施例根据预设量化位数计算得到的量化参数对各个初始网络层的初始激活阈值进行了筛选,每个初始网络层均能够得到至少两个候选激活阈值。其中,在实际应用中,每个初始网络层的候选激活阈值还有很多,为了确定最合适的目标激活阈值,经过筛选后的各网络层的候选激活阈值远多于两个。
在一种可能的实施方式中,所述“根据预设量化位数、各初始统计直方图和各与初始统计直方图对应的初始激活阈值确定各初始网络层的至少两个候选激活阈值”的步骤,包括:
根据预设量化位数计算量化参数;
根据所述量化参数和目标统计直方图内区间的数量确定至少两个第一目标区间,其中,所述量化参数在数值上小于所述目标统计直方图内区间的数量,所述目标统计直方图为全部初始统计直方图中的任一初始统计直方图;
根据各第一目标区间和各第一目标区间的相邻区间上的边界值确定候选激活阈值。
其中,考虑到可以选用对称线性量化公式实现对预设神经网络的量化,可用的对称线性量化公式如公式(1):
S=T/2^(nbit-1) 公式(1)
其中,S表示量化因子或精度,可表示每一份量化空间表示的数据大小,nbit表示量化的比特数,也即量化位数,T表示激活阈值,本实施例中的初始激活阈值、候选激活阈值和下述实施例中的目标激活阈值适用公式(1)。
另外,上述实施例中的初始统计直方图的区间的数量可以大于或等于2^(nbit-1)。
相应的,本实施例中的预设量化位数可以是公式(1)中的nbit,在低比特量化处理中常进行8bit量化、4bit量化和2bit量化。若进行8bit量化即对应的预设量化位数为8bit,量化参数L=2^(8-1)=128,预设初始统计直方图的区间数量G=6001;可以根据量化参数L和预设初始统计直方图的区间数量G确定多个第一目标区间,在本实施例中,初始统计直方图的区间数量远大于量化参数。
然后,可以将各第一目标区间上的初始激活阈值作为候选激活阈值,考虑到直方图中的某一区间具有两个边界值的情形,本实施例中的第一目标区间上的候选激活阈值可以选择该区间靠近坐标轴原点的一侧的初始激活阈值,也可以选择该区间远离坐标轴原点一侧的初始激活阈值。
S250,从各初始网络层的全部候选激活阈值中选择相似度最高的候选激活阈值作为对应初始网络层的目标激活阈值,其中,所述候选激活阈值的相似度为根据所述候选激活阈值对应的参考分布和量化分布之间的瓦瑟斯坦距离确定的相似度。
为了进一步确定与各初始网络层合适的目标激活阈值,本实施例通过各候选激活阈值对应的参考分布和量化分布之间的瓦瑟斯坦距离(Wasserstein距离)来确定各初始网络层的目标激活阈值。
可选的,所述相似度的计算步骤,包括:
按预设计算规则计算各候选激活阈值对应的参考分布和量化分布之间的瓦瑟斯坦距离;
根据所述瓦瑟斯坦距离判断各候选激活阈值对应的参考分布和量化分布之间的相似度,其中,所述相似度最高的候选激活阈值为所述参考分布和所述量化分布之间的最小瓦瑟斯坦距离对应的候选激活阈值。
具体的,通过计算两个对象之间的Wasserstein距离,可以表示这两个对象之间的相似程度,Wasserstein距离越小,相似度越高,Wasserstein距离越大,相似度越低,Wasserstein距离等于0,则表示这两个对象完全重合。在本实施例中可计算各候选激活阈值对应的参考分布和量化分布的Wasserstein距离,并从各初始网络层的全部候选激活阈值中选择Wasserstein距离最小的候选激活阈值作为对应初始网络层的目标激活阈值,确定了各初始网络层的最适激活阈值。并且,相较于基于kld的方法,在确定各初始网络层的目标激活阈值的过程中并未进行对数运算,可大幅减少对预设神经网络进行量化所需要的时长。
由上述分析可知,本申请实施例提供的神经网络量化的激活阈值的获取方法,通过根据预设神经网络的各初始网络层的全部初始激活值生成各初始网络层的初始统计直方图,然后通过各初始统计直方图确认出各初始网络层的候选激活阈值。之后计算各候选激活阈值对应的参考分布和量化分布之间的Wasserstein距离,并从各初始网络层的全部候选激活阈值中选择对应Wasserstein距离最小的候选激活阈值作为对应初始网络层的目标激活阈值;中间计算过程计算量小,耗时短,由于当两个分布相差很远,且完全没有重叠的时,Wasserstein距离仍然能够有效度量相似度,进而能确定出适合预设神经网络的各初始层的激活阈值,从而实现降低对预设神经网络量化所造成的精度损失。
为了确定出最适合各初始网络层的目标激活阈值,可选的,所述“按预设计算规则计算与各候选激活阈值对应的参考分布和量化分布的瓦瑟斯坦距离”的步骤后,所述方法还包括:
根据预设滤波器过滤与各候选激活阈值对应的参考分布和量化分布的瓦瑟斯坦距离,以滤除大于第一预设距离和/或小于第二预设距离的异常的瓦瑟斯坦距离,其中,所述第一预设距离大于所述第二预设距离,所述预设滤波器包括算数平均滤波器、递推平均滤波器和加权移动平均滤波器中的至少一种。
通过预设滤波器对各候选激活阈值对应的参考分布和量化分布的Wasserstein距离进行了滤波处理,滤除了异常的Wasserstein距离,得到更加平滑的Wasserstein距离,可提高选择目标激活阈值的精准性。
进行滤波处理所采用的滤波器可以是上述实施例中的算数平均滤波器、递推平均滤波器和加权移动平均滤波器中的至少一种。
在一种可能的实施方式中,所述候选激活阈值对应的参考分布的生成步骤,包括:
识别所述候选激活阈值所处的第一目标区间;
根据所述候选激活阈值所处的第一目标区间和所述候选激活阈值所在的初始统计直方图的全部区间确定至少一个第二目标区间;
根据全部第二目标区间上的初始激活值生成第一数组;
根据除全部第二目标区间外的其他区间上的初始激活值生成第二数组,并拼接所述第一数组和所述第二数组,得到拼接后的第一数组;
将拼接后的第一数组做归一化处理,得到所述候选激活阈值对应的参考分布。
本实施例中的各候选激活阈值为上述实施例中对应各第一目标区间靠近坐标轴原点的一侧区间边界值。依次选择上述实施例中的量化参数L到区间数量G-1中的每个整数并记为j,即j∈[L,G-1],上述初始统计直方图H的第j个区间Rj的左边界值即为第j-L个候选激活阈值Tj-L,则第一数组为[N0,N1,N2,N3,……,Nj-1],可以用Pj-L表示;第二数组为[Nj,Nj+1,Nj+2,Nj+3,……,NG-1],可以用Oj-L表示。
拼接所述第一数组和所述第二数组,可以是将第二数组累加到第一数组的最后一个元素上,具体计算如公式(2):
Figure BDA0003737103630000121
对拼接后的第一数组进行归一化处理,得到上述第j-L个候选阈值Tj-L的参考分布pj-L,具体计算如公式(3):
Figure BDA0003737103630000122
在一种可能的实施方式中,所述候选激活阈值对应的量化分布的生成步骤,包括:
将所述第一数组做量化处理,得到第三数组;
将所述第三数组做扩张映射处理,得到第四数组;
将所述第四数组做归一化处理,得到所述候选激活阈值对应的量化分布。
具体的,依次选择上述实施例中的初始统计直方图H的第j个区间Rj的左边界值,也即候选激活阈值Tj-L,生成本初始网络层对应的第j-L个量化统计直方图Hj-L
上述量化统计直方图Hj-L的最小值为0,最大值为Tj-L,预设区间数为L,也即量化到L份空间;第k个区间记作Dk,k∈[0,L-1]。
可选的,上述量化统计直方图区间Dk的边界值可“四舍五入”到区间Ri的边界值,即确保区间Dk包含整数个Ri区间。所述本初始网络层的全部初始激活值的绝对值落入第k个区间Dk的个数统计值记作Mk;由于上述量化统计直方图Hj-L的区间大小不相等,不是数学意义上的统计直方图。
构造量化到L份量化等级空间的每个元素Q1j-L[k]=Mk,得到第三数组;
然后将量化分布Q1j-L扩张映射到j份等级空间上,记作Qj-L,得到第四数组;此时每个量化分布元素Qj-L[i]和参考分布元素Pj-L[i]一一对应,其中,扩张映射计算方式如公式(5):
Figure BDA0003737103630000131
其中,Ck表示上述量化统计直方图第k个区间包含上述初始统计直方图区间Ri且Ri对应的Pj-L[i]≠0的区间个数。
对第四数组Qj-L做归一化处理,得到所述第j-L个候选激活阈值Tj-L的量化分布qj-L,具体计算公式如公式(4):
Figure BDA0003737103630000132
可选的,上述实施例中的Wasserstein距离W的计算公式可以为如下公式(5):
Figure BDA0003737103630000133
其中,Pi和Qi分别代表任意参考分布P和对应量化分布Q的第i个元素,初始δ=0,δ表示计算代价。
以下是根据本申请实施例中的神经网络量化的激活阈值的获取方法的进行相关试验得到的真实数据。
由于没有使用对数函数,Wasserstein距离相较于KL散度,计算参考分布和量化分布的相似程度的结果更具有平稳性,运算速度更快;当两个分布相差很远,且完全没有重叠的时,Wasserstein距离仍然能够有效度量它们的相似度,使得神经网络模型量化时精度损失更小。见下表1四个经典模型基于上述两种方法的量化精度损失(除激活阈值选取方法不同外,其他方面均一致;基于imageNet2012-1K,校准集200张图片,验证集3万张图片)。从下表可以看到,相较于使用基于KL散度,使用基于Wasserstein距离量化神经网络模型,四个模型都具有一定程度的精度提升,且对小模型提升更为显著(在神经网络量化领域,一般小模型比大模型精度损失更多,量化更棘手)。
表1
Figure BDA0003737103630000141
其中,Wasserstein距离相较于KL散度,由于没有复杂的对数函数运算,运行速度更快,在实际应用中可以显著的缩短模型量化时间。以使用99999999个元素的pj-L和qj-L为例,测试了计算KL散度和Wasserstein距离的耗时(环境:Intel(R)Xeon(R)CPU E5-2650v4@2.20GHz,Ubuntu16.04),如下表所示(其他条件皆相同)。从下表2中可以看到,相同条件下,平均计算Wasserstein距离比计算KL散度快约1.65倍。
表2
实验序号 基于KL散度计算(s) 基于Wasserstein距离(s) 速度提升约(倍)
1 2.62 1.59 1.647799
2 2.75 1.64 1.676829
3 2.72 1.69 1.609467
4 2.65 1.59 1.666667
5 2.66 1.68 1.583333
6 2.73 1.61 1.695652
7 2.63 1.60 1.64375
8 2.63 1.60 1.64375
9 2.63 1.60 1.64375
10 2.64 1.60 1.65
平均 2.67 1.62 1.65
综上,本申请实施例提供的神经网络量化的激活阈值的获取方法,通过根据预设神经网络的各初始网络层的全部初始激活值生成各初始网络层的初始统计直方图,然后通过各初始统计直方图确认出各初始网络层的候选激活阈值。之后计算各候选激活阈值对应的参考分布和量化分布之间的相似度,并从各初始网络层的全部候选激活阈值中选择对应Wasserstein距离最小的候选激活阈值作为对应初始网络层的目标激活阈值。计算量小,耗时短;通过确定出适合预设神经网络的各初始层的激活阈值,从而降低对预设神经网络的量化所造成的精度损失。
与上述方法实施例相对应,本申请还提供一种神经网络量化的激活阈值的获取装置300,所述神经网络量化的激活阈值的获取装置300可以为上述实施例中的神经网络量化的激活阈值的获取装置110。
请参见图3,图3为本申请实施例提供的一种神经网络量化的激活阈值的获取装置的功能模块示意图。所述经网络量化的激活阈值的获取装置300包括:
第一处理模块310,用于将预设数量训练图像输入预设神经网络;
获取模块320,用于获取所述预设神经网络的各初始网络层的全部初始激活值;
第二处理模块330,用于根据各初始网络层的全部初始激活值生成对应各初始网络层的初始统计直方图,其中,所述初始统计直方图的横轴分成各初始激活值区间,各初始激活值区间的边界值表示初始激活阈值,纵轴表示初始网络层的初始激活值落入各初始激活值区间的初始激活值的数量,所述初始统计直方图包括至少两个所述初始激活值区间;
计算模块340,用于根据预设量化位数、各初始统计直方图和各与初始统计直方图对应的初始激活阈值确定各初始网络层的至少两个候选激活阈值;
第三处理模块350,用于从各初始网络层的全部候选激活阈值中选择相似度最高的候选激活阈值作为对应初始网络层的目标激活阈值,其中,所述候选激活阈值的相似度为根据所述候选激活阈值对应的参考分布和量化分布之间的瓦瑟斯坦距离确定的相似度。
本申请实施例提供的神经网络量化的激活阈值的获取装置,通过根据预设神经网络的各初始网络层的全部初始激活值生成各初始网络层的初始统计直方图,然后通过各初始统计直方图确认出各初始网络层的候选激活阈值。之后计算各候选激活阈值对应的参考分布和量化分布之间的相似度,并从各初始网络层的全部候选激活阈值中选择对应Wasserstein距离最小的候选激活阈值作为对应初始网络层的目标激活阈值。中间计算过程计算量小,耗时短;能够确定出适合预设神经网络的各初始层的激活阈值,降低对预设神经网络的量化所造成的精度损失。
可选的,所述计算模块,还用于根据预设量化位数计算量化参数;
根据所述量化参数和目标统计直方图内区间的数量确定至少两个第一目标区间,其中,所述量化参数在数值上小于所述目标统计直方图内区间的数量,所述目标统计直方图为全部初始统计直方图中的任一初始统计直方图;
根据各第一目标区间和各第一目标区间的相邻区间上的边界值确定候选激活阈值。
本申请实施例还公开了一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时,实现如方法实施例中所述的神经网络量化的激活阈值的获取方法。
本实施例提供的神经网络量化的激活阈值的获取方法、装置、计算机设备及计算机可读存储介质的具体实施过程,可以参见上述神经网络量化的激活阈值的获取方法具体实施过程,在此不再一一赘述。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以所述权利要求的保护范围为准。

Claims (10)

1.一种神经网络量化的激活阈值的获取方法,其特征在于,所述方法包括:
将预设数量校准图像输入预设神经网络;
获取所述预设神经网络的各初始网络层的全部初始激活值;
根据各初始网络层的全部初始激活值生成对应各初始网络层的初始统计直方图,其中,所述初始统计直方图的横轴分成各初始激活值区间,各初始激活值区间的边界值表示初始激活阈值,纵轴表示初始网络层的初始激活值落入各初始激活值区间的初始激活值的数量,所述初始统计直方图包括至少两个所述初始激活值区间;
根据预设量化位数、各初始统计直方图和各与初始统计直方图对应的初始激活阈值确定各初始网络层的至少两个候选激活阈值;
从各初始网络层的全部候选激活阈值中选择相似度最高的候选激活阈值作为对应初始网络层的目标激活阈值,其中,所述候选激活阈值的相似度为根据所述候选激活阈值对应的参考分布和量化分布之间的瓦瑟斯坦距离确定的相似度。
2.根据权利要求1所述的神经网络量化的激活阈值的获取方法,其特征在于,所述“根据预设量化位数、各初始统计直方图和各与初始统计直方图对应的初始激活阈值确定各初始网络层的至少两个候选激活阈值”的步骤,包括:
根据预设量化位数计算量化参数;
根据所述量化参数和目标统计直方图内区间的数量确定至少两个第一目标区间,其中,所述量化参数在数值上小于所述目标统计直方图内区间的数量,所述目标统计直方图为全部初始统计直方图中的任一初始统计直方图;
根据各第一目标区间和各第一目标区间的相邻区间上的边界值确定候选激活阈值。
3.根据权利要求2所述的神经网络量化的激活阈值的获取方法,其特征在于,所述候选激活阈值对应的参考分布的生成步骤,包括:
识别所述候选激活阈值所处的第一目标区间;
根据所述候选激活阈值所处的第一目标区间和所述候选激活阈值所在的初始统计直方图的全部区间确定至少一个第二目标区间;
根据全部第二目标区间上的初始激活值生成第一数组;
根据除全部第二目标区间外的其他区间上的初始激活值生成第二数组,并拼接所述第一数组和所述第二数组,得到拼接后的第一数组;
将拼接后的第一数组做归一化处理,得到所述候选激活阈值对应的参考分布。
4.根据权利要求3所述的神经网络量化的激活阈值的获取方法,其特征在于,所述候选激活阈值对应的量化分布的生成步骤,包括:
将所述第一数组做量化处理,得到第三数组;
将所述第三数组做扩张映射处理,得到第四数组;
将所述第四数组做归一化处理,得到所述候选激活阈值对应的量化分布。
5.根据权利要求1所述的神经网络量化的激活阈值的获取方法,其特征在于,所述相似度的计算步骤,包括:
按预设计算规则计算各候选激活阈值对应的参考分布和量化分布之间的瓦瑟斯坦距离;
根据所述瓦瑟斯坦距离判断各候选激活阈值对应的参考分布和量化分布之间的相似度,其中,所述相似度最高的候选激活阈值为所述参考分布和所述量化分布之间的最小瓦瑟斯坦距离对应的候选激活阈值。
6.根据权利要求5所述的神经网络量化的激活阈值的获取方法,其特征在于,所述“按预设计算规则计算与各候选激活阈值对应的参考分布和量化分布的瓦瑟斯坦距离”的步骤后,所述方法还包括:
根据预设滤波器过滤与各候选激活阈值对应的参考分布和量化分布的瓦瑟斯坦距离,以滤除大于第一预设距离和/或小于第二预设距离的异常的瓦瑟斯坦距离,其中,所述第一预设距离大于所述第二预设距离,所述预设滤波器包括算数平均滤波器、递推平均滤波器和加权移动平均滤波器中的至少一种。
7.一种神经网络量化激活阈值的获取装置,其特征在于,所述神经网络的量化装置包括:
第一处理模块,用于将预设数量校准图像输入预设神经网络;
获取模块,用于获取所述预设神经网络的各初始网络层的全部初始激活值;
第二处理模块,用于根据各初始网络层的全部初始激活值生成对应各初始网络层的初始统计直方图,其中,所述初始统计直方图的横轴分成各初始激活值区间,各初始激活值区间的边界值表示初始激活阈值,纵轴表示初始网络层的初始激活值落入各初始激活值区间的初始激活值的数量,所述初始统计直方图包括至少两个所述初始激活值区间;
计算模块,用于根据预设量化位数、各初始统计直方图和各与初始统计直方图对应的初始激活阈值确定各初始网络层的至少两个候选激活阈值;
第三处理模块,用于从各初始网络层的全部候选激活阈值中选择相似度最高的候选激活阈值作为对应初始网络层的目标激活阈值,其中,所述候选激活阈值的相似度为根据所述候选激活阈值对应的参考分布和量化分布之间的瓦瑟斯坦距离确定的相似度。
8.根据权利要求7所述的神经网络量化激活阈值的获取装置,其特征在于,所述计算模块,还用于根据预设量化位数计算量化参数;
根据所述量化参数和目标统计直方图内区间的数量确定至少两个第一目标区间,其中,所述量化参数在数值上小于所述目标统计直方图内区间的数量,所述目标统计直方图为全部初始统计直方图中的任一初始统计直方图;
根据各第一目标区间和各第一目标区间的相邻区间上的边界值确定候选激活阈值。
9.一种计算机设备,其特征在于,所述计算机设备包括存储器及处理器,所述存储器上存储有计算机程序,所述计算机程序在被所述处理器执行时实现权利要求1-6中任一项所述的神经网络量化的激活阈值的获取方法。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,该计算机程序在被一个或多个处理器执行时,实现权利要求1-6中任一项所述的神经网络量化的激活阈值的获取方法。
CN202210805524.2A 2022-07-08 2022-07-08 一种神经网络量化的激活阈值的获取方法和装置 Pending CN115205097A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202210805524.2A CN115205097A (zh) 2022-07-08 2022-07-08 一种神经网络量化的激活阈值的获取方法和装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210805524.2A CN115205097A (zh) 2022-07-08 2022-07-08 一种神经网络量化的激活阈值的获取方法和装置

Publications (1)

Publication Number Publication Date
CN115205097A true CN115205097A (zh) 2022-10-18

Family

ID=83580252

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210805524.2A Pending CN115205097A (zh) 2022-07-08 2022-07-08 一种神经网络量化的激活阈值的获取方法和装置

Country Status (1)

Country Link
CN (1) CN115205097A (zh)

Similar Documents

Publication Publication Date Title
CN109840588B (zh) 神经网络模型训练方法、装置、计算机设备及存储介质
WO2023138300A1 (zh) 目标检测方法及应用其的移动目标跟踪方法
WO2021000524A1 (zh) 孔位保护门检测方法、装置、计算机设备和存储介质
CN116453438B (zh) 一种显示屏参数检测方法、装置、设备及存储介质
CN110969200B (zh) 基于一致性负样本的图像目标检测模型训练方法及装置
CN110766075A (zh) 轮胎区域图像比对方法、装置、计算机设备和存储介质
CN114943674A (zh) 瑕疵检测方法、电子装置及存储介质
CN112348055A (zh) 一种聚类评估度量方法、系统、装置和存储介质
CN102713974B (zh) 学习装置、识别装置、学习识别系统和学习识别装置
CN113110961B (zh) 设备异常检测方法、装置、计算机设备及可读存储介质
CN112288744B (zh) 基于整型推理量化cnn的sar图像变化检测方法
CN117930012A (zh) 一种电池一致性评估方法、装置、计算机设备及存储介质
CN117272145A (zh) 转辙机的健康状态评估方法、装置和电子设备
CN115205097A (zh) 一种神经网络量化的激活阈值的获取方法和装置
CN116341653A (zh) 一种层次分析模型权重获得方法及相关设备
CN114219051B (zh) 图像分类方法、分类模型的训练方法、装置及电子设备
CN113393023B (zh) 模具质量评估方法、装置、设备及存储介质
CN112528500B (zh) 一种场景图构造模型的评估方法及评估设备
CN114355234A (zh) 一种电源模块的智能化质量检测方法及系统
CN113989632A (zh) 一种遥感图像桥梁检测方法、装置、电子设备及存储介质
CN109583512B (zh) 图像处理方法、装置及系统
CN114399788B (zh) 对象检测方法和系统
CN115801845B (zh) 基于边缘计算的工业互联网数据采集方法及相关设备
CN116629699A (zh) 数据检测方法、装置、终端设备以及存储介质
CN113743446A (zh) 模型训练数据处理方法、装置、计算机设备和存储介质

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