一种优化人工神经网络的方法技术

技术编号:16365843 阅读:51 留言:0更新日期:2017-10-10 21:58
在本申请中,我们提出如何部署全部CNN给FPGA嵌入式平台加速器。我们提出了一种用于图像网络大规模分类的CNN加速器。具体而言,我们在嵌入式FPGA平台上更进一步,提出了一个基于嵌入式FPGA的加速设计,例如可用于图像网络大规模图像分类。

A method of Optimizing Artificial Neural Networks

In this application, we show how to deploy all CNN to the FPGA embedded platform accelerator. We propose a CNN accelerator for large-scale classification of image networks. Specifically, on the embedded FPGA platform, we propose an accelerated design based on embedded FPGA, for example, it can be used in image networks and large-scale image classification.

【技术实现步骤摘要】
一种优化人工神经网络的方法
本专利技术涉及人工神经网络(ANN),例如卷积神经网络(CNN),尤其涉及如何基于嵌入式FPGA实现压缩和加速的卷积神经网络。
技术介绍
基于人工神经网络,尤其是卷积神经网络(CNN,ConvolutionalNeuralNetwork)的方法在很多应用中都取得了极大的成功,尤其是在计算机视觉领域一直得到最强大的和广泛使用。图像分类是计算机视觉(CV)中的一个基本问题。卷积神经网络(CNN)使得图像分类精度取得很大的进步。在Image-NetLargeScaleVisionRecognitionChallenge(ILSVRC)2012,Krizhevsky等人表示,通过在分类任务取得84.7%的前5项准确率,其中CNN具有很大作用,这是明显高于其他传统的图像分类方法。在接下来的几年里,例如在ILSVRC2013,ILSVRC2014和ILSVRC2015,精度提高到88.8%,93.3%和96.4%。虽然基于CNN的方法具有最先进的性能,但与传统方法相比需要更多的计算和内存资源。大多数基于CNN方法必须依赖于大型服务器。然而,对于嵌入式系统有一个不可忽视本文档来自技高网...
一种优化人工神经网络的方法

【技术保护点】
一种优化人工神经网络(ANN)的方法,其中所述ANN至少包括:第1、第2、…第n卷积层(CONV层),第1、第2、…第m全连层(FC层),其中所述n、m为正整数,所述ANN可以接收输入数据,依次经过所述ANN的所述n个卷积层和m个全连层中的每一层处理得到相应的特征图集,所述j为正整数,所述方法包括:压缩步骤,用于压缩所述n个ANN的卷积层(CONV层)、m个全连层(FC层)的权重参数;定点量化步骤,包括:权重量化步骤,把压缩后的ANN的n个卷积层(CONV层)、m个全连层(FC层)中每一层的权重参数从浮点数量化为定点数,其中针对各层的权重参数动态地选取量化范围,该量化范围在该层内部不变;数据量...

【技术特征摘要】
2016.08.12 CN 20161066320191.一种优化人工神经网络(ANN)的方法,其中所述ANN至少包括:第1、第2、…第n卷积层(CONV层),第1、第2、…第m全连层(FC层),其中所述n、m为正整数,所述ANN可以接收输入数据,依次经过所述ANN的所述n个卷积层和m个全连层中的每一层处理得到相应的特征图集,所述j为正整数,所述方法包括:压缩步骤,用于压缩所述n个ANN的卷积层(CONV层)、m个全连层(FC层)的权重参数;定点量化步骤,包括:权重量化步骤,把压缩后的ANN的n个卷积层(CONV层)、m个全连层(FC层)中每一层的权重参数从浮点数量化为定点数,其中针对各层的权重参数动态地选取量化范围,该量化范围在该层内部不变;数据量化步骤,把输入数据提供给所述ANN,所述输入数据被所述ANN的m个卷积层(CONV层)、n个全连层(FC层)依次处理得到各个特征图集j,把各个特征集j从浮点数量化为定点数,其中针对各个特征图集j动态地选取量化范围,该量化范围在所述特征图集内不变;编译步骤,生成可以在专用加速器上运行的指令,以在所述专用加速器上部署所述ANN,其中所述指令生成至少基于:所述权重量化步骤所输出的量化权重,以及所述数据量化步骤所选取的量化范围。2.根据权利要求1的方法,所述压缩步骤进一步包括:修剪步骤,所述修剪步骤包括:(a)初始化步骤,把卷积层、FC层的权重初始化为随机值,其中生成了具有完全连接的ANN,所述连接具有权重参数,(b)训练步骤,训练所述ANN,根据ANN的精度来调整ANN的权重,直到所述精度达到预定标准;(c)修剪步骤,基于预定的条件,发现ANN中的不重要的连接,修剪所述不重要的连接,被修剪的连接的权重参数不再被保存;(d)微调步骤,将被修剪的连接重新设置为权重参数值为零的连接;重复(b)、(c)、(d)步骤,直到ANN的精度达到预定标准。3.根据权利要求2所述的方法,所述训练步骤基于随机梯度下降算法来调整所述ANN的权重。4.根据权利要求2所述的方法,所述预定条件包括以下任意之一:连接的权重参数为0;或连接的权重参数小于预定值。5.根据权利要求1的方法,所述压缩步骤进一步包括:奇异值分解(SVD)步骤,以实现对所述CONV层或FC层的权重矩阵W的稀疏化处理。6.根据权利要求1的方法,所述动态定点量化步骤包括:把64、32或16位浮点数量化为16位、8位或4位的定点数。7.根据权利要求1的方法,所述权重量化步骤进一步包括:使用如下表达式来表示定点数:1其中bw是定点数的位宽度,fl是可以是负的部分的长度,寻找针对每一层权重的最优fl,以表示所述被量化的权重。8.根据权利要求7的方法,其中寻找最优fl的步骤包括:估计每一层的权重参数的浮点数取值范围;基于所述范围,给fl设置一个初始值;以如下表达式在初始值的邻域搜索最优fl,使得所述fl的定点数权重参数与浮点数权重参数之间的误差最小,其中W是权重,W(bw,fl)代表在给定的bw和fl下的W的定点格式。9.根据权利要求7所述的方法,其中寻找最优fl的步骤包括:估计每一层的权重参数的浮点数取值范围;基于所述范围,给fl设置一个初始值;以如下表达式在初始值的邻域搜索最优fl,其中W是权重,W(bw,fl)代表在给定的bw和fl下的W的定点格式,i代表在bw个位中的某一位,ki为该位权重。10.根据权利要求1的方法,所...

【专利技术属性】
技术研发人员:姚颂
申请(专利权)人:北京深鉴科技有限公司
类型:发明
国别省市:北京,11

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

1