CN107292458B - 一种应用于神经网络芯片的预测方法和预测装置 - Google Patents

一种应用于神经网络芯片的预测方法和预测装置 Download PDF

Info

Publication number
CN107292458B
CN107292458B CN201710667412.4A CN201710667412A CN107292458B CN 107292458 B CN107292458 B CN 107292458B CN 201710667412 A CN201710667412 A CN 201710667412A CN 107292458 B CN107292458 B CN 107292458B
Authority
CN
China
Prior art keywords
layer
output data
data
bit
current 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.)
Active
Application number
CN201710667412.4A
Other languages
English (en)
Other versions
CN107292458A (zh
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.)
Shanghai Zhongxingwei Xinzhuang Artificial Intelligence Chip Co.,Ltd.
Original Assignee
Beijing Vimicro Artificial Intelligence Chip Technology Co 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 Beijing Vimicro Artificial Intelligence Chip Technology Co ltd filed Critical Beijing Vimicro Artificial Intelligence Chip Technology Co ltd
Priority to CN201710667412.4A priority Critical patent/CN107292458B/zh
Publication of CN107292458A publication Critical patent/CN107292458A/zh
Application granted granted Critical
Publication of CN107292458B publication Critical patent/CN107292458B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q10/00Administration; Management
    • G06Q10/04Forecasting or optimisation specially adapted for administrative or management purposes, e.g. linear programming or "cutting stock problem"
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/045Combinations of networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Business, Economics & Management (AREA)
  • Software Systems (AREA)
  • Health & Medical Sciences (AREA)
  • Computational Linguistics (AREA)
  • Data Mining & Analysis (AREA)
  • Evolutionary Computation (AREA)
  • General Health & Medical Sciences (AREA)
  • Molecular Biology (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Biomedical Technology (AREA)
  • Mathematical Physics (AREA)
  • Artificial Intelligence (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Biophysics (AREA)
  • Strategic Management (AREA)
  • Economics (AREA)
  • Human Resources & Organizations (AREA)
  • Game Theory and Decision Science (AREA)
  • Development Economics (AREA)
  • Entrepreneurship & Innovation (AREA)
  • Marketing (AREA)
  • Operations Research (AREA)
  • Quality & Reliability (AREA)
  • Tourism & Hospitality (AREA)
  • General Business, Economics & Management (AREA)
  • Image Analysis (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)

Abstract

本发明提供了一种应用于神经网络芯片的预测方法和装置、服务器及可读存储介质。该方法包括:对当前层的M个输出数据进行划分,得到当前层的M个输出数据分布区间;对M个输出数据分布区间中的每个输出数据分布区间内的输出数据进行统计,得到每个输出数据分布区间内的输出数据的数量占M个输出数据的总体数量的比率;基于M个输出数据分布区间对应的比率和预设的比特宽度,对M个输出数据进行比特宽度约束,得到M个输出数据分布区间中的N个分布区间的第一起始比特和第一终止比特;以及基于第一起始比特和第一终止比特,对当前层的M个输出数据进行比特宽度约束,以实现神经网络芯片的预测。本发明降低了数据带宽,并进一步提高了计算效率。

Description

一种应用于神经网络芯片的预测方法和预测装置
技术领域
本发明涉及人工神经网络计算技术领域,尤其涉及一种应用于神经网络芯片的预测方法和预测装置、服务器及可读存储介质。
背景技术
人工神经网络(Artificial Neural Network,ANN)由大量的节点(或称神经元)之间相互联接构成。每个节点代表一种特定的输出函数,称之为激活函数(ActivationFunction)。每两个节点之间的每个连接都有一个决定其连接强度的权重,该权重的值决定神经元的状态以及整个神经网络系统的性能,对于具有不同权重的同一网络结构而言,所表现出的行为特点往往不同。
权重和偏置是影响人工神经网络模型性能的重要参数。现有技术中,在人工神经网络的训练阶段,通常利用某种“学习规则”对人工神经网络模型进行训练,从而得到有效的权重和偏置;在人工神经网络的预测阶段,通过训练得到的权重和偏置对人工神经网络模型进行预测运算。由于运算过程中存在大量的卷积运算,使得运算过程中产生大量的临时数据且占用大量的数据带宽,因此,导致计算时间长,且计算效率低,进而无法实现对人工神经网络模型的快速预测。
发明内容
有鉴于此,本发明实施例提供一种应用于神经网络芯片的预测方法和预测装置、服务器及可读存储介质,能够降低数据带宽,节省计算时间,并进一步提高计算效率。
本发明的一个方面提供一种应用于神经网络芯片的预测方法,该方法包括:在神经网络训练过程中,对当前层的M个输出数据进行划分,得到当前层的M个输出数据分布区间;对当前层的M个输出数据分布区间中的每个输出数据分布区间内的输出数据进行统计,得到每个输出数据分布区间内的输出数据的数量占M个输出数据的总体数量的比率;基于M个输出数据分布区间对应的比率和预设的比特宽度,对当前层的M个输出数据进行比特宽度约束,得到M个输出数据分布区间中的N个分布区间的第一起始比特和第一终止比特,其中比特宽度为第一终止比特与第一起始比特之间的距离,N个分布区间对应的比率满足预设规则;以及在神经网络预测过程中,基于第一起始比特和第一终止比特,对当前层的M个输出数据进行比特宽度约束,以实现神经网络芯片的预测。
在本发明的一个实施例中,对当前层的M个输出数据进行划分,得到当前层的M个输出数据分布区间,包括:以2的n次方为界,对当前层的M个输出数据进行划分,得到当前层的M个输出数据分布区间,其中n为整数,该方法还包括:以2的n次方为界,对当前层的M个权重数据进行划分,得到当前层的M个权重数据分布区间,其中n为整数;对当前层的M个权重数据分布区间中的每个权重数据分布区间内的权重数据进行统计,得到每个权重数据分布区间内的权重数据的数量占M个权重数据的总体数量的比率;基于M个权重数据分布区间对应的比率和预设的比特宽度,对当前层的M个权重数据进行比特宽度约束,得到M个权重数据分布区间中的N个分布区间的第二起始比特和第二终止比特,其中比特宽度为第二终止比特与第二起始比特之间的距离,N个分布区间对应的比率满足预设规则;以及在神经网络预测过程中,基于第二起始比特和第二终止比特,对当前层的M个权重数据进行比特宽度约束,以实现神经网络芯片的预测。
在本发明的一个实施例中,该方法还包括:以2的n次方为界,对当前层的M个偏置数据进行划分,得到当前层的M个偏置数据分布区间,其中n为整数;对当前层的M个偏置数据分布区间中的每个偏置数据分布区间内的偏置数据进行统计,得到每个偏置数据分布区间内的偏置数据的数量占M个偏置数据的总体数量的比率;基于M个偏置数据分布区间对应的比率和预设的比特宽度,对当前层的M个偏置数据进行比特宽度约束,得到M个偏置数据分布区间中的N个分布区间的第三起始比特和第三终止比特,其中比特宽度为第三终止比特与第三起始比特之间的距离,N个分布区间对应的比率满足预设规则;以及在神经网络预测过程中,基于第三起始比特和第三终止比特,对当前层的M个偏置数据进行比特宽度约束,以实现神经网络芯片的预测。
在本发明的一个实施例中,当前层为卷积层,该方法还包括:在神经网络训练过程中,对神经网络的输入层的M个输入数据进行数据预处理,得到输入层的M个输出数据,将输入层的M个输出数据作为卷积层的M个输入数据;以及对卷积层的M个输入数据进行卷积,得到卷积层的M个输出数据。
在本发明的一个实施例中,当前层为激活层,该方法还包括:对激活层的M个输入数据进行激活,得到激活层的M个输出数据。
在本发明的一个实施例中,当前层为池化层,该方法还包括:对池化层的M个输入数据进行采样,得到池化层的M个输出数据。
在本发明的一个实施例中,当前层为全连接层,该方法还包括:对全连接层的M个输入数据进行分类,得到全连接层的M个输出数据。
在本发明的一个实施例中,预设的比特宽度在1比特到32比特的范围内。
在本发明的一个实施例中,预设的比特宽度为8比特。
本发明的另一个方面提供一种应用于神经网络芯片的预测装置,该装置包括:划分模块,用于在神经网络训练过程中,对当前层的M个输出数据进行划分,得到当前层的M个输出数据分布区间;统计模块,用于对当前层的M个输出数据分布区间中的每个输出数据分布区间内的输出数据进行统计,得到每个输出数据分布区间内的输出数据的数量占M个输出数据的总体数量的比率;约束模块,用于基于M个输出数据分布区间对应的比率和预设的比特宽度,对当前层的M个输出数据进行比特宽度约束,得到M个输出数据分布区间中的N个分布区间的第一起始比特和第一终止比特,其中比特宽度为第一终止比特与第一起始比特之间的距离,N个分布区间对应的比率满足预设规则;以及预测模块,用于在神经网络预测过程中,基于第一起始比特和第一终止比特,对当前层的M个输出数据进行比特宽度约束,以实现神经网络芯片的预测。
在本发明的一个实施例中,划分模块还以2的n次方为界,对当前层的M个输出数据进行划分,得到当前层的M个输出数据分布区间,其中n为整数,并且划分模块还以2的n次方为界,对当前层的M个权重数据进行划分,得到当前层的M个权重数据分布区间,其中n为整数,统计模块还对当前层的M个权重数据分布区间中的每个权重数据分布区间内的权重数据进行统计,得到每个权重数据分布区间内的权重数据的数量占M个权重数据的总体数量的比率,约束模块还基于M个权重数据分布区间对应的比率和预设的比特宽度,对当前层的M个权重数据进行比特宽度约束,得到M个权重数据分布区间中的N个分布区间的第二起始比特和第二终止比特,其中比特宽度为第二终止比特与第二起始比特之间的距离,N个分布区间对应的比率满足预设规则,以及预测模块还在神经网络预测过程中,基于第二起始比特和第二终止比特,对当前层的M个权重数据进行比特宽度约束,以实现神经网络芯片的预测。
在本发明的一个实施例中,划分模块还以2的n次方为界,对当前层的M个偏置数据进行划分,得到当前层的M个偏置数据分布区间,其中n为整数,统计模块还对当前层的M个偏置数据分布区间中的每个偏置数据分布区间内的偏置数据进行统计,得到每个偏置数据分布区间内的偏置数据的数量占M个偏置数据的总体数量的比率,约束模块还基于M个偏置数据分布区间对应的比率和预设的比特宽度,对当前层的M个偏置数据进行比特宽度约束,得到M个偏置数据分布区间中的N个分布区间的第三起始比特和第三终止比特,其中比特宽度为第三终止比特与第三起始比特之间的距离,N个分布区间对应的比率满足预设规则,以及预测模块还在神经网络预测过程中,基于第三起始比特和第三终止比特,对当前层的M个偏置数据进行比特宽度约束,以实现神经网络芯片的预测。
在本发明的一个实施例中,当前层为卷积层,预测装置还包括:预处理模块,用于在神经网络训练过程中,对神经网络的输入层的M个输入数据进行数据预处理,得到输入层的M个输出数据,将输入层的M个输出数据作为卷积层的M个输入数据;以及卷积模块,用于对卷积层的M个输入数据进行卷积,得到卷积层的M个输出数据。
在本发明的一个实施例中,当前层为激活层,预测装置还包括:激活模块,用于对激活层的M个输入数据进行激活,得到激活层的M个输出数据。
在本发明的一个实施例中,当前层为池化层,该预测装置还包括:采样模块,用于对池化层的M个输入数据进行采样,得到池化层的M个输出数据。
在本发明的一个实施例中,当前层为全连接层,该预测装置还包括:分类模块,用于对全连接层的M个输入数据进行分类,得到全连接层的M个输出数据。
在本发明的一个实施例中,预设的比特宽度在1比特到32比特的范围内。
在本发明的一个实施例中,预设的比特宽度为8比特。
本发明的再一个方面提供一种服务器,包括:存储器、处理器及存储在存储器中并可在处理器中运行的可执行指令,其中,处理器执行可执行指令时实现如上所述的方法。
本发明的又一个方面提供一种计算机可读存储介质,其上存储有计算机可执行指令,其中,可执行指令被处理器执行时实现如上所述的方法。
根据本发明实施例提供的技术方案,通过对当前层的M个输出数据进行划分,得到当前层的M个输出数据分布区间,对当前层的M个输出数据分布区间中的每个输出数据分布区间内的输出数据进行统计,得到每个输出数据分布区间内的输出数据的数量占M个输出数据的总体数量的比率,基于M个输出数据分布区间对应的比率和预设的比特宽度,对当前层的M个输出数据进行比特宽度约束,得到M个输出数据分布区间中的N个分布区间的第一起始比特和第一终止比特,以及基于第一起始比特和第一终止比特,对当前层的M个输出数据进行比特宽度约束,以实现神经网络芯片的预测,降低了数据带宽,并因此节省了计算时间,从而提高了计算效率。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本发明。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本发明的实施例,并与说明书一起用于解释本发明的原理。
图1是根据本发明一示例性实施例示出的一种应用于神经网络芯片的预测方法的流程图。
图2是根据本发明另一示例性实施例示出的一种应用于神经网络芯片的预测方法的流程图。
图3是根据本发明一示例性实施例示出的一种应用于神经网络芯片的预测装置的框图。
图4是根据本发明另一示例性实施例示出的一种应用于神经网络芯片的预测装置的框图。
图5是根据本发明一示例性实施例示出的用于实现神经网络芯片的预测的装置的框图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅是本发明一部分实施例,而不是全部的实施例。根据本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
图1是根据本发明一示例性实施例示出的一种应用于神经网络芯片的预测方法的流程图。如图1所示,该方法包括:
110:在神经网络训练过程中,对当前层的M个输出数据进行划分,得到当前层的M个输出数据分布区间。
在本发明实施例中,神经网络可以包括多个层,例如,输入层(Input Layer)、多个卷积层(Convolutional Layer)、至少一个全连接层和输出层(Output Layer);另外,每两个卷积层之间还可以添加一激活层(Activation Layer),或者每两个卷积层之间还可以设置一池化层(Pooling Layer)并在该池化层后添加一激活层。激活层可以由激活函数来实现。
例如,输入层可以直接作用于原始的输入数据,并且对于输入是图像来说,输入数据是图像的像素值。卷积层也称为特征提取层,用于利用多个卷积核提取输入数据的特征,并且每一个不同的卷积核提取输入数据的特征都不相同,卷积层的卷积核的数量越多,能够提取的输入数据的特征就越多。激活函数可以包括但不限于Sigmoid函数、ReLU(Rectified Linear Unit)函数、Tanh函数、Softmax函数等,目前使用最多的激活函数是ReLU函数,因为其收敛更快,并且能保持同样效果。池化层也称为下采样层(SubsampingLayer),用于对特征图进行下采样,降低特征图的分辨率,通过池化可以降低卷积层输出的特征向量,同时改善结果(不易出现过拟合);最常见的池化操作是最大池化(Max Pooling)和平均池化(Mean Pooling),最大池化是选取图像区域的最大值作为该区域池化后的值,而平均池化是计算图像区域的平均值作为该区域池化后的值。全连接层在整个卷积神经网络中起到“分类器”的作用。输出层神经节点的数目是根据具体应用任务来设定的,如果是分类任务,输出层通常是一个分类器,通常是Softmax分类器。
需要说明的是,卷积层、激活函数、池化层和全连接层的数量可以根据实际需要设置,本发明对此不作限制。另外,本发明的神经网络可以包括但不限于卷积神经网络(Convolutional Neural Network,CNN)、深度置信网络(Deep Belief Network,DBN)、自动编码器(Auto Encoder)、限制波尔兹曼机(Restricted Boltzmann Machine,RBM)等。进一步地,本发明不限于如上所述的神经网络芯片,而是可以应用到其它芯片,例如图形处理器(Graphics Processing Unit,GPU)、数字信号处理(Digital Signal Processing,DSP)芯片等。
在神经网络训练过程中,以2的n次方(即2n)为界,对当前层的M个输出数据进行划分,得到当前层的M个输出数据分布区间。这里,n可以为任意整数,例如,-1、0、2等。
具体地,以n为-2到7为例,可以得到9个区间,分别用区间1到区间9表示,其中,2-1>区间1≥2-2,20>区间2≥2-1,21>区间3≥20,22>区间4≥21,23>区间5≥22,24>区间6≥23,25>区间7≥24,26>区间8≥25,以及27>区间9≥26
120:对当前层的M个输出数据分布区间中的每个输出数据分布区间内的输出数据进行统计,得到每个输出数据分布区间内的输出数据的数量占M个输出数据的总体数量的比率。
在本发明实施例中,统计当前层的M个输出数据分布区间中的每个输出数据分布区间内的输出数据的数量,并计算每个输出数据分布区间内的输出数据的数量占当前层的所有输出数据(即M个)的总体数量的比重,从而得到每个输出数据分布区间内的输出数据的比率。
具体地,以卷积层为例,对该卷积层中的10个输出数据进行分析。假设这10个输出数据分别为12.42、1.5、0.75、3.2、0.61、0.9、8.36、1.2、2.6、1.75,且区间1到区间9分布在2-2到27的范围内,则当2-1>区间1≥2-2时,由于区间1内的输出数据的数量为0,因此区间1内的输出数据所占的比率为0%;当20>区间2≥2-1时,由于区间2内共有3个输出数据0.75、0.61和0.9,因此区间2内的输出数据所占的比率为30%;当21>区间3≥20时,由于区间3内共有3个输出数据1.5、1.2和1.75,因此区间3内的输出数据所占的比率为30%;当22>区间4≥21时,由于区间4内共有2个输出数据3.2和2.6,因此区间4内的输出数据所占的比率为20%;当23>区间5≥22时,由于区间5内的输出数据的数量为0,因此区间5内的输出数据所占的比率为0%;当24>区间6≥23时,由于区间6内共有2个输出数据12.42和8.36,因此区间6内的输出数据所占的比率为20%;当25>区间7≥24、26>区间8≥25以及27>区间9≥26时,由于区间7到区间9内的输出数据的数量均为0,因此区间7到区间9内的输出数据所占的比率为0%。
130:基于M个输出数据分布区间对应的比率和预设的比特宽度,对当前层的M个输出数据进行比特宽度约束,得到M个输出数据分布区间中的N个分布区间的第一起始比特和第一终止比特,其中比特宽度为第一终止比特与第一起始比特之间的距离,N个分布区间对应的比率满足预设规则。
在本发明实施例中,基于M个输出数据分布区间对应的比率和预设的比特宽度,对当前层的M个输出数据进行裁剪(即,比特宽度约束),以剔除掉比率更近似于零或比特宽度超出预设的比特宽度的输出数据,从而得到当前层的M个输出数据分布区间中的N个分布区间,并基于N个分布区间对应的比率所满足的预设规则,得到该N个分布区间的第一起始比特和第一终止比特,从而得到当前层的加速方案。
这里,比特宽度是第一终止比特与第一起始比特之间的距离,该距离可以是任意比特宽度,并且比特宽度越小,数据带宽越小,计算效率越高。但需要注意的是,比特宽度越小,数据裁剪的误差就越大,导致神经网络的最终的准确率变差。因此,可以根据对准确率下降的容忍度来确定采用的比特宽度。例如,在比特宽度为8比特的情况下,最终的准确率会下降1到2个百分点;又如,在比特宽度为9比特的情况下,最终的准确率会下降1个百分点左右;再如,在比特宽度为16比特的情况下,最终的准确率会下降0.5个百分点左右。
需要说明的是,虽然16比特的最终的准确率仅下降了0.5个百分点,而8比特的最终的准确率下降了1到2个百分点,但这1到2个百分点的损失对最终的输出结果影响很小;进一步地,由于16比特的数据量相较于8比特的数据量翻了一倍,因此,导致计算时16比特占用的内存的带宽远大于8比特占用的内存的带宽,由此可见,8比特的性价比是最高的。
进一步地,起始比特可以通过以下两种方法来确定,一种是采用N个分布区间的最大比特;另一种是在N个分布区间确定好之后,判断该N个分布区间是否小于2的n次方,如果是,则起始比特为n-1。终止比特可以通过以下公式确定:终止比特=起始比特-比特宽度+2。
具体地,以8比特为例,由上面的示例可知,区间2的比率为30%,区间3的比率为30%,区间4的比率为20%,以及区间6的比率为20%,因此,从比率不为0的最大区间(即区间6)开始,选取8比特的比特宽度,得到7个比特位3 2 1 0-1-2-3,基于此得到M个输出数据分布区间中的N个分布区间的起始比特为3,终止比特为3-8+2=-3。
需要说明的是,在选取的8比特的比特宽度中,还有一个比特位是符号位,例如,“+”或“-”。
另外,预设规则可以从第一个比率不为0的分布区间开始算起,或者也可以从任意一个比率不为0的分布区间开始算起,或者还可以对任意7比特的分布区间对应的比率求和并选取最大值对应的分布区间。需要说明的是,从第一个比率不为0的分布区间开始算起可以得到本发明的最优分布区间。
140:在神经网络预测过程中,基于第一起始比特和第一终止比特,对当前层的M个输出数据进行比特宽度约束,以实现神经网络芯片的预测。
在本发明实施例中,在神经网络预测过程中,利用当前层的加速方案(即基于N个分布区间的第一起始比特和第一终止比特),对当前层的M个输出数据进行裁剪(或约束),得到最优的输出数据。
具体地,如果待裁剪的输出数据的值大于起始比特与终止比特之间能表达的最大值,则裁剪后的结果用最大值表示;如果待裁剪的输出数据的值小于起始比特与终止比特之间能表达的最小值,则裁剪后的结果用0表示。这里,用二进制表示的最大值是11111.111,用二进制表示的最小值是00000.001。
举例来说,用如上所述的7个比特位3 2 1 0-1-2-3分别对以二进制形式表示的输出数据(即,二进制数据11111.111111、10000.00和0.0000001)进行裁剪。对于二进制数据11111.111111,因为二进制数据11111.111111>二进制数据1111.111,所以裁剪后的结果用最大值表示,即二进制数据1111.111;对于二进制数据10000.00,因为二进制数据10000.00>二进制数据1111.111,所以裁剪后的结果用最大值表示,即二进制数据1111.111;对于二进制数据0.0000001,因为二进制数据0.0000001<二进制数据00000.001,所以裁剪后的结果为0。
根据本发明实施例提供的技术方案,通过对当前层的M个输出数据进行划分,得到当前层的M个输出数据分布区间,对当前层的M个输出数据分布区间中的每个输出数据分布区间内的输出数据进行统计,得到每个输出数据分布区间内的输出数据的数量占M个输出数据的总体数量的比率,基于M个输出数据分布区间对应的比率和预设的比特宽度,对当前层的M个输出数据进行比特宽度约束,得到M个输出数据分布区间中的N个分布区间的第一起始比特和第一终止比特,以及基于第一起始比特和第一终止比特,对当前层的M个输出数据进行比特宽度约束,以实现神经网络芯片的预测,降低了数据带宽,并因此节省了计算时间,从而提高了计算效率。
另外,由于降低了数据带宽,因此,实现了硬件的加速计算。
在本发明的另一个实施例中,该方法还包括:以2的n次方为界,对当前层的M个权重数据进行划分,得到当前层的M个权重数据分布区间,其中n为整数;对当前层的M个权重数据分布区间中的每个权重数据分布区间内的权重数据进行统计,得到每个权重数据分布区间内的权重数据的数量占M个权重数据的总体数量的比率;基于M个权重数据分布区间对应的比率和预设的比特宽度,对当前层的M个权重数据进行比特宽度约束,得到M个权重数据分布区间中的N个分布区间的第二起始比特和第二终止比特,其中比特宽度为第二终止比特与第二起始比特之间的距离,N个分布区间对应的比率满足预设规则;以及在神经网络预测过程中,基于第二起始比特和第二终止比特,对当前层的M个权重数据进行比特宽度约束,以实现神经网络芯片的预测。
具体地,本发明还可以获取权重数据的起始比特和终止比特,由于权重数据的起始比特和终止比特的获取方法与如上所述的输出数据的起始比特和终止比特的获取方法类似,故在此将不再进行赘述。
在本发明的另一个实施例中,该方法还包括:以2的n次方为界,对当前层的M个偏置数据进行划分,得到当前层的M个偏置数据分布区间,其中n为整数;对当前层的M个偏置数据分布区间中的每个偏置数据分布区间内的偏置数据进行统计,得到每个偏置数据分布区间内的偏置数据的数量占M个偏置数据的总体数量的比率;基于M个偏置数据分布区间对应的比率和预设的比特宽度,对当前层的M个偏置数据进行比特宽度约束,得到M个偏置数据分布区间中的N个分布区间的第三起始比特和第三终止比特,其中比特宽度为第三终止比特与第三起始比特之间的距离,N个分布区间对应的比率满足预设规则;以及在神经网络预测过程中,基于第三起始比特和第三终止比特,对当前层的M个偏置数据进行比特宽度约束,以实现神经网络芯片的预测。
具体地,本发明还可以获取偏置数据的起始比特和终止比特,由于偏置数据的起始比特和终止比特的获取方法与如上所述的输出数据的起始比特和终止比特的获取方法类似,故在此将不再进行赘述。
在本发明的另一个实施例中,当前层为卷积层,该方法还包括:在神经网络训练过程中,对神经网络的输入层的M个输入数据进行数据预处理,得到输入层的M个输出数据,将输入层的M个输出数据作为卷积层的M个输入数据;以及对卷积层的M个输入数据进行卷积,得到卷积层的M个输出数据。
具体地,在神经网络训练过程中,可以通过诸如减均值、尺寸变换(例如,简单缩放)、随机剪、镜像变换等方法中的至少一种,对在神经网络的输入层输入的M个原始的输入数据进行数据预处理,得到输入层的M个输出数据,并将输入层的M个输出数据作为卷积层的M个输入数据。
这里,数据预处理的目的在于对原始的输入数据的质量进行改进,从而提高数据挖掘过程的效率、精度和性能;并且数据预处理主要包括数据清理、数据集成、数据变换和数据规约等技术。
需要说明的是,原始的输入数据可以是图像数据、语音数据或其他类型的数据,本发明对此不作限制。
具体地,以图像数据为例,在简单缩放中,通过对图像数据的每一个维度的值进行重新调节(这些维度可能是相互独立的),使得最终的图像数据向量落在[0,1]或[-1,1]的区间内(视图像数据的情况而定)。例如,在处理自然图像时,获得的像素值在[0,255]的区间中,因此,通常的处理方法是将这些像素值除以255,使其缩放到[0,1]的区间中。
接续,对输入层的M个输出数据进行划分,得到输入层的M个输出数据分布区间,对输入层的M个输出数据分布区间中的每个输出数据分布区间内的输出数据进行统计,得到每个输出数据分布区间内的输出数据的数量占M个输出数据的总体数量的比率,基于M个输出数据分布区间对应的比率和预设的比特宽度,对输入层的M个输出数据进行比特宽度约束,得到M个输出数据分布区间中的N个分布区间的起始比特和终止比特,以及在神经网络预测过程中,基于起始比特和终止比特,对输入层的M个输出数据进行比特宽度约束,以实现神经网络芯片的预测。
再续,利用卷积求和运算,对卷积层的M个输入数据和预设的权重数据进行卷积,得到卷积层的M个输出数据。
需要说明的是,本发明不限于如上所述的卷积层,而是可以是归一化(BatchNormalization)层、Scale层等。
在本发明的另一个实施例中,当前层为激活层,该方法还包括:对激活层的M个输入数据进行激活,得到激活层的M个输出数据。
在本发明的另一个实施例中,当前层为池化层,该方法还包括:对池化层的M个输入数据进行采样,得到池化层的M个输出数据。
具体地,对于当前层为诸如激活层或池化层的非卷积层,本发明同样可以得到该非卷积层的输出数据的起始比特和终止比特,由于非卷积层的输出数据的起始比特和终止比特的获取方法与如上所述的卷积层的输出数据的起始比特和终止比特的获取方法类似,故在此将不再进行赘述。
需要说明的是,本发明不限于如上所述的激活层或池化层,而是可以是修正层(Reduction Layer)、拼合层(Flatten Layer)等。
在本发明的另一个实施例中,当前层为全连接层,该方法还包括:对全连接层的M个输入数据进行分类,得到全连接层的M个输出数据。
具体地,对于全连接层,本发明同样可以得到该全连接层的输出数据的起始比特和终止比特,由于全连接层的输出数据的起始比特和终止比特的获取方法与如上所述的卷积层的输出数据的起始比特和终止比特的获取方法类似,故在此将不再进行赘述。
在本发明的另一个实施例中,预设的比特宽度在1比特到32比特的范围内。可选地,作为另一个实施例,预设的比特宽度优选地为8比特。
具体地,由于神经网络有大量的数据存储在内存中,并且在进行计算时每秒都会有上百个G的数据进出内存,导致计算量非常大,且占用的内存的带宽非常大,因此,为了降低单用的内存的带宽,通常采用8比特的比特宽度。
图2是根据本发明另一示例性实施例示出的一种应用于神经网络芯片的预测方法的流程图。如图2所示,该方法包括:
210:对输入层进行处理,得到输入层的加速方案。
在本发明实施例中,在神经网络训练过程中,可以通过诸如减均值、尺寸变换(例如,简单缩放)、随机剪、镜像变换等方法中的至少一种,对在神经网络的输入层输入的M个原始的输入数据进行数据预处理,得到输入层的M个输出数据,并将输入层的M个输出数据作为卷积层的M个输入数据。
接续,对输入层的M个输出数据进行划分,得到输入层的M个输出数据分布区间,对输入层的M个输出数据分布区间中的每个输出数据分布区间内的输出数据进行统计,得到每个输出数据分布区间内的输出数据的数量占M个输出数据的总体数量的比率,基于M个输出数据分布区间对应的比率和预设的比特宽度,对输入层的M个输出数据进行比特宽度约束,得到M个输出数据分布区间中的N个分布区间的起始比特和终止比特,以及在神经网络预测过程中,基于起始比特和终止比特,对输入层的M个输出数据进行比特宽度约束,以实现神经网络芯片的预测。
220:对卷积层进行处理,得到卷积层的加速方案。
在本发明实施例中,利用卷积求和运算,对卷积层的M个输入数据和预设的权重数据进行卷积,得到卷积层的M个输出数据,并将卷积层的M个输出数据作为激活层或池化层的M个输入数据。
接续,对卷积层的M个输出数据、M个权重数据和M个偏置数据进行划分,得到卷积层的M个输出数据分布区间、M个权重数据分布区间和M个偏置数据分布区间。
进一步地,分别对卷积层的M个输出数据分布区间中的每个输出数据分布区间内的输出数据、M个权重数据分布区间中的每个权重数据分布区间内的权重数据和M个偏置数据分布区间中的每个偏置数据分布区间内的偏置数据进行统计,得到每个输出数据分布区间内的输出数据的数量占M个输出数据的总体数量的比率、每个权重数据分布区间内的权重数据的数量占M个权重数据的总体数量的比率和每个偏置数据分布区间内的偏置数据的数量占M个偏置数据的总体数量的比率。
再续,基于M个输出数据分布区间对应的比率、M个权重数据分布区间对应的比率和M个偏置数据分布区间对应的比率以及预设的比特宽度,对卷积层的M个输出数据、M个权重数据和M个偏置数据进行比特宽度约束,得到M个输出数据分布区间中的N个分布区间的第一起始比特和第一终止比特、M个权重数据分布区间中的N个分布区间的第二起始比特和第二终止比特和M个偏置数据分布区间中的N个分布区间的第三起始比特和第三终止比特。
最后,在神经网络预测过程中,基于第一起始比特和第一终止比特、第二起始比特和第二终止比特及第三起始比特和第三终止比特,对卷积层的M个输出数据、M个权重数据和M个偏置数据进行比特宽度约束,以实现神经网络芯片的预测。
230:对激活层或池化层进行处理,得到激活层或池化层的加速方案。
在本发明实施例中,对激活层的M个输入数据进行激活,得到激活层的M个输出数据,或者对池化层的M个输入数据进行采样,得到池化层的M个输出数据。
接续,对激活层或池化层的M个输出数据进行划分,得到激活层或池化层的M个输出数据分布区间。
进一步地,对激活层或池化层的M个输出数据分布区间中的每个输出数据分布区间内的输出数据进行统计,得到每个输出数据分布区间内的输出数据的数量占M个输出数据的总体数量的比率。
再续,基于M个输出数据分布区间对应的比率和预设的比特宽度,对激活层或池化层的M个输出数据进行比特宽度约束,得到M个输出数据分布区间中的N个分布区间的第一起始比特和第一终止比特,其中比特宽度为第一终止比特与第一起始比特之间的距离,N个分布区间对应的比率满足预设规则。
最后,在神经网络预测过程中,基于第一起始比特和第一终止比特,对激活层或池化层的M个输出数据进行比特宽度约束,以实现神经网络芯片的预测。
240:对全连接层进行处理,得到全连接层的加速方案。
在本发明实施例中,由于对全连接层的处理方法与如上所述的对卷积层的处理方法类似,故在此将不再进行赘述。
250:在神经网络预测过程中,基于加速方案,实现神经网络芯片的预测。
在本发明实施例中,基于输入层、卷积层、激活层、池化层和全连接层各自的加速方案,实现了神经网络芯片的预测。
根据本发明实施例提供的技术方案,能够分别得到输入层、卷积层、激活层、池化层和全连接层的加速方案,并利用每一层的加速方案实现神经网络芯片的预测,因此,降低了数据带宽,并进一步提高了计算效率。
另外,由于降低了数据带宽,因此,实现了硬件的加速计算。
上述所有可选技术方案,可以采用任意结合形成本发明的可选实施例,在此不再一一赘述。
下述为本发明装置实施例,可以用于执行本发明方法实施例。对于本发明装置实施例中未披露的细节,请参照本发明方法实施例。
图3是根据本发明一示例性实施例示出的一种应用于神经网络芯片的预测装置300的框图。如图3所示,该预测装置300包括:
划分模块310,用于在神经网络训练过程中,对当前层的M个输出数据进行划分,得到当前层的M个输出数据分布区间;
统计模块320,用于对当前层的M个输出数据分布区间中的每个输出数据分布区间内的输出数据进行统计,得到每个输出数据分布区间内的输出数据的数量占M个输出数据的总体数量的比率;
约束模块330,用于基于M个输出数据分布区间对应的比率和预设的比特宽度,对当前层的M个输出数据进行比特宽度约束,得到M个输出数据分布区间中的N个分布区间的第一起始比特和第一终止比特,其中比特宽度为第一终止比特与第一起始比特之间的距离,N个分布区间对应的比率满足预设规则;以及
预测模块340,用于在神经网络预测过程中,基于第一起始比特和第一终止比特,对当前层的M个输出数据进行比特宽度约束,以实现神经网络芯片的预测。
根据本发明实施例提供的技术方案,通过对当前层的M个输出数据进行划分,得到当前层的M个输出数据分布区间,对当前层的M个输出数据分布区间中的每个输出数据分布区间内的输出数据进行统计,得到每个输出数据分布区间内的输出数据的数量占M个输出数据的总体数量的比率,基于M个输出数据分布区间对应的比率和预设的比特宽度,对当前层的M个输出数据进行比特宽度约束,得到M个输出数据分布区间中的N个分布区间的第一起始比特和第一终止比特,以及基于第一起始比特和第一终止比特,对当前层的M个输出数据进行比特宽度约束,以实现神经网络芯片的预测,降低了数据带宽,并因此节省了计算时间,从而提高了计算效率。
在本发明的另一个实施例中,图3的划分模块310还以2的n次方为界,对当前层的M个输出数据进行划分,得到当前层的M个输出数据分布区间,其中n为整数,并且划分模块310还以2的n次方为界,对当前层的M个权重数据进行划分,得到当前层的M个权重数据分布区间,其中n为整数,统计模块320还对当前层的M个权重数据分布区间中的每个权重数据分布区间内的权重数据进行统计,得到每个权重数据分布区间内的权重数据的数量占M个权重数据的总体数量的比率,约束模块330还基于M个权重数据分布区间对应的比率和预设的比特宽度,对当前层的M个权重数据进行比特宽度约束,得到M个权重数据分布区间中的N个分布区间的第二起始比特和第二终止比特,其中比特宽度为第二终止比特与第二起始比特之间的距离,N个分布区间对应的比率满足预设规则,以及预测模块340还在神经网络预测过程中,基于第二起始比特和第二终止比特,对当前层的M个权重数据进行比特宽度约束,以实现神经网络芯片的预测。
在本发明的另一个实施例中,图3的划分模块310还以2的n次方为界,对当前层的M个偏置数据进行划分,得到当前层的M个偏置数据分布区间,其中n为整数,统计模块320还对当前层的M个偏置数据分布区间中的每个偏置数据分布区间内的偏置数据进行统计,得到每个偏置数据分布区间内的偏置数据的数量占M个偏置数据的总体数量的比率,约束模块330还基于M个偏置数据分布区间对应的比率和预设的比特宽度,对当前层的M个偏置数据进行比特宽度约束,得到M个偏置数据分布区间中的N个分布区间的第三起始比特和第三终止比特,其中比特宽度为第三终止比特与第三起始比特之间的距离,N个分布区间对应的比率满足预设规则,以及预测模块340还在神经网络预测过程中,基于第三起始比特和第三终止比特,对当前层的M个偏置数据进行比特宽度约束,以实现神经网络芯片的预测。
在本发明的另一个实施例中,当前层为卷积层,该预测装置300还包括:预处理模块350,用于在神经网络训练过程中,对神经网络的输入层的M个输入数据进行数据预处理,得到输入层的M个输出数据,将输入层的M个输出数据作为卷积层的M个输入数据;以及卷积模块360,用于对卷积层的M个输入数据进行卷积,得到卷积层的M个输出数据。
在本发明的另一个实施例中,当前层为激活层,该预测装置300还包括:激活模块370,用于对激活层的M个输入数据进行激活,得到激活层的M个输出数据。
在本发明的另一个实施例中,当前层为池化层,该预测装置300还包括:采样模块380,用于对池化层的M个输入数据进行采样,得到池化层的M个输出数据。
在本发明的另一个实施例中,当前层为全连接层,该预测装置300还包括:分类模块390,用于对全连接层的M个输入数据进行分类,得到全连接层的M个输出数据。
在本发明的另一个实施例中,预设的比特宽度在1比特到32比特的范围内。
在本发明的另一个实施例中,预设的比特宽度为8比特。
图4是根据本发明另一示例性实施例示出的一种应用于神经网络芯片的预测装置400的框图。如图4所示,该预测装置400包括:
输入层处理模块410,用于对输入层进行处理,得到输入层的加速方案。
卷积层处理模块420,用于对卷积层进行处理,得到卷积层的加速方案。
激活层处理模块430,用于对激活层进行处理,得到激活层的加速方案。
池化层处理模块440,用于对池化层进行处理,得到池化层的加速方案。
全连接层处理模块450,用于对全连接层进行处理,得到全连接层的加速方案。
预测模块460,用于基于输入层、卷积层、激活层、池化层和全连接层各自的加速方案,实现神经网络芯片的预测。
根据本发明实施例提供的技术方案,能够分别得到输入层、卷积层、激活层、池化层和全连接层的加速方案,并利用每一层的加速方案实现神经网络芯片的预测,因此,降低了数据带宽,并进一步提高了计算效率。
上述装置中各个模块的功能和作用的实现过程具体详见上述方法中对应步骤的实现过程,在此不再赘述。
图5是根据本发明一示例性实施例示出的用于实现神经网络芯片的预测的装置500的框图。
参照图5,装置500包括处理组件510,其进一步包括一个或多个处理器,以及由存储器520所代表的存储器资源,用于存储可由处理组件510的执行的指令,例如应用程序。存储器520中存储的应用程序可以包括一个或一个以上的每一个对应于一组指令的模块。此外,处理组件510被配置为执行指令,以执行上述对图像进行分类方法。
装置500还可以包括一个电源组件被配置为执行装置500的电源管理,一个有线或无线网络接口被配置为将装置500连接到网络,和一个输入输出(I/O)接口。装置500可以操作基于存储在存储器520的操作系统,例如Windows ServerTM,Mac OS XTM,UnixTM,LinuxTM,FreeBSDTM或类似。
一种非临时性计算机可读存储介质,当存储介质中的指令由上述装置400的处理器执行时,使得上述装置500能够执行一种应用于神经网络芯片的预测方法,包括:在神经网络训练过程中,对当前层的M个输出数据进行划分,得到当前层的M个输出数据分布区间;对当前层的M个输出数据分布区间中的每个输出数据分布区间内的输出数据进行统计,得到每个输出数据分布区间内的输出数据的数量占M个输出数据的总体数量的比率;基于M个输出数据分布区间对应的比率和预设的比特宽度,对当前层的M个输出数据进行比特宽度约束,得到M个输出数据分布区间中的N个分布区间的第一起始比特和第一终止比特,其中比特宽度为第一终止比特与第一起始比特之间的距离,N个分布区间对应的比率满足预设规则;以及在神经网络预测过程中,基于第一起始比特和第一终止比特,对当前层的M个输出数据进行比特宽度约束,以实现神经网络芯片的预测。
本领域技术人员在考虑说明书及实践这里的公开后,将容易想到本发明的其它实施方案。本申请旨在涵盖本发明的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本发明的一般性原理并包括本发明未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本发明的真正范围和精神由下面的权利要求指出。
应当理解的是,本发明并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本发明的范围仅由所附的权利要求来限制。

Claims (14)

1.一种应用于神经网络芯片的预测方法,其特征在于,所述预测方法应用于图像识别或语音识别领域,所述方法包括:
在神经网络训练过程中,对当前层的M个输出数据进行划分,得到所述当前层的M个输出数据分布区间,其中,所述神经网络包括输入层和输出层,所述输入层的输入数据包括图像的像素值;
对所述当前层的M个输出数据分布区间中的每个输出数据分布区间内的输出数据进行统计,得到所述每个输出数据分布区间内的输出数据的数量占所述M个输出数据的总体数量的比率;
基于所述M个输出数据分布区间对应的比率和预设的比特宽度,对所述当前层的M个输出数据进行比特宽度约束,得到所述M个输出数据分布区间中的N个分布区间的第一起始比特和第一终止比特,其中所述比特宽度为所述第一终止比特与所述第一起始比特之间的距离,所述N个分布区间对应的比率满足预设规则;以及
在神经网络预测过程中,基于所述第一起始比特和所述第一终止比特,对所述当前层的M个输出数据进行比特宽度约束,以实现所述神经网络芯片的预测,对图像或语音进行识别;
其中,所述对当前层的M个输出数据进行划分,得到所述当前层的M个输出数据分布区间,包括:
以2的n次方为界,对所述当前层的M个输出数据进行划分,得到所述当前层的M个输出数据分布区间,其中n为整数,
其中,所述方法还包括:
以2的n次方为界,对所述当前层的M个权重数据进行划分,得到所述当前层的M个权重数据分布区间,其中n为整数;
对所述当前层的M个权重数据分布区间中的每个权重数据分布区间内的权重数据进行统计,得到所述每个权重数据分布区间内的权重数据的数量占所述M个权重数据的总体数量的比率;
基于所述M个权重数据分布区间对应的比率和预设的比特宽度,对所述当前层的M个权重数据进行比特宽度约束,得到所述M个权重数据分布区间中的N个分布区间的第二起始比特和第二终止比特,其中所述比特宽度为所述第二终止比特与所述第二起始比特之间的距离,所述N个分布区间对应的比率满足预设规则;以及
在神经网络预测过程中,基于所述第二起始比特和所述第二终止比特,对所述当前层的M个权重数据进行比特宽度约束,以实现所述神经网络芯片的预测;
其中,所述方法还包括:
以2的n次方为界,对所述当前层的M个偏置数据进行划分,得到所述当前层的M个偏置数据分布区间,其中n为整数;
对所述当前层的M个偏置数据分布区间中的每个偏置数据分布区间内的偏置数据进行统计,得到所述每个偏置数据分布区间内的偏置数据的数量占所述M个偏置数据的总体数量的比率;
基于所述M个偏置数据分布区间对应的比率和预设的比特宽度,对所述当前层的M个偏置数据进行比特宽度约束,得到所述M个偏置数据分布区间中的N个分布区间的第三起始比特和第三终止比特,其中所述比特宽度为所述第三终止比特与所述第三起始比特之间的距离,所述N个分布区间对应的比率满足预设规则;以及
在神经网络预测过程中,基于所述第三起始比特和所述第三终止比特,对所述当前层的M个偏置数据进行比特宽度约束,以实现所述神经网络芯片的预测;
其中,所述当前层为卷积层,所述方法还包括:
在神经网络训练过程中,对神经网络的输入层的M个输入数据进行数据预处理,得到所述输入层的M个输出数据,将所述输入层的M个输出数据作为所述卷积层的M个输入数据;以及
对所述卷积层的M个输入数据进行卷积,得到所述卷积层的M个输出数据。
2.根据权利要求1所述的预测方法,其特征在于,所述当前层为激活层,所述方法还包括:
对所述激活层的M个输入数据进行激活,得到所述激活层的M个输出数据。
3.根据权利要求1所述的预测方法,其特征在于,所述当前层为池化层,所述方法还包括:
对所述池化层的M个输入数据进行采样,得到所述池化层的M个输出数据。
4.根据权利要求1所述的预测方法,其特征在于,所述当前层为全连接层,所述方法还包括:
对所述全连接层的M个输入数据进行分类,得到所述全连接层的M个输出数据。
5.根据权利要求1所述的预测方法,其特征在于,所述预设的比特宽度在1比特到32比特的范围内。
6.根据权利要求5所述的预测方法,其特征在于,所述预设的比特宽度为8比特。
7.一种应用于神经网络芯片的预测装置,其特征在于,所述预测装置应用于图像识别或语音识别领域,所述装置包括:
划分模块,用于在神经网络训练过程中,对当前层的M个输出数据进行划分,得到所述当前层的M个输出数据分布区间,其中,所述神经网络包括输入层和输出层,所述输入层的输入数据包括图像的像素值;
统计模块,用于对所述当前层的M个输出数据分布区间中的每个输出数据分布区间内的输出数据进行统计,得到所述每个输出数据分布区间内的输出数据的数量占所述M个输出数据的总体数量的比率;
约束模块,用于基于所述M个输出数据分布区间对应的比率和预设的比特宽度,对所述当前层的M个输出数据进行比特宽度约束,得到所述M个输出数据分布区间中的N个分布区间的第一起始比特和第一终止比特,其中所述比特宽度为所述第一终止比特与所述第一起始比特之间的距离,所述N个分布区间对应的比率满足预设规则;以及
预测模块,用于在神经网络预测过程中,基于所述第一起始比特和所述第一终止比特,对所述当前层的M个输出数据进行比特宽度约束,以实现所述神经网络芯片的预测,对图像或语音进行识别;
其中,
所述划分模块还以2的n次方为界,对所述当前层的M个输出数据进行划分,得到所述当前层的M个输出数据分布区间,其中n为整数,并且
所述划分模块还以2的n次方为界,对所述当前层的M个权重数据进行划分,得到所述当前层的M个权重数据分布区间,其中n为整数,所述统计模块还对所述当前层的M个权重数据分布区间中的每个权重数据分布区间内的权重数据进行统计,得到所述每个权重数据分布区间内的权重数据的数量占所述M个权重数据的总体数量的比率,所述约束模块还基于所述M个权重数据分布区间对应的比率和预设的比特宽度,对所述当前层的M个权重数据进行比特宽度约束,得到所述M个权重数据分布区间中的N个分布区间的第二起始比特和第二终止比特,其中所述比特宽度为所述第二终止比特与所述第二起始比特之间的距离,所述N个分布区间对应的比率满足预设规则,以及所述预测模块还在神经网络预测过程中,基于所述第二起始比特和所述第二终止比特,对所述当前层的M个权重数据进行比特宽度约束,以实现所述神经网络芯片的预测;
其中,所述划分模块还以2的n次方为界,对所述当前层的M个偏置数据进行划分,得到所述当前层的M个偏置数据分布区间,其中n为整数,所述统计模块还对所述当前层的M个偏置数据分布区间中的每个偏置数据分布区间内的偏置数据进行统计,得到所述每个偏置数据分布区间内的偏置数据的数量占所述M个偏置数据的总体数量的比率,所述约束模块还基于所述M个偏置数据分布区间对应的比率和预设的比特宽度,对所述当前层的M个偏置数据进行比特宽度约束,得到所述M个偏置数据分布区间中的N个分布区间的第三起始比特和第三终止比特,其中所述比特宽度为所述第三终止比特与所述第三起始比特之间的距离,所述N个分布区间对应的比率满足预设规则,以及所述预测模块还在神经网络预测过程中,基于所述第三起始比特和所述第三终止比特,对所述当前层的M个偏置数据进行比特宽度约束,以实现所述神经网络芯片的预测;
其中,所述当前层为卷积层,所述预测装置还包括:
预处理模块,用于在神经网络训练过程中,对神经网络的输入层的M个输入数据进行数据预处理,得到所述输入层的M个输出数据,将所述输入层的M个输出数据作为所述卷积层的M个输入数据;以及
卷积模块,用于对所述卷积层的M个输入数据进行卷积,得到所述卷积层的M个输出数据。
8.根据权利要求7所述的预测装置,其特征在于,所述当前层为激活层,所述预测装置还包括:
激活模块,用于对所述激活层的M个输入数据进行激活,得到所述激活层的M个输出数据。
9.根据权利要求7所述的预测装置,其特征在于,所述当前层为池化层,所述预测装置还包括:
采样模块,用于对所述池化层的M个输入数据进行采样,得到所述池化层的M个输出数据。
10.根据权利要求7所述的预测装置,其特征在于,所述当前层为全连接层,所述预测装置还包括:
分类模块,用于对所述全连接层的M个输入数据进行分类,得到所述全连接层的M个输出数据。
11.根据权利要求7所述的预测装置,其特征在于,所述预设的比特宽度在1比特到32比特的范围内。
12.根据权利要求11所述的预测装置,其特征在于,所述预设的比特宽度为8比特。
13.一种服务器,包括:存储器、处理器及存储在所述存储器中并可在所述处理器中运行的可执行指令,其特征在于,所述处理器执行所述可执行指令时实现如权利要求1-6中任一项所述的方法。
14.一种计算机可读存储介质,其上存储有计算机可执行指令,其特征在于,所述可执行指令被处理器执行时实现如权利要求1-6中任一项所述的方法。
CN201710667412.4A 2017-08-07 2017-08-07 一种应用于神经网络芯片的预测方法和预测装置 Active CN107292458B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201710667412.4A CN107292458B (zh) 2017-08-07 2017-08-07 一种应用于神经网络芯片的预测方法和预测装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201710667412.4A CN107292458B (zh) 2017-08-07 2017-08-07 一种应用于神经网络芯片的预测方法和预测装置

Publications (2)

Publication Number Publication Date
CN107292458A CN107292458A (zh) 2017-10-24
CN107292458B true CN107292458B (zh) 2021-09-10

Family

ID=60104689

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201710667412.4A Active CN107292458B (zh) 2017-08-07 2017-08-07 一种应用于神经网络芯片的预测方法和预测装置

Country Status (1)

Country Link
CN (1) CN107292458B (zh)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109754061B (zh) * 2017-11-07 2023-11-24 上海寒武纪信息科技有限公司 卷积扩展指令的执行方法以及相关产品
CN108345938A (zh) * 2018-03-01 2018-07-31 中国科学院计算技术研究所 一种包括比特转换装置的神经网络处理器及其方法
CN110288570A (zh) * 2019-05-31 2019-09-27 东南大学 一种基于视觉注意机制的转子绕线弱反光图像检测方法
CN111886597A (zh) * 2019-06-28 2020-11-03 深圳市大疆创新科技有限公司 可移动平台的障碍物检测方法、装置及可移动平台
CN110796281B (zh) * 2019-08-26 2022-07-08 广西电网有限责任公司电力科学研究院 基于改进深度信念网络的风电机组状态参数预测方法
CN112488285A (zh) * 2019-09-12 2021-03-12 上海大学 基于神经网络权重数据分布特点的量化方法
US11263518B2 (en) 2019-10-04 2022-03-01 International Business Machines Corporation Bi-scaled deep neural networks
CN115713103B (zh) * 2022-11-24 2023-08-18 辉羲智能科技(上海)有限公司 片上-片间互连的神经网络芯片联合性能预测方法及系统

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105844330A (zh) * 2016-03-22 2016-08-10 华为技术有限公司 神经网络处理器的数据处理方法及神经网络处理器
CN106447034A (zh) * 2016-10-27 2017-02-22 中国科学院计算技术研究所 一种基于数据压缩的神经网络处理器、设计方法、芯片

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2599351A4 (en) * 2010-07-26 2015-05-20 Hewlett Packard Development Co METHOD AND SYSTEM FOR COMPRESSION OF BINARY PLANS BASED ON BIT POSITION
KR101987475B1 (ko) * 2019-01-29 2019-06-10 주식회사 디퍼아이 하드웨어 구현에 적합한 신경망 파라미터 최적화 방법, 신경망 연산방법 및 그 장치

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105844330A (zh) * 2016-03-22 2016-08-10 华为技术有限公司 神经网络处理器的数据处理方法及神经网络处理器
CN106447034A (zh) * 2016-10-27 2017-02-22 中国科学院计算技术研究所 一种基于数据压缩的神经网络处理器、设计方法、芯片

Also Published As

Publication number Publication date
CN107292458A (zh) 2017-10-24

Similar Documents

Publication Publication Date Title
CN107292458B (zh) 一种应用于神经网络芯片的预测方法和预测装置
Luo et al. Image restoration with mean-reverting stochastic differential equations
US11481613B2 (en) Execution method, execution device, learning method, learning device, and recording medium for deep neural network
CN109002889B (zh) 自适应迭代式卷积神经网络模型压缩方法
CN111488985B (zh) 深度神经网络模型压缩训练方法、装置、设备、介质
CN111144329B (zh) 一种基于多标签的轻量快速人群计数方法
US20230196837A1 (en) Action recognition method and apparatus, and device and storage medium
US9418440B2 (en) Image segmenting apparatus and method
JP2008542911A (ja) メトリック埋め込みによる画像比較
CN109034249B (zh) 基于分解径向对称卷积核的卷积优化方法、装置、终端设备及计算机可读存储介质
US20200389182A1 (en) Data conversion method and apparatus
CN113111889A (zh) 用于边缘计算端的目标检测网络处理方法
CN111240746A (zh) 一种浮点数据反量化及量化的方法和设备
CN114332500A (zh) 图像处理模型训练方法、装置、计算机设备和存储介质
CN110503149B (zh) 一种图像中局部特征分类方法及系统
CN112036454A (zh) 一种基于多核密集连接网络的图像分类方法
Liang et al. Dynamic runtime feature map pruning
CN111542838B (zh) 一种卷积神经网络的量化方法、装置及电子设备
CN112418388A (zh) 一种实现深度卷积神经网络处理的方法及装置
CN113139577B (zh) 一种基于可变形卷积网络的深度学习图像分类方法及系统
CN113792804B (zh) 图像识别模型的训练方法、图像识别方法、装置及设备
CN116631190A (zh) 智能交通监控系统及其方法
CN113159297B (zh) 一种神经网络压缩方法、装置、计算机设备及存储介质
CN113825148B (zh) 网络节点告警等级的确定方法、装置及计算设备
CN114139678A (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
TA01 Transfer of patent application right
TA01 Transfer of patent application right

Effective date of registration: 20180418

Address after: 100191 Xueyuan Road, Haidian District, Haidian District, Beijing, No. 607, No. six

Applicant after: BEIJING VIMICRO ARTIFICIAL INTELLIGENCE CHIP TECHNOLOGY CO.,LTD.

Address before: 100191, Haidian District, Xueyuan Road, Beijing No. 35, Nanjing Ning building, 16 floor

Applicant before: VIMICRO Corp.

GR01 Patent grant
GR01 Patent grant
TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20230116

Address after: 201108 Room 901, Building 1, No. 515, Shennan Road, Minhang District, Shanghai

Patentee after: Shanghai Zhongxingwei Xinzhuang Artificial Intelligence Chip Co.,Ltd.

Address before: 100191 607, six floor, Ning Ning mansion, 35 Xueyuan Road, Haidian District, Beijing.

Patentee before: BEIJING VIMICRO ARTIFICIAL INTELLIGENCE CHIP TECHNOLOGY CO.,LTD.