一种基于神经网络的数据处理方法和装置制造方法及图纸

技术编号:15199971 阅读:108 留言:0更新日期:2017-04-22 00:50
本申请的目的是一种基于神经网络的数据处理方法和装置,其中,所述方法包括:将神经网络的单精度浮点类型数据进行精度转换;对经过所述精度转换形成的低精度浮点类型数据进行神经网络计算。与现有技术相比,本申请提供的基于神经网络的数据处理方法和装置,利用降低精度的方式解决存储量大的问题,可以节省模型占用内存空间,使相同的硬件配置可以运行更大的模型;可以节省数据集占用内存或硬盘空间;当模型部署在集群上时,可以有效降低同步时需要的网络带宽,有效降低通信开销,提高整体性能。

Data processing method and device based on Neural Network

The aim of this application is one kind of neural network data processing method and apparatus based on the method including: single precision floating-point type data of the neural network for precision conversion; calculation of low precision floating-point type data after the conversion precision formed by neural network. Compared with the prior art, the neural network data processing method and device based on the application provides the use, reduce the accuracy of the way to solve the problem of large amount of storage, the model can save memory space, so that the same hardware configuration can run more model; can save data in memory or disk space occupied; when deployed in the model cluster, can effectively reduce the need of synchronization network bandwidth, effectively reduce the communication overhead and improve the overall performance.

【技术实现步骤摘要】

本申请涉及计算机领域,尤其涉及一种基于神经网络的数据处理方法和装置。
技术介绍
随着计算机技术的不断更新换代,神经网络在模拟人类智能方面取得了长足进展。经过近几十年发展,目前神经网络向着更大的模型、更大的数据集方向发展,利用更大的模型和更大的数据集可以得到更高的分类、检测准确率,但带来问题是计算量、存储量的大幅增加。计算量大的问题可以通过多核CPU、GPU等高性能硬件解决,利用更大的内存容量、更大的硬盘容量、更快的网络硬件,满足日益增长的神经网络参数、数据集,但面临升级周期长、稳定性差、设备投资过大等问题。而目前阶段,神经网络学术界还没有大幅减少神经网络计算量和参数量的突破性进展。工业界目前常用的神经网络框架如Caffe、Convnet2等采用了多核CPU、GPU对计算进行加速,当模型太大或数据量太大时,将算法分布在一个集群的多台计算设备上同时进行(分别称为模型并行、数据并行),但计算节点之间同步参数、数据所需的网络带宽也是巨大的。为此,亟需研究一种降低神经网络参数、数据大小的方法。
技术实现思路
本申请的一个目的是提供一种基于神经网络的数据处理方法和装置,以解决实现神经网络时,在不影响算法效果的情况下减少算法对存储空间的需求的问题。根据本申请的一个方面,提供了一种基于神经网络的数据处理方法,其中,所述方法包括:将神经网络的单精度浮点类型数据进行精度转换;对经过所述精度转换形成的低精度浮点类型数据进行神经网络计算。根据本申请的另一个方面,提供了一种基于神经网络的数据处理装置,其中,所述装置包括:精度转换模块,用于将神经网络的单精度浮点类型数据进行精度转换;神经网络计算模块,用于对经过所述精度转换形成的低精度浮点类型数据进行神经网络计算。与现有技术相比,本申请提供的基于神经网络的数据处理方法和装置,利用降低精度的方式解决存储量大的问题,可以节省模型占用内存空间,使相同的硬件配置可以运行更大的模型;可以节省数据集占用内存或硬盘空间;当模型部署在集群上时,可以有效降低同步时需要的网络带宽,有效降低通信开销,提高整体性能。附图说明通过阅读参照以下附图所作的对非限制性实施例所作的详细描述,本申请的其它特征、目的和优点将会变得更明显:图1示出根据本申请一个方面的基于神经网络的数据处理方法的流程示意图;图2示出根据本申请又一个方面的基于神经网络的数据处理方法的流程示意图;图3示出根据本申请一个方面的基于神经网络的数据处理装置的结构示意图;图4示出根据本申请又一个方面的基于神经网络的数据处理装置的结构示意图。附图中相同或相似的附图标记代表相同或相似的部件。具体实施方式下面结合附图对本申请作进一步详细描述。图1示出根据本申请一个方面的基于神经网络的数据处理方法的流程示意图。如图1所示,该基于神经网络的数据处理方法包括:步骤S101,将神经网络的单精度浮点类型数据进行精度转换。步骤S102,对经过所述精度转换形成的低精度浮点类型数据进行神经网络计算。其中,所述低精度浮点类型数据的指数项小于所述单精度浮点类型数据的指数项,和/或,所述低精度浮点类型数据的尾数项小于所述单精度浮点类型数据的尾数项。在此,本实施例中的神经网络(NN,NeuralNetworks)采用卷积神经网络(CNN,ConvolutionalNeuralNetworks),此外,还可采用深度神经网络(DNN,DeepNeuralNetworks)。神经网络的计算包含神经元操作。神经元操作即非线性变换,将输入数据通过一个非线性函数,如ReLU函数、Sigmoid函数或tanH函数,得到压缩后的输出数据送入下一个计算环节。其中,ReLU函数计算过程为:y=max(x,0);Sigmoid函数计算过程为:y=1/(1+e^(-x));tanH函数计算过程为:y=(e^(x)-e^(-x))/(e^x+e^(-x))。卷积神经网络的中间各层的非线性变换具有压缩动态范围的效果。因此,当神经网络的层数越来越多时,只要保证新增加的层包含神经元操作,那么其动态范围就可以控制在相对稳定的区域,为降低数据类型的数值精度提供了可能。现有技术中的神经网络普遍采用单精度浮点(float)类型数据。IEEE754中规定的单精度float类型格式如下:float类型总共占用32bit,其中包含1bit符号(sign),8bit指数项(exponent)和23bit尾数项(fraction)。本实施例中的低精度浮点类型可以采用半精度浮点类型,其格式如下:半精度类型总共占用16bit,其中包含1bit符号(sign),5bit指数项(exponent)和10bit尾数项(fraction)。对于神经网络计算,中间各层的非线性变换具有压缩动态范围的效果,可以通过精度转换将数值精度降低以节省存储空间。使用半精度数值类型代替单精度数值类型可以将存储量降低一倍,这样支持的模型尺寸增大了一倍,同时在集群中同步参数、数据时,所需带宽降低为原先一半。低精度浮点类型除了采用半精度浮点类型之外,还可采用更低精度的浮点类型,例如3bit指数项和4bit尾数项的类型,可以根据需要自定义设置。具体地,所述精度转换包括:步骤S1011,对所述单精度浮点类型数据进行最大值估算。在此,最大值估算可以确定单精度浮点类型数据的动态范围。步骤S1012,设定量化噪声功率。在此,根据应用对误差敏感程度确定量化噪声功率,量化噪声功率直接影响后面低精度浮点类型数据的指数项、尾数项的位宽。步骤S1013,根据所述最大值估算的结果和所述量化噪声功率设定所述指数项位宽和所述尾数项位宽。步骤S1014,根据设定的所述指数项位宽和所述尾数项位宽对所述单精度浮点类型数据进行数据类型转换。在此,数据类型转换可以先将原始数据进行量化,然后通过查表或计算方式得到新的值,之后进行必要的格式调整就可以得到指数项位宽和/或尾数项位宽低于单精度浮点类型的低精度浮点类型数据。具体地,所述神经网络计算包括:步骤S1021,将所述低精度浮点类型数据输入卷积层进行卷积运算。步骤S1022,将卷积运算的结果输入最大池化层进行池化处理。步骤S1023,将池化处理的结果输入局部对比归一化层进行动态范围压缩。步骤S1024,将动态范围压缩的结果输入全连接层进行输出关联。可选地,所述神经网络计算还包括:步骤S1025,将动态范围压缩的结果返回卷积层进行循环处理。例如,对于卷积神经网络,输入层为缩放到指定尺寸的图像。卷积层利用大小不等的卷积核对输入的图像进行卷积运算,输出为特征图(featuremap)。将特征图经过最大池化(Pooling)层,得到较小尺寸的高维特征图。之后经过局部对比归一化层压缩动态范围。以上各层可重复循环若干次,重复次数与模型相关,对于大型模型可能为20层以上。在最后的输出层之前,有若干全连接层,用于将高维特征图关联到不同的输出类别。其中,卷积层的动态范围最大,其次是全连接层,最大池化层不改变动态范围。可选地,所述神经网络计算还包括:调取计算库的计算函数进行神经网络计算。其中,所述计算库包括:所述低精度浮点类型数据与所述低精度浮点类型数据之间的计算函数、所述低精度浮点类型数据与所述单精度本文档来自技高网...
一种基于神经网络的数据处理方法和装置

