基于工程化实现的卷积神经网络量化方法技术

技术编号:18895727 阅读:17 留言:0更新日期:2018-09-08 11:32
本发明专利技术公开了一种基于工程化实现的卷积神经网路量化方法,主要解决现有技术耗费时间长,准确率不高的问题,其实现方案是:1)下载已经预训练好的浮点格式的卷积神经网络模型;2)在下载的浮点网络中定义量化层;3)在下载的浮点网络中每一层批量归一化层后面调用2)定义的量化层,并构建输入数据的量化公式对浮点输入数据进行量化;4)在1)下载的浮点网络中,构建权值量化公式对浮点权值进行量化。本发明专利技术与现有技术相比,在保持识别准确率的同时降低了图像分类任务的时间成本和存储需求,可用于专用芯片FPGA/ASIC硬件平台的部署。

Convolution neural network quantization method based on engineering implementation

The invention discloses an engineering-based convolutional neural network quantization method, which mainly solves the problems of long time-consuming and low accuracy of the existing technology. The implementation scheme is: 1) downloading the pre-trained convolutional neural network model in floating-point format; 2) defining the quantization layer in the downloaded floating-point network; 3) downloading The quantization layer defined by 2) is called after each batch normalization layer in the loaded floating-point network, and the quantization formula of the input data is constructed to quantify the floating-point input data; 4) In the downloaded floating-point network, the weight quantization formula is constructed to quantify the floating-point weight. Compared with the prior art, the invention can reduce the time cost and storage requirement of the image classification task while maintaining the recognition accuracy, and can be used for the deployment of the dedicated chip FPGA/ASIC hardware platform.

