CN112668658A - 应用于FPGA的Yolov3量化方法、装置、设备及介质 - Google Patents

应用于FPGA的Yolov3量化方法、装置、设备及介质 Download PDF

Info

Publication number
CN112668658A
CN112668658A CN202011631520.4A CN202011631520A CN112668658A CN 112668658 A CN112668658 A CN 112668658A CN 202011631520 A CN202011631520 A CN 202011631520A CN 112668658 A CN112668658 A CN 112668658A
Authority
CN
China
Prior art keywords
quantization
batch normalization
value
activation
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.)
Pending
Application number
CN202011631520.4A
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.)
Guangdong Greater Bay Area Institute of Integrated Circuit and System
Original Assignee
Guangdong Greater Bay Area Institute of Integrated Circuit and System
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 Guangdong Greater Bay Area Institute of Integrated Circuit and System filed Critical Guangdong Greater Bay Area Institute of Integrated Circuit and System
Priority to CN202011631520.4A priority Critical patent/CN112668658A/zh
Publication of CN112668658A publication Critical patent/CN112668658A/zh
Pending legal-status Critical Current

Links

Images

Landscapes

  • Image Analysis (AREA)

Abstract

本发明涉及一种应用于FPGA的Yolov3量化方法、装置、设备及介质,包括:获取批归一化层参数和初始权重参数;将所述批归一化层参数和所述初始权重参数融合,以得到融合后的批归一化值;对所述批归一化值进行量化,以得到批归一化量化值;根据所述批归一化量化值及激活函数,得到下一层神经网络的激活量化值。上述应用于FPGA的Yolov3量化方法、装置、设备及介质,融合后能够将Yolov3模型中的残差模块中的各层应用于FPGA,使得量化方法能够使用于Yolov3模型。

Description