【技术保护点】
一种基于神经网络的数据处理方法,其中,所述方法包括:将神经网络的单精度浮点类型数据进行精度转换;对经过所述精度转换形成的低精度浮点类型数据进行神经网络计算。

【技术特征摘要】
1.一种基于神经网络的数据处理方法,其中,所述方法包括:将神经网络的单精度浮点类型数据进行精度转换;对经过所述精度转换形成的低精度浮点类型数据进行神经网络计算。2.根据权利要求1所述的方法,其中,所述低精度浮点类型数据的指数项小于所述单精度浮点类型数据的指数项,或,所述低精度浮点类型数据的尾数项小于所述单精度浮点类型数据的尾数项。3.根据权利要求2所述的方法,其中,所述精度转换包括:对所述单精度浮点类型数据进行最大值估算;设定量化噪声功率;根据所述最大值估算的结果和所述量化噪声功率设定所述指数项位宽和所述尾数项位宽;根据设定的所述指数项位宽和所述尾数项位宽对所述单精度浮点类型数据进行数据类型转换。4.根据权利要求1所述的方法,其中,所述方法还包括网络初始化;所述网络初始化包括:根据所述低精度浮点类型数据分配所述神经网络的所需存储空间。5.根据权利要求4所述的方法,其中,所述网络初始化还包括:获取网络权值并对所述网络权值进行精度转换。6.根据权利要求1至5中任一项所述的方法,其中,所述神经网络计算包括:将所述低精度浮点类型数据输入卷积层进行卷积运算;将卷积运算的结果输入最大池化层进行池化处理;将池化处理的结果输入局部对比归一化层进行动态范围压缩;将动态范围压缩的结果输入全连接层进行输出关联。7.根据权利要求6所述的方法,其中,所述神经网络计算还包括:将动态范围压缩的结果返回卷积层进行循环处理。8.根据权利要求6或7所述的方法,其中,所述神经网络计算还包括:调取计算库的计算函数进行神经网络计算;其中,所述计算库包括:所述低精度浮点类型数据与所述低精度浮点类型数据之间的计算函数、所
\t述低精度浮点类型数据与所述单精度浮点类型数据之间的计算函数、所述低精度浮点类型数据与双精度浮点类型数据之间的计算函数。9.一种基于神经网络的数据处理装置,其中,所述装置包括:精度转换模块,用于将神经网络的单精度浮点类型数据进行精度转换;神经网络计算模块,用于对经过所述...

【专利技术属性】
技术研发人员:赵永科
申请(专利权)人:阿里巴巴集团控股有限公司
类型:发明
国别省市:开曼群岛;KY

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

1