CN106570559A - 一种基于神经网络的数据处理方法和装置 - Google Patents

一种基于神经网络的数据处理方法和装置 Download PDF

Info

Publication number
CN106570559A
CN106570559A CN201510648699.7A CN201510648699A CN106570559A CN 106570559 A CN106570559 A CN 106570559A CN 201510648699 A CN201510648699 A CN 201510648699A CN 106570559 A CN106570559 A CN 106570559A
Authority
CN
China
Prior art keywords
floating
precision
low accuracy
categorical data
data
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
CN201510648699.7A
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.)
Alibaba Group Holding Ltd
Original Assignee
Alibaba Group Holding 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 Alibaba Group Holding Ltd filed Critical Alibaba Group Holding Ltd
Priority to CN201510648699.7A priority Critical patent/CN106570559A/zh
Publication of CN106570559A publication Critical patent/CN106570559A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks

Landscapes

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

Abstract

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

Description

一种基于神经网络的数据处理方法和装置
技术领域
本申请涉及计算机领域,尤其涉及一种基于神经网络的数据处理方法和装置。
背景技术
随着计算机技术的不断更新换代,神经网络在模拟人类智能方面取得了长足进展。经过近几十年发展,目前神经网络向着更大的模型、更大的数据集方向发展,利用更大的模型和更大的数据集可以得到更高的分类、检测准确率,但带来问题是计算量、存储量的大幅增加。计算量大的问题可以通过多核CPU、GPU等高性能硬件解决,利用更大的内存容量、更大的硬盘容量、更快的网络硬件,满足日益增长的神经网络参数、数据集,但面临升级周期长、稳定性差、设备投资过大等问题。而目前阶段,神经网络学术界还没有大幅减少神经网络计算量和参数量的突破性进展。工业界目前常用的神经网络框架如Caffe、Convnet2等采用了多核CPU、GPU对计算进行加速,当模型太大或数据量太大时,将算法分布在一个集群的多台计算设备上同时进行(分别称为模型并行、数据并行),但计算节点之间同步参数、数据所需的网络带宽也是巨大的。为此,亟需研究一种降低神经网络参数、数据大小的方法。
发明内容
本申请的一个目的是提供一种基于神经网络的数据处理方法和装置,以解决实现神经网络时,在不影响算法效果的情况下减少算法对存储空间的需求的问题。
根据本申请的一个方面,提供了一种基于神经网络的数据处理方法,其中,所述方法包括:
将神经网络的单精度浮点类型数据进行精度转换;
对经过所述精度转换形成的低精度浮点类型数据进行神经网络计算。
根据本申请的另一个方面,提供了一种基于神经网络的数据处理装置,其中,所述装置包括:
精度转换模块,用于将神经网络的单精度浮点类型数据进行精度转换;
神经网络计算模块,用于对经过所述精度转换形成的低精度浮点类型数据进行神经网络计算。
与现有技术相比,本申请提供的基于神经网络的数据处理方法和装置,利用降低精度的方式解决存储量大的问题,可以节省模型占用内存空间,使相同的硬件配置可以运行更大的模型;可以节省数据集占用内存或硬盘空间;当模型部署在集群上时,可以有效降低同步时需要的网络带宽,有效降低通信开销,提高整体性能。
附图说明
通过阅读参照以下附图所作的对非限制性实施例所作的详细描述,本申请的其它特征、目的和优点将会变得更明显:
图1示出根据本申请一个方面的基于神经网络的数据处理方法的流程示意图;
图2示出根据本申请又一个方面的基于神经网络的数据处理方法的流程示意图;
图3示出根据本申请一个方面的基于神经网络的数据处理装置的结构示意图;
图4示出根据本申请又一个方面的基于神经网络的数据处理装置的结构示意图。
附图中相同或相似的附图标记代表相同或相似的部件。
具体实施方式
下面结合附图对本申请作进一步详细描述。
图1示出根据本申请一个方面的基于神经网络的数据处理方法的流程示意图。如图1所示,该基于神经网络的数据处理方法包括:
步骤S101,将神经网络的单精度浮点类型数据进行精度转换。
步骤S102,对经过所述精度转换形成的低精度浮点类型数据进行神经网络计算。
其中,所述低精度浮点类型数据的指数项小于所述单精度浮点类型数据的指数项,和/或,所述低精度浮点类型数据的尾数项小于所述单精度浮点类型数据的尾数项。
在此,本实施例中的神经网络(NN,Neural Networks)采用卷积神经网络(CNN,Convolutional Neural Networks),此外,还可采用深度神经网络(DNN,Deep Neural Networks)。神经网络的计算包含神经元操作。神经元操作即非线性变换,将输入数据通过一个非线性函数,如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层以上。在最后的输出层之前,有若干全连接层,用于将高维特征图关联到不同的输出类别。其中,卷积层的动态范围最大,其次是全连接层,最大池化层不改变动态范围。
可选地,所述神经网络计算还包括:
调取计算库的计算函数进行神经网络计算。
其中,所述计算库包括:所述低精度浮点类型数据与所述低精度浮点类型数据之间的计算函数、所述低精度浮点类型数据与所述单精度浮点类型数据之间的计算函数和/或所述低精度浮点类型数据与双精度浮点类型数据之间的计算函数。
由于所有数值类型都是低精度浮点类型,如果调用常规的数学库函数(如C数学库中的math.h、MKL、OpenBLAS等)需要进行数值转换,开销较大。常规计算库只提供了float、double类型的计算函数,而没有低精度浮点和低精度浮点、低精度浮点和float、低精度浮点和double数据类型的计算函数,因此不能直接调用常规计算库,而是先将低精度数据类型转换为float或double,再调用常规计算库。这样会增加一系列的正转换和反转换过程。在本申请中,通过修改常规计算库,增加了低精度浮点和低精度浮点、低精度浮点和单精度浮点、低精度浮点和双单精度浮点数据类型的计算函数。计算完成后将结果以低精度浮点类型的格式保存至文件。
可选地,所述方法还包括:
步骤S103,网络初始化。
具体地,步骤S103网络初始化包括:
步骤S1031,根据所述低精度浮点类型数据分配所述神经网络的所需存储空间。
在此,通过存储空间分配,能够进一步优化神经网络的存储空间结构,降低存储需求。
可选地,步骤S103网络初始化还包括:
步骤S1032,获取网络权值并对所述网络权值进行精度转换。
在此,网络权值也可以通过步骤S1011至步骤S1014进行精度转换。网络权值进行精度转换可以进一步降低神经网络的存储需求。网络权值可以从其他训练过的神经网络中复制得到。
图2示出根据本申请又一个方面的基于神经网络的数据处理方法的流程示意图。如图2所示,该基于神经网络的数据处理方法包括:
步骤S201,对神经网络的单精度浮点类型数据进行最大值估算。
在此,最大值估算可以确定单精度浮点类型数据的动态范围。
步骤S202,设定量化噪声功率。
在此,根据应用对误差敏感程度确定量化噪声功率,量化噪声功率直接影响后面低精度浮点类型数据的指数项、尾数项的位宽。
步骤S203,根据所述最大值估算的结果和所述量化噪声功率设定所述指数项位宽和所述尾数项位宽。
步骤S204,根据设定的所述指数项位宽和所述尾数项位宽对所述单精度浮点类型数据进行数据类型转换,以形成低精度浮点类型数据。
其中,所述低精度浮点类型数据的指数项小于所述单精度浮点类型数据的指数项,和/或,所述低精度浮点类型数据的尾数项小于所述单精度浮点类型数据的尾数项。在此,低精度浮点类型可以采用半精度浮点类型,其格式如下:半精度类型总共占用16bit,其中包含1bit符号(sign),5bit指数项(exponent)和10bit尾数项(fraction)。低精度浮点类型除了采用半精度浮点类型之外,还可采用更低精度的浮点类型,例如3bit指数项和4bit尾数项的类型,可以根据需要自定义设置。
步骤S205,根据所述低精度浮点类型数据分配所述神经网络的所需存储空间。
步骤S206,获取网络权值并对所述网络权值进行精度转换。
在此,网络权值也可以通过步骤S201至步骤S204进行精度转换。网络权值进行精度转换可以进一步降低神经网络的存储需求。
步骤S207,将所述低精度浮点类型数据输入卷积层进行卷积运算。
步骤S208,将卷积运算的结果输入最大池化层进行池化处理。
步骤S209,将池化处理的结果输入局部对比归一化层进行动态范围压缩。
步骤S210,将动态范围压缩的结果输入全连接层进行输出关联,或者,将动态范围压缩的结果返回卷积层进行循环处理。
本实施例中的神经网络采用卷积神经网络。卷积神经网络通过输入层、卷积层、最大池化层、局部对比归一化层、全连接层、输出层进行神经网络的计算。输入层为缩放到指定尺寸的图像。卷积层利用大小不等的卷积核对输入图像进行卷积运算,输出为特征图(feature map)。将特征图经过最大池化层,得到较小尺寸的高维特征图。之后经过局部对比归一化层压缩动态范围。以上各层可重复循环若干次,重复次数与模型相关,对于大型模型可能为20层以上。在最后的输出层之前,有若干全连接层,用于将高维特征图关联到不同的输出类别。其中,卷积层的动态范围最大,其次是全连接层,Pooling层不改变动态范围。
其中,步骤S207至步骤S210通过调取计算库的计算函数进行神经网络计算。所述计算库包括:所述低精度浮点类型数据与所述低精度浮点类型数据之间的计算函数、所述低精度浮点类型数据与所述单精度浮点类型数据之间的计算函数和/或所述低精度浮点类型数据与双精度浮点类型数据之间的计算函数。
由于所有数值类型都是低精度浮点类型,如果调用常规的数学库函数(如C数学库中的math.h、MKL、OpenBLAS等)需要进行数值转换,开销较大。常规计算库只提供了float、double类型的计算函数,而没有低精度浮点和低精度浮点、低精度浮点和float、低精度浮点和double数据类型的计算函数,因此不能直接调用常规计算库,而是先将低精度数据类型转换为float或double,再调用常规计算库。这样会增加一系列的正转换和反转换过程。在本申请中,通过修改常规计算库,增加了低精度浮点和低精度浮点、低精度浮点和单精度浮点、低精度浮点和双单精度浮点数据类型的计算函数,以完成低精度浮点类型数据的计算。计算完成后将结果以低精度浮点类型的格式保存至文件。
图3示出根据本申请一个方面的基于神经网络的数据处理装置的结构示意图。如图3所示,该基于神经网络的数据处理装置包括:精度转换模块31和神经网络计算模块32。
精度转换模块31,用于将神经网络的单精度浮点类型数据进行精度转换;
神经网络计算模块32,用于对经过所述精度转换形成的低精度浮点类型数据进行神经网络计算。
其中,所述低精度浮点类型数据的指数项小于所述单精度浮点类型数据的指数项,和/或,所述低精度浮点类型数据的尾数项小于所述单精度浮点类型数据的尾数项。
在此,本实施例中的神经网络采用卷积神经网络,此外,还可采用深度神经网络。神经网络的计算包含神经元操作。神经元操作即非线性变换,将输入数据通过一个非线性函数,如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尾数项的类型,可以根据需要自定义设置。
图4示出根据本申请一个方面的基于神经网络的数据处理装置的结构示意图。如图4所示,该基于神经网络的数据处理装置包括:精度转换模块31、神经网络计算模块32和网络初始化模块33。
其中,精度转换模块31,用于将神经网络的单精度浮点类型数据进行精度转换。神经网络计算模块32,用于对经过所述精度转换形成的低精度浮点类型数据进行神经网络计算。网络初始化模块33用于在低精度浮点类型数据环境下进行初始化,以节省存储空间。
其中,所述低精度浮点类型数据的指数项小于所述单精度浮点类型数据的指数项,和/或,所述低精度浮点类型数据的尾数项小于所述单精度浮点类型数据的尾数项。
具体地,所述精度转换模块31包括:最大值估算模块311、第一设定模块312、第二设定模块313和类型转换模块314。
其中,最大值估算模块311,用于对所述单精度浮点类型数据进行最大值估算;第一设定模块312,用于设定量化噪声功率;第二设定模块313,用于根据所述最大值估算的结果和所述量化噪声功率设定所述指数项位宽和所述尾数项位宽;类型转换模块314,用于根据设定的所述指数项位宽和所述尾数项位宽对所述单精度浮点类型数据进行数据类型转换。
在此,最大值估算可以确定单精度浮点类型数据的动态范围。根据应用对误差敏感程度确定量化噪声功率,量化噪声功率直接影响后面低精度浮点类型数据的指数项、尾数项的位宽。
具体地,所述神经网络计算模块32包括:输入层模块321、卷积层模块322、最大池化层模块323、局部对比归一化层模块324、全连接层模块325和循环处理模块326。
其中,输入层模块321,用于输入所述低精度浮点类型数据;卷积层模块322,用于对所述低精度浮点类型数据进行卷积运算;最大池化层模块323,用于对卷积运算的结果进行池化处理;局部对比归一化层模块324,用于对池化处理的结果进行动态范围压缩;全连接层模块325,用于对动态范围压缩的结果进行输出关联。循环处理模块326,用于将动态范围压缩的结果返回所述卷积层模块322进行循环处理。
本实施例中的神经网络采用卷积神经网络。卷积神经网络通过输入层、卷积层、最大池化层、局部对比归一化层、全连接层、输出层进行神经网络的计算。输入层为缩放到指定尺寸的图像。卷积层利用大小不等的卷积核对输入图像进行卷积运算,输出称为特征图(feature map)。将特征图经过最大池化层,得到较小尺寸的高维特征图。之后经过局部对比归一化层压缩动态范围。以上各层可重复若干次,重复次数与模型相关,对于大型模型可能为20层以上。在最后的输出层之前,有若干全连接层,用于将高维特征图关联到不同的输出类别。其中,CNN中卷积层的动态范围最大,其次是全连接层,Pooling层不改变动态范围。
具体地,所述网络初始化模块33包括:空间分配模块331和网络权值模块332。
其中,空间分配模块331,用于根据所述低精度浮点类型数据分配所述神经网络的所需存储空间。网络权值模块332,用于获取网络权值并对所述网络权值进行精度转换。
在此,网络权值也可以通过精度转换模块31进行精度转换。网络权值进行精度转换可以进一步降低神经网络的存储需求。网络权值可以从其他训练过的神经网络中复制得到。
可选地,所述神经网络计算模块32还包括:调取模块327。
调取模块327,用于调取计算库34的计算函数进行神经网络计算。
其中,所述计算库包括:所述低精度浮点类型数据与所述低精度浮点类型数据之间的计算函数、所述低精度浮点类型数据与所述单精度浮点类型数据之间的计算函数、所述低精度浮点类型数据与双精度浮点类型数据之间的计算函数。
由于所有数值类型都是低精度浮点类型,如果调用常规的数学库函数(如C数学库中的math.h、MKL、OpenBLAS等)需要进行数值转换,开销较大。常规计算库只提供了float、double类型的计算函数,而没有低精度浮点和低精度浮点、低精度浮点和float、低精度浮点和double数据类型的计算函数,因此不能直接调用常规计算库,而是先将低精度数据类型转换为float或double,再调用常规计算库。这样会增加一系列的正转换和反转换过程。在本申请中,修改常规计算库的实现,增加了低精度浮点和低精度浮点、低精度浮点和单精度浮点、低精度浮点和双单精度浮点数据类型的计算函数。计算完成后将结果以低精度浮点类型的格式保存至文件。
需要注意的是,本申请可在软件和/或软件与硬件的组合体中被实施,例如,可采用专用集成电路(ASIC)、通用目的计算机或任何其他类似硬件设备来实现。在一个实施例中,本申请的软件程序可以通过处理器执行以实现上文所述步骤或功能。同样地,本申请的软件程序(包括相关的数据结构)可以被存储到计算机可读记录介质中,例如,RAM存储器,磁或光驱动器或软磁盘及类似设备。另外,本申请的一些步骤或功能可采用硬件来实现,例如,作为与处理器配合从而执行各个步骤或功能的电路。
另外,本申请的一部分可被应用为计算机程序产品,例如计算机程序指令,当其被计算机执行时,通过该计算机的操作,可以调用或提供根据本申请的方法和/或技术方案。而调用本申请的方法的程序指令,可能被存储在固定的或可移动的记录介质中,和/或通过广播或其他信号承载媒体中的数据流而被传输,和/或被存储在根据所述程序指令运行的计算机设备的工作存储器中。在此,根据本申请的一个实施例包括一个装置,该装置包括用于存储计算机程序指令的存储器和用于执行程序指令的处理器,其中,当该计算机程序指令被该处理器执行时,触发该装置运行基于前述根据本申请的多个实施例的方法和/或技术方案。
对于本领域技术人员而言,显然本申请不限于上述示范性实施例的细节,而且在不背离本申请的精神或基本特征的情况下,能够以其他的具体形式实现本申请。因此,无论从哪一点来看,均应将实施例看作是示范性的,而且是非限制性的,本申请的范围由所附权利要求而不是上述说明限定,因此旨在将落在权利要求的等同要件的含义和范围内的所有变化涵括在本申请内。不应将权利要求中的任何附图标记视为限制所涉及的权利要求。此外,显然“包括”一词不排除其他单元或步骤,单数不排除复数。装置权利要求中陈述的多个单元或装置也可以由一个单元或装置通过软件或者硬件来实现。第一,第二等词语用来表示名称,而并不表示任何特定的顺序。