应用于FPGA的Yolov3量化方法、装置、设备及介质
技术领域
本申请涉及神经网络技术领域,特别是涉及一种应用于FPGA的Yolov3量化方法、装置、设备及介质。
背景技术
近年来,卷积神经网络(CNN,Convolutional Neural Network)领域取得了重大突破,极大地提高了基于CNN的目标检测算法的性能。来自国际顶级的计算机视觉竞赛(PASCAL VOC,Pattern Analysis,Statistical Modeling and Computational LearningVisual Object Classes)数据集的分类挑战结果证明,自2007年以来,目标检测算法的平均精度(MAP,Mean Average Precision)从20%提高到了85%。目标检测算法的优异性能使它们广泛应用于自动化系统,如机器人、自动驾驶和无人机等。
然而,目标检测算法的高准确度伴随着高计算复杂度的问题,如果单纯使用中央处理器(CPU,Central Processing Unit)来计算,则需要很长时间才能完成,无法满足实时性高的应用场景。因此,需要使用图形处理器(GPU,Graphics Processing Unit)、专用集成电路(ASIC,Application Specific Integrated Circuit)或现场可编程门阵列(FPGA,Field-Programmable Gate Array)等硬件进行加速计算,从而实现目标检测网络的实时推理。GPU虽然具有强大的并行计算能力,然而GPU的功耗通常达到约100W,严重限制了应用场景。ASIC虽然具有高能效的特点,但是开发周期相对较长,成本较高。而FPGA在硬件性能和开发周期之间取得了较好的平衡,广泛应用于神经网络加速器领域。
FPGA是在可编程阵列(PAL,Programming Array Logic)、通用阵列逻辑器件(GAL,Generic Array Logic)、可擦除可编辑逻辑器件(EPLD,Erasable Programmable LogicDevice)等可编程器件的基础上进一步发展的产物。它是作为ASIC领域中的一种半定制电路而出现的,即解决了定制电路的不足,又克服了原有可编程器件门电路数量有限的缺点。FPGA采用了逻辑单元阵列(LCA,Logic Cell Array)这样一个新概念,内部包括可配置逻辑模块(CLB,Configurable Logic Block)、可编程输入输出单元(IOB,Input outputblock)、和内部连线三个部分,可以支持一片可编程只读存储器(PROM,Programmableread-only memory)编程多片FPGA。由于灵活的可重配置能力,和出色的性能功耗比,使FPGA成为当今一种重要的深度学习处理器。
为了在FPGA上实现目标检测算法,近年来已经提出了许多相关方法。专利CN109214504A提出一种对Yolovl进行量化的方法,更进一步地,专利CN110555516A提出了一种基于FPGA的Yolov2-tiny神经网络低延时硬件加速器方法。然而,这两项工作所针对的Yolov1模型和Yolov2模型早已被淘汰。截止2020年为止,在工程中广泛应用的模型是Yolov3。而Yolov3模型的结构比之前的模型增加了一种残差结构,而传统技术中没有针对残差结构进行处理的步骤,因此无法适用于Yolov3模型。
发明内容
基于此,有必要针对上述问题提供一种应用于FPGA的Yolov3量化方法、装置、设备及介质。
一种应用于FPGA的Yolov3量化方法,包括:
获取批归一化层参数和初始权重参数;
将所述批归一化层参数和所述初始权重参数融合,以得到融合后的批归一化值;
对所述批归一化值进行量化,以得到批归一化量化值;
根据所述批归一化量化值及激活函数,得到下一层神经网络的激活量化值。
在其中一个实施例中,所述批归一化值y满足:
y=a*wx+b→y=aw*x+b
其中,a和b均为所述批归一化层参数,w为所述初始权重参数,x为激活参数,aw为新的权重。
在其中一个实施例中,所述对所述批归一化值进行量化,以得到批归一化量化值,包括:
获取批归一化量化参数和新的权重的权重量化参数;
根据所述权重量化参数、所述批归一化量化参数对所述批归一化值进行卷积量化,得到所述批归一化量化值;
所述批归一化量化值yquant满足:
yquant=Sw(aw)*Sxx+SwSxb=SwSx(aw*x+b)=SwSxy
其中,Sw为所述权重量化参数,Sx为激活量化参数,y为所述批归一化值。
在其中一个实施例中,所述批归一化量化参数Sb满足:Sb=SwSx
在其中一个实施例中,所述激活函数为:
Figure BDA0002874933560000031
在其中一个实施例中,所述根据所述批归一化量化值及激活函数,得到下一层神经网络的激活量化值,包括:
将所述批归一化量化值进行反量化,以得到所述批归一化值并作为下一层神经网络的激活参数;
获取下一层神经网络的激活量化参数;
根据下一层神经网络的激活量化参数和下一层神经网络的激活参数,得到下一层神经网络的激活量化值。
一种应用于FPGA的量化装置,包括:
获取模块,用于获取批归一化层参数和初始权重参数;
融合模块,将所述批归一化层参数和所述初始权重参数融合,以得到融合后的批归一化值;
量化模块,用于对所述批归一化值进行量化,以得到批归一化量化值;
跨层处理模块,根据所述批归一化量化值及激活函数,得到下一层神经网络的激活量化值。
在其中一个实施例中,所述批归一化值y满足:
y=a*wx+b→y=aw*x+b
其中,a和b均为所述批归一化层参数,w为所述初始权重参数,x为激活参数,aw为新的权重。
一种计算机设备,包括存储器和处理器;所述处理器上存储有可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述任一项所述方法的步骤。
一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述任一项所述的方法的步骤。
上述应用于FPGA的Yolov3量化方法、装置、设备及介质通过将批归一化层参数和权重参数融合从而将可以避免出现批归一化层参数少不适合被直接量化的问题,并且融合后能够将Yolov3模型中的残差模块中的各层应用于FPGA,使得量化方法能够使用于Yolov3模型。
附图说明
为了更清楚地说明本申请实施例或传统技术中的技术方案,下面将对实施例或传统技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为对于权重值量化时采用饱和激活量化方式示意图;
图2为激活使用的非饱和量化方式示意图;
图3为卷积模块结构示意图;
图4为残差模块结构示意图;
图5为一实施例中的应用于FPGA的Yolov3量化方法流程图;
图6为一具体实施例中的应用于FPGA的Yolov3量化方法流程图;
图7为一实施例中的应用于FPGA的Yolov3量化装置的结构框图;
图8为一实施例中的计算机设备的结构示意图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
传统的量化方法中,需要先进行预处理的步骤即对Yolov的权重值和激活值进行量化,若要适用于Yolov3模型并应用于FPGA,则需要对FPGA进行进一步适配的过程。
具体的,预处理的步骤包括:
对Yolov3的权重值进行量化。具体包括,统计每层权重值中的绝对值的最大值
Figure BDA0002874933560000051
参见图1,对于权重值量化时采用饱和激活量化方式,根据每层权重值中的绝对值的最大值
Figure BDA0002874933560000052
计算权重量化参数Sw
Figure BDA0002874933560000061
根据权重量化参数Sw对权重值w进行映射,得到权重量化值wquant
Figure BDA0002874933560000062
对Yolov3的激活值进行量化。具体包括,获取50~100张与目标数据集分布相同的图片,并将其作为校正数据集,将Yolov3模型在校正数据集上进行一次推理并统计每层的激活值,并对每层的激活值进行下面的步骤:
步骤1:使用包含2048个矩形的直方图统计每层的激活值的数据分布P;
步骤2:参见图2,从128~2048不断的截断数据分布P,然后将截断区外的值全部求和后加到截断区的最后一个值上。从128开始截断能够不使用衰减因子,从而简化计算。将截断区外的值求和后加到截断区的最后一个值上能够尽可能的利用截断区外的信息。
步骤3:计算截断后的数据分布P上的概率分布;
步骤4:创建数据分布Q,其元素包括截断后的数据分布P的int8量化值;
步骤5:将数据分布Q的长度拓展到与截断后的数据分布P具有相同的长度;
步骤6:计算最终得到的数据分布Q的概率分布;
步骤7:计算截断后的数据分布P和最终得到的数据分布Q的KL散度值;
步骤8:不断的循环执行步骤1至7从而不断构造新的数据分布P和新的数据分布Q,直到相对熵最小,此时的数据分布P的截断长度为m,并且此时数据分布Q能够极好的拟合数据分布P。
得到截断长度m后,对于[-m,m]之间的数值,使用与权重激活相同的方式计算激活量化参数Sx
Sx=127/m
由此能够进一步根据激活量化参数Sx对激活值x进行量化,得到激活量化值xquant
Figure BDA0002874933560000071
对Yolov3的激活量化值xquant和权重量化值wquant进行卷积得到卷积值yquant
yquant=wquant*xquant=Sww*Sxx
其中,w为权重值,x为激活值,Sx为激活量化参数,Sw为权重量化参数。
具体的,对FPGA进行进一步适配的过程包括:
Yolov3的骨干网络为一个具有53层卷积层的卷积神经网络,其主要由不同大小的残差模块组成。Yolov3的骨干网络输出对图像的特征提取信息后,分别在三个不同大小的分支检测头上进行目标检测。
请参阅图3,一个卷积模块由一个1*1的卷积层、一个3*3的卷积层及一个短连接构成。其中,短连接将该卷积模块的输入直接传送到输出位置与输出相加之后作为最终的输出。
请参阅图4,一个残差模块由一个卷积层、一个批归一化层及一个激活函数层构成,激活函数可以是泄露激活函数(LeakyRelu)。
假设输入为x,则经过卷积层后,x变为:
y=wx
经过批归一化层之后,x变为:
y=a*wx+b
Figure BDA0002874933560000072
Figure BDA0002874933560000073
经过激活函数层之后,x变为:
Figure BDA0002874933560000074
由上述传统技术的量化过程可知,将传统的Yolov3模型应用于FPGA至少存在以下缺陷:
FPGA不适应批归一化层的除法,并且批归一化层的参数较少,不适合被直接量化;
FPGA不能适应激活函数中的浮点乘法操作;
由于量化参数是针对每层激活值的,短连接进行的数据跨层传输会带来数据分布改变的问题。
本申请提供一种应用于FPGA的Yolov3量化方法至少能够解决上述传统技术量化过程中的至少一个问题。
图1为一实施例中应用于FPGA的Yolov3量化方法流程图。如图1所示,应用于FPGA的Yolov3量化方法(以下简称量化方法)包括以下步骤:
步骤S11,获取批归一化层参数和初始权重参数。
具体的,批归一化层(BN,Batch Normalization)是一个深度神经网络训练的技巧,它不仅可以加快Yolov3模型的收敛速度,而且更重要的是在一定程度缓解了深层网络中“梯度弥散”的问题,从而使得训练深层网络模型更加容易和稳定。批归一化层参数即为批归一化操作中的参数。本实施例中的初始权重参数即为传统技术中的权重参数,然而在后续过程中由于将批归一化层参数和初始权重参数融合,使得本实施例所应用的权重参数不同于传统技术中的权重参数。
步骤S12,将批归一化层参数和初始权重参数融合,以得到融合后的批归一化值。
具体的,对传统技术中的预处理部分进行改进,将批归一化层的计算过程和权重量化过程进行融合,即将批归一化层参数和初始权重参数融合以得到融合后的批归一化值,从而使得将Yolov3模型应用于FPGA时能够避免批归一化层参数太少不适合被直接量化的问题。
步骤S13,对批归一化值进行量化,以得到批归一化量化值。
具体的,批归一化值可以表示为关于激活参数和权重参数的关系式,可以根据该关系式对批归一化值进行量化卷积从而得到批归一化量化值。由于批归一化量化值由批归一化值量化得到,因此,批归一化值也可以由批归一化量化值反量化得到。
步骤S14,根据批归一化量化值及激活函数,得到下一层的激活量化值。
具体的,激活函数可以采用为本领域技术人员所熟知的任意激活函数,譬如可以采用泄露激活函数,也可以采用改进后激活函数。根据激活函数可以得到激活参数在不同条件下的批归一化量化值。根据批归一化量化值可以反量化得到批归一化值,并将本层神经网络的批归一化值作为下一层神经网络的激活参数,对下一层神经网络的激活参数进行量化可以得到下一层的激活量化值。
上述量化方法通过将批归一化层参数和权重参数融合从而可以避免批归一化层参数较少不适合被直接量化的问题,并且融合后能够将Yolov3模型中的残差模块中的各层应用于FPGA,使得量化方法能够使用于Yolov3模型。Yolov3模型计算的速度和精度较为均衡。
图2为一具体实施例中的量化方法的结构框图。如图2所示,量化方法具体具体包括:
步骤S21,获取批归一化层参数和初始权重参数。
具体的,批归一化层参数为a和b,初始权重参数为w。
步骤S22,将批归一化层参数和初始权重参数融合,以得到融合后的批归一化值。
具体的,可以将批归一化层参数a与权重参数w融合,从而将aw作为新的权重。融合后的批归一化值y满足:
y=a*wx+b→y=aw*x+b
其中,a和b均为批归一化层参数,w为初始权重参数,x为激活参数,将批归一化层参数a和初始权重参数w融合从而得到新的权重aw。
步骤S23,对批归一化值进行量化,以得到批归一化量化值,具体包括步骤S231和S232:
步骤S231,获取批归一化量化参数和新的权重的权重量化参数。
具体的,对新的权重aw进行量化可以得到权重量化参数Sw。批归一化层参数包括a和b,由于本实施例中将批归一化层参数a和权重参数w结合在一起,因此不必单独计算批归一化层参数a的量化参数,通过推理可以得到批归一化层参数b的量化参数Sb=Sw*Sx
步骤S232,根据权重量化参数、批归一化量化参数对批归一化值进行卷积量化,得到批归一化量化值。
具体的,批归一化量化值yquant满足:
yquant=Sw(aw)*Sxx+SwSxb=SwSx(aw*x+b)=SwSxy
其中,Sw为权重量化参数,Sx为激活量化参数,y为批归一化值。
本实施例中,量化卷积操作只包含了整数乘和加法操作,使得改进后的Yolov3模型能够适应于FPGA。并且批归一化量化值能够容易的反量化为批归一化值。
可选的,激活函数为:
Figure BDA0002874933560000101
相比于传统的泄露激活函数,本实施例中将激活参数x小于等于零时的乘数0.1替换为0.125,使得可以通过右移3位的计算来代替,从而避免FPGA进行浮点运算。
步骤S24,根据批归一化量化值及激活函数,得到下一层的激活量化值,具体包括步骤S241至S243。
步骤S241,将批归一化量化值进行反量化,以得到批归一化值并作为下一层神经网络的激活参数。
具体的,将本层神经网络的批归一化值作为下一层神经网络的激活参数,本层神经网络的批归一化值可以通过对批归一化量化值反量化得到,从而可以得到下一层神经网络的激活参数xnext为:
Figure BDA0002874933560000111
步骤S242,获取下一层神经网络的激活量化参数。
步骤S243,根据下一层神经网络的激活量化参数和下一层神经网络的激活参数,得到下一层神经网络的激活量化值。
具体的,下一层神经网络的激活量化值xnext_quant为:
Figure BDA0002874933560000112
其中,
Figure BDA0002874933560000113
为下一层神经网络的激活量化参数。
具体的,下一层神经网络的激活量化参数可以在预处理过程中计算并取整,在计算下一层神经网络的激活量化值时可以直接根据取整后的值和本层神经网络的批归一化量化值yquant即可以计算得到下一层神经网络的激活量化值xnext_quant
将本层反量化后得到的批归一化值与下一层激活量化融合的操作会对跨层传递信息的短连接造成影响。譬如,第m层神经网络的数据要传递到第n层神经网络,由于跨层传递信息的操作可能会导致m层神经网络实际的输出数据为已经使用m+1层神经网络参数量化后的整型数据,而第n层神经网络的计算需要使用m层神经网络的参数进行量化,从而造成数据分布的不一致。对于该影响,可以配置需要接收跨层数据的层在接收数据之前,先对数据用本层参数进行重新量化,从而可以保证量化后数据分布域的一致性。譬如,第9层的量化输出跨层传输到第21层作为输入的时候,需要用第21层的量化参数进行重新量化。
将N层之前的数据直接与当前数据相拼接,这样的操作称之为快捷通路(shortcut)。在每层量化参数不同的情况下,N层之前的数据在与当前数据拼接之前必须按照当前层的量化参数进行重新量化。例如,我们需要将第M层和第M-N层的输出数据进行拼接后作为第M+1层的输入,那么第M-N层的输出需要按照第M+1层的输入量化参数进行量化。
可选的,上述权重量化参数和激活量化参数可以采用传统技术中的方法来获取。对yolov3来说,量化是逐层进行的,每层的权重和激活分别以一个浮点数作为量化参数,在模型运行时,对每层的激活和权重分别乘量化参数并取其整数部分作为量化后的权重,如果有超出-127~127的部分则将其统一赋值为-127或127(当量化后权重是正数时则赋为127,反之则赋为-127);权重的量化参数在运行模型的时候动态统计计算,激活的量化参数需要提前进行校准。
对每层权重进行量化时,以其取绝对值后的最大值作为边界值映射到-127/127,对其余值则进行区间均匀的映射。对每层激活参数进行量化时,先将其值划分到2048个直方图中,其后取其2048*2048个不同上下界的子集,分别计算使用该子集进行均匀映射到-127/127后的激活值,之后将该映射后的激活参数反映射回原数据空间并使用KL散度计算反映射后的激活参数分布与原激活参数分布的差异,最终求得反映射激活参数与原激活参数分布最接近的子集范围作为激活量化的映射范围。
应该理解的是,虽然图5和图6的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,图5和图6中的至少一部分步骤可以包括多个步骤或者多个阶段,这些步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤中的步骤或者阶段的至少一部分轮流或者交替地执行。
本申请还提供一种应用于FPGA的Yolov3量化装置(以下简称量化装置)。如图7所示,量化装置70包括获取模块71、融合模块72、量化模块73及跨层处理模块74。获取模块71用于获取批归一化层参数和初始权重参数。融合模块72用于将批归一化层参数和初始权重参数融合,以得到融合后的批归一化值。量化模块73用于对批归一化值进行量化,以得到批归一化量化值。跨层处理模块74用于根据批归一化量化值及激活函数,得到下一层神经网络的激活量化值。
在一实施例中,批归一化值y满足:
y=a*wx+b→y=aw*x+b
其中,a和b均为批归一化层参数,w为初始权重参数,x为激活参数,aw为新的权重。
在一实施例中,量化模块73执行以下步骤:
获取批归一化量化参数和新的权重的权重量化参数;
根据权重量化参数、批归一化量化参数对批归一化值进行卷积量化,得到批归一化量化值;
批归一化量化值yquant满足:
yquant=Sw(aw)*Sxx+SwSxb=SwSx(aw*x+b)=SwSxy
其中,Sw为权重量化参数,Sx为激活量化参数,y为批归一化值。
在一实施例中,批归一化量化参数Sb满足:Sb=SwSx
在一实施例中,激活函数为:
Figure BDA0002874933560000141
在一实施例中,跨层处理模块74执行以下步骤:
将批归一化量化值进行反量化,以得到批归一化值并作为下一层神经网络的激活参数;
获取下一层神经网络的激活量化参数;
根据下一层神经网络的激活量化参数和下一层神经网络的激活参数,得到下一层神经网络的激活量化值。
关于量化装置的具体限定可以参见上文中对于量化方法的限定,在此不再赘述。上述量化装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
上述方法和系统可以在计算机设备中实现。该计算机设备的内部结构图如图8所示。该计算机设备包括通过系统总线连接的处理器、存储器和网络接口。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统和计算机程序。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现前述任一实施例中的量化方法的步骤。本领域技术人员可以理解,图8中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
在一实施例中,一种存储介质,其上存储有计算机程序。该计算机程序被处理器执行时实现如上任一方法的步骤。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)或闪存。易失性存储器可包括随机存取存储器(RAM)或者外部高速缓冲存储器。作为说明而非局限,RAM以多种形式可得,诸如静态RAM(SRAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、双数据率SDRAM(DDRSDRAM)、增强型SDRAM(ESDRAM)、同步链路(Synchlink)DRAM(SLDRAM)、存储器总线(Rambus)直接RAM(RDRAM)、直接存储器总线动态RAM(DRDRAM)、以及存储器总线动态RAM(RDRAM)等。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。

Claims (10)

1.一种应用于FPGA的Yolov3量化方法,其特征在于,包括:
获取批归一化层参数和初始权重参数;
将所述批归一化层参数和所述初始权重参数融合,以得到融合后的批归一化值;
对所述批归一化值进行量化,以得到批归一化量化值;
根据所述批归一化量化值及激活函数,得到下一层神经网络的激活量化值。
2.根据权利要求1所述的方法,其特征在于,所述批归一化值y满足:
y=a*wx+b→y=aw*x+b
其中,a和b均为所述批归一化层参数,w为所述初始权重参数,x为激活参数,aw为新的权重。
3.根据权利要求2所述的方法,其特征在于,所述对所述批归一化值进行量化,以得到批归一化量化值,包括:
获取批归一化量化参数和新的权重的权重量化参数;
根据所述权重量化参数、所述批归一化量化参数对所述批归一化值进行卷积量化,得到所述批归一化量化值;
所述批归一化量化值yquant满足:
yquant=Sw(aw)*Sxx+SwSxb=SwSx(aw*x+b)=SwSxy
其中,Sw为所述权重量化参数,Sx为激活量化参数,y为所述批归一化值。
4.根据权利要求3所述的方法,其特征在于,所述批归一化量化参数Sb满足:Sb=SwSx
5.根据权利要求4所述的方法,其特征在于,所述激活函数为:
Figure FDA0002874933550000011
6.根据权利要求5所述的方法,其特征在于,所述根据所述批归一化量化值及激活函数,得到下一层神经网络的激活量化值,包括:
将所述批归一化量化值进行反量化,以得到所述批归一化值并作为下一层神经网络的激活参数;
获取下一层神经网络的激活量化参数;
根据下一层神经网络的激活量化参数和下一层神经网络的激活参数,得到下一层神经网络的激活量化值。
7.一种应用于FPGA的Yolov3量化装置,其特征在于,包括:
获取模块,用于获取批归一化层参数和初始权重参数;
融合模块,用于将所述批归一化层参数和所述初始权重参数融合,以得到融合后的批归一化值;
量化模块,用于对所述批归一化值进行量化,以得到批归一化量化值;
跨层处理模块,用于根据所述批归一化量化值及激活函数,得到下一层神经网络的激活量化值。
8.根据权利要求7所述的装置,其特征在于,所述批归一化值y满足:
y=awx+b→y=aw*x+b
其中,a和b均为所述批归一化层参数,w为所述初始权重参数,x为激活参数,aw为新的权重。
9.一种计算机设备,包括存储器和处理器;所述处理器上存储有可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1~6任一项所述方法的步骤。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1~6任一项所述的方法的步骤。
CN202011631520.4A 2020-12-31 2020-12-31 应用于FPGA的Yolov3量化方法、装置、设备及介质 Pending CN112668658A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202011631520.4A CN112668658A (zh) 2020-12-31 2020-12-31 应用于FPGA的Yolov3量化方法、装置、设备及介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202011631520.4A CN112668658A (zh) 2020-12-31 2020-12-31 应用于FPGA的Yolov3量化方法、装置、设备及介质

Publications (1)

Publication Number Publication Date
CN112668658A true CN112668658A (zh) 2021-04-16

Family

ID=75413381

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202011631520.4A Pending CN112668658A (zh) 2020-12-31 2020-12-31 应用于FPGA的Yolov3量化方法、装置、设备及介质

Country Status (1)

Country Link
CN (1) CN112668658A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116108896A (zh) * 2023-04-11 2023-05-12 上海登临科技有限公司 模型量化方法、装置、介质及电子设备

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116108896A (zh) * 2023-04-11 2023-05-12 上海登临科技有限公司 模型量化方法、装置、介质及电子设备

Similar Documents

Publication Publication Date Title
CN109754066B (zh) 用于生成定点型神经网络的方法和装置
US20200372243A1 (en) Image processing method and apparatus, facial recognition method and apparatus, and computer device
CN107609641B (zh) 稀疏神经网络架构及其实现方法
KR102592721B1 (ko) 이진 파라미터를 갖는 컨볼루션 신경망 시스템 및 그것의 동작 방법
US10656962B2 (en) Accelerate deep neural network in an FPGA
Su et al. Redundancy-reduced mobilenet acceleration on reconfigurable logic for imagenet classification
CN111797983A (zh) 一种神经网络构建方法以及装置
CN112529146B (zh) 神经网络模型训练的方法和装置
CN111126668A (zh) 基于图卷积网络的Spark作业时间预测方法和装置
CN112183295A (zh) 行人重识别方法、装置、计算机设备及存储介质
CN111562977A (zh) 神经网络模型拆分方法、装置、存储介质和计算机系统
CN114698395A (zh) 神经网络模型的量化方法和装置、数据处理的方法和装置
CN112668658A (zh) 应用于FPGA的Yolov3量化方法、装置、设备及介质
CN111160516A (zh) 一种深度神经网络的卷积层稀疏化方法及装置
CN115952855A (zh) 神经网络量化方法、装置及设备
WO2022163861A1 (ja) ニューラルネットワーク生成装置、ニューラルネットワーク演算装置、エッジデバイス、ニューラルネットワーク制御方法およびソフトウェア生成プログラム
CN111709415A (zh) 目标检测方法、装置、计算机设备和存储介质
CN112016702A (zh) 基于迁移学习的医疗数据处理方法、装置、设备及介质
CN115841590B (zh) 神经网络推理优化方法、装置、设备及可读存储介质
CN113807330B (zh) 面向资源受限场景的三维视线估计方法及装置
CN115688917A (zh) 神经网络模型的训练方法、装置、电子设备及存储介质
CN117348837A (zh) 浮点精度模型的量化方法、装置、电子设备以及存储介质
JP7151788B2 (ja) ニューラルネットワーク学習装置、方法およびプログラム
US11100321B2 (en) Information processing method and information processing system
CN113449863A (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