【技术实现步骤摘要】
基于工程化实现的卷积神经网络量化方法
本专利技术属于深度学习
,具体涉及一种卷积神经网络量化方法,可用于专用芯片FPGA/ASIC硬件平台的部署。
技术介绍
深度学习近年来发展迅速,已经被广泛应用到各个领域,特别是计算机视觉、语音识别和自然语言处理领域。卷积神经网络是深度学习的代表,在计算机视觉领域掀起了热潮,凭借其强大的学习能力被广泛应用于图像分类任务中。为了提高图像分类任务的识别准确率,卷积神经网络的层数越来越多,结构越来越复杂。提高识别准确率的同时也付出了巨大的代价,计算复杂度和模型存储需求大量增加,这不利于卷积神经网络在功率预算有限的硬件平台的部署。因此,改进卷积神经网络的算法,降低卷积神经网络的存储需求已成为趋势,从而可以促进卷积神经网络在硬件平台FPGA和ASIC芯片上的应用。目前,将卷积神经网络使用的32位浮点数的数制量化成低位宽的定点数这种方法可以使得硬件资源占用和功耗更少。Gupta,S.在其发表的论文“Deeplearningwithlimitednumericalprecision”(《ComputerScience》,2015)中提出了使用随机舍入的方法对卷积神经网络进行定点数的量化,该方法在网络量化位宽为16的时候也能取得与网络使用32位浮点数时几乎相同的性能。但是在硬件平台中随机数的实现特别复杂,所以该方法不易于部署在硬件平台上。RastegariM.在其发表的论文“XNOR-Net:ImageNetClassificationUsingBinaryConvolutionalNeuralNetworks”(EuropeanConferenceonComputerVision,2016:525-542)中提出了XNOR-Net,XNOR-Net将卷积神经网络量化成了二值网络,量化位宽为1,该方法虽说能最大程度地降低硬件占用的资源和消耗的功率,实现起来非常的高效。但是对大规模图像数据集imagenet做分类任务时,该方法的识别准确率与网络使用32位浮点数时得到的识别准确率相比下降超过了10%。
技术实现思路
本专利技术的目的在于针对上述现有技术的问题,提出一种基于工程化实现的卷积神经网络量化方法,以在保持识别准确率的同时降低图像分类任务的时间成本和存储需求。本专利技术的基本思路是:根据硬件平台处理器的位宽将卷积神经网络量化为位宽为16、8的定点网络,对定点数整数和小数进行不同的位宽组合,对量化后的定点网络进行测试,根据测试准确率选择最适合部署在硬件平台的定点数位宽和表示格式,其实现方案包括如下:(1)从互联网下载两个已经预训练好的浮点格式卷积神经网络模型;(2)在(1)下载的预训练浮点模型的每一层卷积层和全连接层后面都添加一层自定义的量化层,并用该自定义的量化层对浮点形式的输入数据进行量化,量化的公式为:其中,Convert表示将浮点输入数据转化为定点输入数据,x为浮点输入数据,IL和FL分别表示定点输入数据的整数位宽和小数位宽,round为四舍五入函数,是编程语言的内置函数,2FL表示量化成小数位宽为FL的定点数,-2IL-1表示定点输入数据表示的数值范围的下限,2IL-1-2-FL表示定点输入数据表示的数值范围的上限;(3)对(1)下载的预训练浮点模型中已经训练好的浮点权值进行量化,量化的公式为:其中,Convert表示将浮点权值转化为定点权值,w为浮点权值,IL′和FL′分别表示定点权值的整数位宽和小数位宽,round为四舍五入函数,是编程语言的内置函数,2FL′表示量化成小数位宽为FL′的定点数,-2IL′-1表示定点权值表示的数值范围的下限,2IL′-1-2-FL′表示定点权值表示的数值范围的上限。本专利技术与现有技术相比有以下优点:第一、由于本专利技术将已经预训练好的的浮点卷积神经网络量化为定点卷积神经网络,数据经过量化由高位宽变为低位宽,充分地降低了时间成本。第二、由于只需对网络的前向传播过程进行量化,网络模型设计简单,易于实现。附图说明图1为本专利技术的实现流程图;图2为现有vgg16网络模型结构图;图3为本专利技术使用位宽为16的定点网络测试cifar100得到的准确率;图4为本专利技术使用位宽为8的定点网络测试cifar100得到的准确率;图5为本专利技术使用位宽为16的定点网络测试imagenet得到的准确率;图6为本专利技术使用位宽为8的定点网络测试imagenet得到的准确率。具体实施方式下面结合附图对本专利技术做进一步的描述。参照附图1,本专利技术的具体步骤如下。步骤1,获取预训练浮点模型。本专利技术从互联网下载两个已经预训练好的浮点格式的卷积神经网络模型,一个是由3层卷积层和2层全连接层组成的小型网络模型,另一个是由带13层卷积层和3层全连接层组成的大型网络模型,其中:小型网络模型中每一个卷积层后面按顺序加了一层批量归一化层、激活层、池化层,每一个全连接层后面都按顺序加了一层批量归一化层、激活层、Dropout层,最后一层全连接层除外;该小型网络模型用于测试中规模的数据集cifar100,cifar100的测试集包括10000张测试图片,图片分为100类。该大型网络模型在vgg16模型的基础上在每层卷积层之后都加了一层批量归一化层;该大型网络模型用于测试大规模的数据集imagenet,imagenet是计算机视觉领域最大的数据库,本专利技术使用其中的分类数据集,分类数据集中验证集有50000张验证图片,图片分为1000类。所述常用的vgg16模型,如图2。该vgg16一共有13层卷积层和3层全连接层,13层卷积层分为5段,每段卷积之后紧接着最大池化层。步骤2,浮点模型定点化。(2a)定义一个量化层,量化层对浮点输入数据进行量化,量化的定点数位宽用1+IL+FL表示,其中IL表示整数位宽,FL表示小数位宽;(2b)利用编程语言python,在步骤1下载的小型预训练浮点模型的每一层批量归一化层后面调用(2a)定义的量化层;在步骤1下载的大型预训练浮点模型的每一层批量归一化层后面调用(2a)定义的量化层,由于全连接层后面没有批量归一化层,故直接在全连接层后面调用(2a)定义的量化层,最后一层全连接层不调用;(2c)将(2b)中小型网络的每一层批量归一化层的输出作为(2a)定义的量化层的输入,将大型网络的每一层批量归一化层的输出和全连接层的输出作为(2a)定义的量化层的输入,量化层对这个浮点形式的输入进行量化,量化的公式为:其中,Convert表示将浮点输入数据转化为定点输入数据,x为浮点输入数据,IL和FL分别表示定点输入数据的整数位宽和小数位宽,round为四舍五入函数,是编程语言的内置函数,2FL表示量化成小数位宽为FL的定点数,-2IL-1表示定点输入数据表示的数值范围的下限,2IL-1-2-FL表示定点输入数据表示的数值范围的上限;(2d)对步骤1下载的预训练浮点模型中已经训练好的浮点权值进行量化,量化的定点数位宽用1+IL′+FL′表示,其中IL′表示整数位宽,FL′表示小数位宽,量化的公式为:其中,Convert表示将浮点权值转化为定点权值,w为浮点权值,IL′和FL′分别表示定点权值的整数位宽和小数位宽,round为四舍五入函数,是编程语言的内置函数,2FL′表示量化成小数位宽为本文档来自技高网
...

【技术保护点】
1.一种基于工程化实现的卷积神经网络量化方法,包括:(1)从互联网下载两个已经预训练好的浮点格式卷积神经网络模型;(2)在(1)下载的预训练浮点模型的每一层卷积层和全连接层后面都添加一层自定义的量化层,并用该自定义的量化层对浮点形式的输入数据进行量化,量化的公式为:

【技术特征摘要】
1.一种基于工程化实现的卷积神经网络量化方法,包括:(1)从互联网下载两个已经预训练好的浮点格式卷积神经网络模型;(2)在(1)下载的预训练浮点模型的每一层卷积层和全连接层后面都添加一层自定义的量化层,并用该自定义的量化层对浮点形式的输入数据进行量化,量化的公式为:其中,Convert表示将浮点输入数据转化为定点输入数据,x为浮点输入数据,IL和FL分别表示定点输入数据的整数位宽和小数位宽,round为四舍五入函数,是编程语言的内置函数,2FL表示量化成小数位宽为FL的定点数,-2IL-1表示定点输入数据表示的数值范围的下限,2IL-1-2-FL表示定点输入数据表示的数值范围的上限;(3)对(1)下载的预训练浮点模型中已经训练好的浮点权值进行量化,量化的公式为:其中,Convert表示将浮点权值转化为定点权值,w为浮点权值,IL′和FL′分别表示定点权值的整数位宽和小数位宽,round为四舍五...

【专利技术属性】
技术研发人员:张犁黄蓉陈治宇赵博然牛毅石光明
申请(专利权)人:西安电子科技大学
类型:发明
国别省市:陕西,61

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1