Claims (16)

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

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201510648699.7A CN106570559A (zh) 2015-10-09 2015-10-09 一种基于神经网络的数据处理方法和装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201510648699.7A CN106570559A (zh) 2015-10-09 2015-10-09 一种基于神经网络的数据处理方法和装置

Publications (1)

Publication Number Publication Date
CN106570559A true CN106570559A (zh) 2017-04-19

Family

ID=58506037

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201510648699.7A Pending CN106570559A (zh) 2015-10-09 2015-10-09 一种基于神经网络的数据处理方法和装置

Country Status (1)

Country Link
CN (1) CN106570559A (zh)

Cited By (40)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107247944A (zh) * 2017-06-28 2017-10-13 北京智慧眼科技股份有限公司 基于深度学习的人脸检测速度优化方法及装置
CN107608715A (zh) * 2017-07-20 2018-01-19 上海寒武纪信息科技有限公司 用于执行人工神经网络正向运算的装置及方法
CN108053028A (zh) * 2017-12-21 2018-05-18 深圳云天励飞技术有限公司 数据定点化处理方法、装置、电子设备及计算机存储介质
CN108564168A (zh) * 2018-04-03 2018-09-21 中国科学院计算技术研究所 一种对支持多精度卷积神经网络处理器的设计方法
CN109146060A (zh) * 2018-08-09 2019-01-04 郑州云海信息技术有限公司 一种基于卷积神经网络处理数据的方法及装置
CN109343978A (zh) * 2018-09-27 2019-02-15 郑州云海信息技术有限公司 一种深度学习分布式框架用的数据交换方法与装置
CN109669962A (zh) * 2017-10-15 2019-04-23 Gsi 科技公司 精确指数和准确softmax计算
CN109800877A (zh) * 2019-02-20 2019-05-24 腾讯科技(深圳)有限公司 神经网络的参数调整方法、装置及设备
CN110097179A (zh) * 2018-01-29 2019-08-06 上海寒武纪信息科技有限公司 计算机设备、数据处理方法及存储介质
CN110287246A (zh) * 2019-05-21 2019-09-27 平安证券股份有限公司 数据处理方法、装置及计算机可读存储介质
CN110737470A (zh) * 2017-04-28 2020-01-31 英特尔公司 低精度机器学习操作的计算优化
CN110852434A (zh) * 2019-09-30 2020-02-28 成都恒创新星科技有限公司 基于低精度浮点数的cnn量化方法、前向计算方法及装置
CN110852416A (zh) * 2019-09-30 2020-02-28 成都恒创新星科技有限公司 基于低精度浮点数数据表现形式的cnn加速计算方法及系统
CN110874625A (zh) * 2018-08-31 2020-03-10 杭州海康威视数字技术股份有限公司 一种深度神经网络量化方法及装置
CN110909872A (zh) * 2017-12-14 2020-03-24 中科寒武纪科技股份有限公司 集成电路芯片装置及相关产品
CN111105033A (zh) * 2017-12-14 2020-05-05 中科寒武纪科技股份有限公司 神经网络处理器板卡及相关产品
US10656913B2 (en) 2018-06-05 2020-05-19 International Business Machines Corporation Enhanced low precision binary floating-point formatting
CN111240606A (zh) * 2020-04-24 2020-06-05 支付宝(杭州)信息技术有限公司 一种基于安全内存的存储优化方法及系统
WO2020248424A1 (zh) * 2019-06-12 2020-12-17 上海寒武纪信息科技有限公司 一种神经网络的量化参数确定方法及相关产品
WO2021044227A1 (en) * 2019-09-03 2021-03-11 International Business Machines Corporation Neural network circuitry having floating point format with asymmetric range
CN112712172A (zh) * 2019-10-25 2021-04-27 安徽寒武纪信息科技有限公司 用于神经网络运算的计算装置、方法、集成电路和设备
CN112836806A (zh) * 2021-02-26 2021-05-25 上海阵量智能科技有限公司 一种数据格式调整方法、装置、计算机设备和存储介质
CN113196305A (zh) * 2018-12-18 2021-07-30 微软技术许可有限责任公司 使用混合精度数据格式训练神经网络加速器
CN113269320A (zh) * 2020-02-14 2021-08-17 阿里巴巴集团控股有限公司 处理单元、计算装置、片上系统、数据中心和相关方法
CN113505774A (zh) * 2021-07-14 2021-10-15 青岛全掌柜科技有限公司 一种新型保单识别模型尺寸压缩方法
US11397579B2 (en) 2018-02-13 2022-07-26 Shanghai Cambricon Information Technology Co., Ltd Computing device and method
US11437032B2 (en) 2017-09-29 2022-09-06 Shanghai Cambricon Information Technology Co., Ltd Image processing apparatus and method
US11442785B2 (en) 2018-05-18 2022-09-13 Shanghai Cambricon Information Technology Co., Ltd Computation method and product thereof
US11513586B2 (en) 2018-02-14 2022-11-29 Shanghai Cambricon Information Technology Co., Ltd Control device, method and equipment for processor
US11544059B2 (en) 2018-12-28 2023-01-03 Cambricon (Xi'an) Semiconductor Co., Ltd. Signal processing device, signal processing method and related products
US11609760B2 (en) 2018-02-13 2023-03-21 Shanghai Cambricon Information Technology Co., Ltd Computing device and method
US11630666B2 (en) 2018-02-13 2023-04-18 Shanghai Cambricon Information Technology Co., Ltd Computing device and method
US11676028B2 (en) 2019-06-12 2023-06-13 Shanghai Cambricon Information Technology Co., Ltd Neural network quantization parameter determination method and related products
US11703939B2 (en) 2018-09-28 2023-07-18 Shanghai Cambricon Information Technology Co., Ltd Signal processing device and related products
US11704545B2 (en) 2017-12-14 2023-07-18 Cambricon Technologies Corporation Limited Integrated circuit chip apparatus
US11762690B2 (en) 2019-04-18 2023-09-19 Cambricon Technologies Corporation Limited Data processing method and related products
US11847554B2 (en) 2019-04-18 2023-12-19 Cambricon Technologies Corporation Limited Data processing method and related products
WO2024041332A1 (zh) * 2022-08-26 2024-02-29 寒武纪(西安)集成电路有限公司 数据类型选择方法、装置及可读存储介质
US11966583B2 (en) 2018-08-28 2024-04-23 Cambricon Technologies Corporation Limited Data pre-processing method and device, and related computer device and storage medium
US12001955B2 (en) 2019-08-23 2024-06-04 Anhui Cambricon Information Technology Co., Ltd. Data processing method, device, computer equipment and storage medium

Cited By (77)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110737470A (zh) * 2017-04-28 2020-01-31 英特尔公司 低精度机器学习操作的计算优化
CN107247944B (zh) * 2017-06-28 2020-11-10 智慧眼科技股份有限公司 基于深度学习的人脸检测速度优化方法及装置
CN107247944A (zh) * 2017-06-28 2017-10-13 北京智慧眼科技股份有限公司 基于深度学习的人脸检测速度优化方法及装置
CN107807819A (zh) * 2017-07-20 2018-03-16 上海寒武纪信息科技有限公司 一种支持离散数据表示的用于执行人工神经网络正向运算的装置及方法
CN107832082A (zh) * 2017-07-20 2018-03-23 上海寒武纪信息科技有限公司 一种用于执行人工神经网络正向运算的装置和方法
CN107844322A (zh) * 2017-07-20 2018-03-27 上海寒武纪信息科技有限公司 用于执行人工神经网络正向运算的装置和方法
CN107729989B (zh) * 2017-07-20 2020-12-29 安徽寒武纪信息科技有限公司 一种用于执行人工神经网络正向运算的装置及方法
CN107729989A (zh) * 2017-07-20 2018-02-23 上海寒武纪信息科技有限公司 一种用于执行人工神经网络正向运算的装置及方法
US11481215B2 (en) 2017-07-20 2022-10-25 Cambricon (Xi'an) Semiconductor Co., Ltd. Calculation method and related product
CN107608715A (zh) * 2017-07-20 2018-01-19 上海寒武纪信息科技有限公司 用于执行人工神经网络正向运算的装置及方法
US11437032B2 (en) 2017-09-29 2022-09-06 Shanghai Cambricon Information Technology Co., Ltd Image processing apparatus and method
CN109669962A (zh) * 2017-10-15 2019-04-23 Gsi 科技公司 精确指数和准确softmax计算
CN109669962B (zh) * 2017-10-15 2022-07-19 Gsi 科技公司 精确指数和准确softmax计算
CN111105033A (zh) * 2017-12-14 2020-05-05 中科寒武纪科技股份有限公司 神经网络处理器板卡及相关产品
CN110909872B (zh) * 2017-12-14 2023-08-25 中科寒武纪科技股份有限公司 集成电路芯片装置及相关产品
CN111126588B (zh) * 2017-12-14 2023-05-23 中科寒武纪科技股份有限公司 集成电路芯片装置及相关产品
US11704545B2 (en) 2017-12-14 2023-07-18 Cambricon Technologies Corporation Limited Integrated circuit chip apparatus
US11900242B2 (en) 2017-12-14 2024-02-13 Cambricon Technologies Corporation Limited Integrated circuit chip apparatus
US11900241B2 (en) 2017-12-14 2024-02-13 Cambricon Technologies Corporation Limited Integrated circuit chip apparatus
CN110909872A (zh) * 2017-12-14 2020-03-24 中科寒武纪科技股份有限公司 集成电路芯片装置及相关产品
CN111126588A (zh) * 2017-12-14 2020-05-08 中科寒武纪科技股份有限公司 集成电路芯片装置及相关产品
CN111105033B (zh) * 2017-12-14 2024-01-12 中科寒武纪科技股份有限公司 神经网络处理器板卡及相关产品
CN108053028A (zh) * 2017-12-21 2018-05-18 深圳云天励飞技术有限公司 数据定点化处理方法、装置、电子设备及计算机存储介质
CN110097179A (zh) * 2018-01-29 2019-08-06 上海寒武纪信息科技有限公司 计算机设备、数据处理方法及存储介质
CN110097179B (zh) * 2018-01-29 2020-03-10 上海寒武纪信息科技有限公司 计算机设备、数据处理方法及存储介质
US11397579B2 (en) 2018-02-13 2022-07-26 Shanghai Cambricon Information Technology Co., Ltd Computing device and method
US11704125B2 (en) 2018-02-13 2023-07-18 Cambricon (Xi'an) Semiconductor Co., Ltd. Computing device and method
US11507370B2 (en) 2018-02-13 2022-11-22 Cambricon (Xi'an) Semiconductor Co., Ltd. Method and device for dynamically adjusting decimal point positions in neural network computations
US11609760B2 (en) 2018-02-13 2023-03-21 Shanghai Cambricon Information Technology Co., Ltd Computing device and method
US11740898B2 (en) 2018-02-13 2023-08-29 Shanghai Cambricon Information Technology Co., Ltd Computing device and method
US11720357B2 (en) 2018-02-13 2023-08-08 Shanghai Cambricon Information Technology Co., Ltd Computing device and method
US11709672B2 (en) 2018-02-13 2023-07-25 Shanghai Cambricon Information Technology Co., Ltd Computing device and method
US11620130B2 (en) 2018-02-13 2023-04-04 Shanghai Cambricon Information Technology Co., Ltd Computing device and method
US11663002B2 (en) 2018-02-13 2023-05-30 Shanghai Cambricon Information Technology Co., Ltd Computing device and method
US11630666B2 (en) 2018-02-13 2023-04-18 Shanghai Cambricon Information Technology Co., Ltd Computing device and method
US11513586B2 (en) 2018-02-14 2022-11-29 Shanghai Cambricon Information Technology Co., Ltd Control device, method and equipment for processor
CN108564168B (zh) * 2018-04-03 2021-03-09 中国科学院计算技术研究所 一种对支持多精度卷积神经网络处理器的设计方法
CN108564168A (zh) * 2018-04-03 2018-09-21 中国科学院计算技术研究所 一种对支持多精度卷积神经网络处理器的设计方法
US11442786B2 (en) 2018-05-18 2022-09-13 Shanghai Cambricon Information Technology Co., Ltd Computation method and product thereof
US11442785B2 (en) 2018-05-18 2022-09-13 Shanghai Cambricon Information Technology Co., Ltd Computation method and product thereof
US10656913B2 (en) 2018-06-05 2020-05-19 International Business Machines Corporation Enhanced low precision binary floating-point formatting
US11775257B2 (en) 2018-06-05 2023-10-03 International Business Machines Corporation Enhanced low precision binary floating-point formatting
CN109146060A (zh) * 2018-08-09 2019-01-04 郑州云海信息技术有限公司 一种基于卷积神经网络处理数据的方法及装置
CN109146060B (zh) * 2018-08-09 2022-04-22 郑州云海信息技术有限公司 一种基于卷积神经网络处理数据的方法及装置
US11966583B2 (en) 2018-08-28 2024-04-23 Cambricon Technologies Corporation Limited Data pre-processing method and device, and related computer device and storage medium
CN110874625B (zh) * 2018-08-31 2023-10-27 杭州海康威视数字技术股份有限公司 一种数据处理方法及装置
CN110874625A (zh) * 2018-08-31 2020-03-10 杭州海康威视数字技术股份有限公司 一种深度神经网络量化方法及装置
CN109343978A (zh) * 2018-09-27 2019-02-15 郑州云海信息技术有限公司 一种深度学习分布式框架用的数据交换方法与装置
CN109343978B (zh) * 2018-09-27 2020-10-20 苏州浪潮智能科技有限公司 一种深度学习分布式框架用的数据交换方法与装置
US11703939B2 (en) 2018-09-28 2023-07-18 Shanghai Cambricon Information Technology Co., Ltd Signal processing device and related products
CN113196305A (zh) * 2018-12-18 2021-07-30 微软技术许可有限责任公司 使用混合精度数据格式训练神经网络加速器
US11544059B2 (en) 2018-12-28 2023-01-03 Cambricon (Xi'an) Semiconductor Co., Ltd. Signal processing device, signal processing method and related products
CN109800877B (zh) * 2019-02-20 2022-12-30 腾讯科技(深圳)有限公司 神经网络的参数调整方法、装置及设备
CN109800877A (zh) * 2019-02-20 2019-05-24 腾讯科技(深圳)有限公司 神经网络的参数调整方法、装置及设备
US11934940B2 (en) 2019-04-18 2024-03-19 Cambricon Technologies Corporation Limited AI processor simulation
US11847554B2 (en) 2019-04-18 2023-12-19 Cambricon Technologies Corporation Limited Data processing method and related products
US11762690B2 (en) 2019-04-18 2023-09-19 Cambricon Technologies Corporation Limited Data processing method and related products
CN110287246A (zh) * 2019-05-21 2019-09-27 平安证券股份有限公司 数据处理方法、装置及计算机可读存储介质
US11676028B2 (en) 2019-06-12 2023-06-13 Shanghai Cambricon Information Technology Co., Ltd Neural network quantization parameter determination method and related products
US11675676B2 (en) 2019-06-12 2023-06-13 Shanghai Cambricon Information Technology Co., Ltd Neural network quantization parameter determination method and related products
US11676029B2 (en) 2019-06-12 2023-06-13 Shanghai Cambricon Information Technology Co., Ltd Neural network quantization parameter determination method and related products
WO2020248424A1 (zh) * 2019-06-12 2020-12-17 上海寒武纪信息科技有限公司 一种神经网络的量化参数确定方法及相关产品
US12001955B2 (en) 2019-08-23 2024-06-04 Anhui Cambricon Information Technology Co., Ltd. Data processing method, device, computer equipment and storage medium
WO2021044227A1 (en) * 2019-09-03 2021-03-11 International Business Machines Corporation Neural network circuitry having floating point format with asymmetric range
CN110852434A (zh) * 2019-09-30 2020-02-28 成都恒创新星科技有限公司 基于低精度浮点数的cnn量化方法、前向计算方法及装置
CN110852434B (zh) * 2019-09-30 2022-09-23 梁磊 基于低精度浮点数的cnn量化方法、前向计算方法及硬件装置
CN110852416A (zh) * 2019-09-30 2020-02-28 成都恒创新星科技有限公司 基于低精度浮点数数据表现形式的cnn加速计算方法及系统
CN110852416B (zh) * 2019-09-30 2022-10-04 梁磊 基于低精度浮点数数据表现形式的cnn硬件加速计算方法及系统
CN112712172A (zh) * 2019-10-25 2021-04-27 安徽寒武纪信息科技有限公司 用于神经网络运算的计算装置、方法、集成电路和设备
CN112712172B (zh) * 2019-10-25 2023-12-26 安徽寒武纪信息科技有限公司 用于神经网络运算的计算装置、方法、集成电路和设备
CN113269320A (zh) * 2020-02-14 2021-08-17 阿里巴巴集团控股有限公司 处理单元、计算装置、片上系统、数据中心和相关方法
CN111240606A (zh) * 2020-04-24 2020-06-05 支付宝(杭州)信息技术有限公司 一种基于安全内存的存储优化方法及系统
CN112836806B (zh) * 2021-02-26 2023-12-22 上海阵量智能科技有限公司 一种数据格式调整方法、装置、计算机设备和存储介质
CN112836806A (zh) * 2021-02-26 2021-05-25 上海阵量智能科技有限公司 一种数据格式调整方法、装置、计算机设备和存储介质
CN113505774B (zh) * 2021-07-14 2023-11-10 众淼创新科技(青岛)股份有限公司 一种保单识别模型尺寸压缩方法
CN113505774A (zh) * 2021-07-14 2021-10-15 青岛全掌柜科技有限公司 一种新型保单识别模型尺寸压缩方法
WO2024041332A1 (zh) * 2022-08-26 2024-02-29 寒武纪(西安)集成电路有限公司 数据类型选择方法、装置及可读存储介质

Similar Documents

Publication Publication Date Title
CN106570559A (zh) 一种基于神经网络的数据处理方法和装置
CN110378468B (zh) 一种基于结构化剪枝和低比特量化的神经网络加速器
CN108108811B (zh) 神经网络中的卷积计算方法和电子设备
CN110689109B (zh) 神经网络方法和装置
Guo et al. FBNA: A fully binarized neural network accelerator
JP7029321B2 (ja) 情報処理方法、情報処理装置およびプログラム
Murillo et al. Deep PeNSieve: A deep learning framework based on the posit number system
KR102562320B1 (ko) 비트 연산 기반의 뉴럴 네트워크 처리 방법 및 장치
Zhao et al. Smartexchange: Trading higher-cost memory storage/access for lower-cost computation
CN110070178A (zh) 一种卷积神经网络计算装置及方法
CN107844828A (zh) 神经网络中的卷积计算方法和电子设备
CN109635935B (zh) 基于模长聚类的深度卷积神经网络模型自适应量化方法
US11120101B2 (en) Matrix multiplication system and method
CN107256424A (zh) 三值权重卷积网络处理系统及方法
CN110383300A (zh) 一种计算装置及方法
CN109214502B (zh) 神经网络权重离散化方法和系统
CN109754359A (zh) 一种应用于卷积神经网络的池化处理的方法及系统
CN108764458B (zh) 一种减少移动设备存储空间消耗以及计算量的方法及系统
CN111160534A (zh) 一种适用于移动终端的二值神经网络前向传播框架
CN112215331A (zh) 对神经网络系统中的数据处理方法和神经网络系统
CN112668708A (zh) 一种提高数据利用率的卷积运算装置
CN113126953A (zh) 针对浮点处理的方法和装置
Shahshahani et al. Memory optimization techniques for fpga based cnn implementations
CN114677548A (zh) 基于阻变存储器的神经网络图像分类系统及方法
Struharik et al. Conna–compressed cnn hardware accelerator

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
RJ01 Rejection of invention patent application after publication
RJ01 Rejection of invention patent application after publication

Application publication date: 20170419