CN111652367B - 一种数据处理方法及相关产品 - Google Patents

一种数据处理方法及相关产品 Download PDF

Info

Publication number
CN111652367B
CN111652367B CN202010401876.2A CN202010401876A CN111652367B CN 111652367 B CN111652367 B CN 111652367B CN 202010401876 A CN202010401876 A CN 202010401876A CN 111652367 B CN111652367 B CN 111652367B
Authority
CN
China
Prior art keywords
data
quantization
quantized
bit width
point
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
CN202010401876.2A
Other languages
English (en)
Other versions
CN111652367A (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 Cambricon Information Technology Co Ltd
Original Assignee
Shanghai Cambricon Information 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 Shanghai Cambricon Information Technology Co Ltd filed Critical Shanghai Cambricon Information Technology Co Ltd
Publication of CN111652367A publication Critical patent/CN111652367A/zh
Application granted granted Critical
Publication of CN111652367B publication Critical patent/CN111652367B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1476Error detection or correction of the data by redundancy in operation in neural networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/06Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
    • G06N3/063Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means
    • 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
    • G06N3/084Backpropagation, e.g. using gradient descent
    • 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/04Architecture, e.g. interconnection topology
    • G06N3/047Probabilistic or stochastic networks
    • 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/048Activation functions
    • 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/0495Quantised networks; Sparse networks; Compressed 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/81Threshold
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/865Monitoring of software

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Health & Medical Sciences (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Biomedical Technology (AREA)
  • Biophysics (AREA)
  • Artificial Intelligence (AREA)
  • General Physics & Mathematics (AREA)
  • Evolutionary Computation (AREA)
  • General Engineering & Computer Science (AREA)
  • Computing Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • Computational Linguistics (AREA)
  • Molecular Biology (AREA)
  • General Health & Medical Sciences (AREA)
  • Neurology (AREA)
  • Quality & Reliability (AREA)
  • Probability & Statistics with Applications (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)
  • Image Analysis (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

本技术方案涉及一种数据处理方法及相关产品,所述产品中的板卡包括:存储器件、接口装置和控制器件以及人工智能芯片;其中,所述人工智能芯片与所述存储器件、所述控制器件以及所述接口装置分别连接;所述存储器件,用于存储数据;所述接口装置,用于实现所述人工智能芯片与外部设备之间的数据传输;所述控制器件,用于对所述人工智能芯片的状态进行监控。所述板卡可以用于执行人工智能运算。

Description

一种数据处理方法及相关产品
技术领域
本公开的实施例涉及一种数据处理方法及相关产品。
背景技术
神经网络(neural network,NN)是一种模仿生物神经网络的结构和功能的数学模型或计算模型。神经网络通过样本数据的训练,不断修正网络权值和阈值使误差函数沿负梯度方向下降,逼近期望输出。它是一种应用较为广泛的识别分类模型,多用于函数逼近、模型识别分类、数据压缩和时间序列预测等。
在实际运用中,神经网络的数据常用32Bit,现有的神经网络的数据占用的比特位较多,虽然确保了精度,但是需要较高的存储空间以及处理带宽,提高了成本。
发明内容
为了解决上述所述的技术问题,本公开提出一种数据处理方法及相关产品。
为实现上述目的,本公开提供一种数据处理方法,包括:
所述通用处理器获取端侧人工智能处理器的硬件架构信息,根据所述端侧人工智能处理器的硬件架构信息生成对应的二进制指令;
所述通用处理器根据所述二进制指令生成对应的训练任务,将所述训练任务发送至云侧人工智能处理器上运行;
所述云侧人工智能处理器接收所述训练任务,执行所述训练任务,获得训练结果;
所述通用处理器接收所述训练任务对应的训练结果,根据所述训练结果确定对应的超参数;其中,所述超参数是用于确定在训练过程中目标迭代间隔;所述目标迭代间隔包括至少一次权值更新迭代,且同一目标迭代间隔内量化过程中采用相同的所述数据位宽;
所述通用处理器根据同一端侧人工智能处理器的硬件架构信息的不同训练结果对应的超参数确定超参数映射表;其中,所述超参数映射表是同一端侧人工智能处理器的硬件架构信息所述对应的不同的训练结果与超参数之间的对应关系。
为实现上述目的,本公开提供一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机程序,所述计算机程序被执行时,实现如上述所述的方法的步骤。
为实现上述目的,本公开提供一种数据处理装置,所述装置包括:存储器、通用处理器以及云侧人工智能处理器;所述存储器上存储有可在所述通用处理器和/或所述云侧人工智能处理器上运行上述所述方法的计算机程序。
在神经网络运算过程中,量化时利用本公开的技术方案确定量化参数,该量化参数用于人工智能处理器对神经网络运算过程中的数据进行量化,将高精度数据转换为低精度定点数,可以减少神经网络运算过程中涉及的数据存储所有的空间大小。例如:float32转化为fix8可以将模型参数减少4倍。由于数据存储空间变小,使得神经网络部署时使用更小的空间,使得人工智能处理器芯片上的片上内存可以容纳更多的数据,减少了人工智能处理器芯片访存数据,提高计算性能。
附图说明
为了更清楚地说明本公开实施例的技术方案,下面将对实施例的附图作简单地介绍,显而易见地,下面描述中的附图仅仅涉及本公开的一些实施例,而非对本公开的限制。
图1为神经网络结构示意图;
图2a为人工智能处理器的软件栈示意图;
图2为本技术方案的系统架构图;
图3为示意性给出本技术方案的应用场景图之一;
图4为示意性给出本技术方案的应用场景图之二;
图5为本申请提出的一种数据处理方法流程图之一;
图6为训练任务的流程图;
图7为对称的定点数表示示意图;
图8为引入偏移量的定点数表示示意图;
图9a为训练过程中神经网络的权值数据变动幅度曲线图之一;
图9b为训练过程中神经网络的权值数据变动幅度曲线图之二;
图10为确定目标迭代间隔的方法流程图之一;
图11为确定目标迭代间隔的方法流程图之二;
图12为确定目标迭代间隔的方法流程图之三;
图13为本申请提出的一种数据处理装置的硬件配置的框图;
图14为本申请提出的数据处理装置应用于人工智能处理器芯片的应用示意图;
图15为本申请实施例的板卡的结构框图;
图16为本申请提出的一种数据处理方法流程图之二。
具体实施方式
下面将结合本披露实施例中的附图,对本披露实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本披露一部分实施例,而不是全部的实施例。基于本披露中的实施例,本领域技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本披露保护的范围。
应当理解,本披露的权利要求、说明书及附图中的术语“第一”、“第二”、“第三”和“第四”等是用于区别不同对象,而不是用于描述特定顺序。本披露的说明书和权利要求书中使用的术语“包括”和“包含”指示所描述特征、整体、步骤、操作、元素和/或组件的存在,但并不排除一个或多个其它特征、整体、步骤、操作、元素、组件和/或其集合的存在或添加。
还应当理解,在此本披露说明书中所使用的术语仅仅是出于描述特定实施例的目的,而并不意在限定本披露。如在本披露说明书和权利要求书中所使用的那样,除非上下文清楚地指明其它情况,否则单数形式的“一”、“一个”及“该”意在包括复数形式。还应当进一步理解,在本披露说明书和权利要求书中使用的术语“和/或”是指相关联列出的项中的一个或多个的任何组合以及所有可能组合,并且包括这些组合。
如在本说明书和权利要求书中所使用的那样,术语“如果”可以依据上下文被解释为“当...时”或“一旦”或“响应于确定”或“响应于检测到”。类似地,短语“如果确定”或“如果检测到[所描述条件或事件]”可以依据上下文被解释为意指“一旦确定”或“响应于确定”或“一旦检测到[所描述条件或事件]”或“响应于检测到[所描述条件或事件]”。
技术术语定义:
浮点数:IEEE浮点标准用V=(-1)∧sign*mantissa*2∧E的形式表示一个数。其中,sign为符号位,0表示正数,1代表负数;E表示阶码,对浮点数进行加权,权值是2的E次幂(可能是负数次幂);mantissa表示尾数,mantissa是一个二进制小数,其范围是1~2-ε,或者是0-ε。浮点数表示在计算机中的表示分为三个字段,分别对这些字段进行编码:
(1)一个单独的符号位s直接编码符号s。
(2)k位的阶码字段编码阶码,exp=e(k-1)......e(1)e(0)。
(3)n位的小数字段mantissa,编码尾数。但编码结果依赖阶码阶段是否全为0。
定点数:由共享指数(exponent)、符号位(sign)、尾数(mantissa)三部分构成。其中,共享指数是说指数在需要量化的一个实数集合内共享;符号位标志了定点数的正负。尾数决定了定点数的有效数字位数,即精度。以8-bit定点数类型为例,其数值计算方法为:
value=(-1)sign×(mantissa)×2(exponent-127)
二进制小数:任意十进制数都可以用公式∑j*10i表示。例如十进制数12.34,以公式1表示为:12.34=1*101+2*100+3*10-1+4*10-2,小数点的左边计为10的正次幂,小数点的右边计为10的负次幂。同理,二进制小数也可以用这种方式表达,小数点左边为2的正次幂,小数点的右边计为2的负次幂,十进制小数5.75可用二进制小数101.11表示,该二进制小数表示为5.75=1*22+0*21+1*20+1*2-1+1*2-2
溢出:在定点运算器中,数的表示有一定的范围。在运算过程中。若数的大小超出了定点数能表示的范围,称为“溢出”。
KL(Kullback–Leibler divergence)散度:又称为相对熵(relative entropy)、信息散度(information divergence)、信息增益(information gain)。KL散度是两个概率分布P和Q之间差别的非对称性的度量。KL散度是用来度量使用基于Q的编码来编码来自P的样本平均所需的额外的比特个数。典型情况下,P表示数据的真实分布,Q表示数据的理论分布、模型分布、或P的近似分布。
流片:在集成电路设计领域,流片是指试生产,也即在设计完满足预设功能的集成电路之后,先生产几片或几十片供测试用,如果满足测试需求,则按照当前满足测试需求的集成电路的结构进行大规模生产。
人工智能处理器的软件栈:参见图2a,该软件栈结构20a包括人工智能应用200a、人工智能框架202a、人工智能学习库204a、人工智能运行时库206a以及驱动208a。接下来对其进行具体阐述:
人工智能应用200a对应不同的应用场景,提供对应的人工智能算法模型。该算法模型可以直接被人工智能框架202a的编程接口解析,在其中一个可能的实现方式中,通过人工智能学习库204a将人工智能算法模型转换为二进制指令,调用人工智能运行时库206a对二进制指令转换为人工智能学习任务,将该人工智能学习任务放在任务队列中,由驱动208a调度任务队列中的人工智能学习任务让底层的人工智能处理器执行。在其中另一个可能的实现方式中,也可以直接调用人工智能运行时库206a,运行先前已固化生成的离线运行文件,减少软件架构的中间开销,提高运行效率。
二进制指令:是底层的人工智能处理器可以识别的信息。
人工智能处理器:也称之为专用处理器,针对特定应用或者领域的处理器。例如:图形处理器(Graphics Processing Unit,缩写:GPU),又称显示核心、视觉处理器、显示芯片,是一种专门在个人电脑、工作站、游戏机和一些移动设备(如平板电脑、智能手机等)上图像运算工作的专用处理器。又例如:神经网络处理器(Neural Processing Unit,缩写:NPU),是一种在人工智能领域的应用中针对矩阵乘法运算的专用处理器,采用“数据驱动并行计算”的架构,特别擅长处理视频、图像类的海量多媒体数据。
可重构体系结构:如果某一人工智能处理器能够利用可重用的硬件资源,根据不同的应用需求,灵活的改变自身的体系结构,以便为每个特定的应用需求提供与之相匹配的体系结构,那么这一人工智能处理器就称为可重构的计算系统,其体系结构称为可重构的体系结构。
专用编程语言:基于特定的硬件开发的高级编程语言。例如:Cuda C。
下面结合附图,对本公开实施例提供的一种神经网络的量化参数确定方法及相关产品的具体实施方式进行详细说明。
神经网络(neural network,NN)是一种模仿生物神经网络的结构和功能的数学模型,神经网络由大量的神经元连接进行计算。因此,神经网络是一种计算模型,由大量的节点(或称“神经元”)相互的连接构成。每个节点代表一种特定的输出函数,称为激活函数(activation function)。每两个神经元之间的连接都代表一个通过该连接信号的加权值,称之为权值,这相当于神经网络的记忆。神经网络的输出则依神经元之间的连接方式以及权值和激活函数的不同而不同。在神经网络中,神经元是神经网络的基本单位。它获得一定数量的输入和一个偏置,当信号(值)到达时会乘以一个权值。连接是将一个神经元连接到另一层或同一层的另一个神经元,连接伴随着与之相关联的权值。另外,偏置是神经元的额外输入,它始终为1,并具有自己的连接权值。这确保即使所有的输入都为空(全部为0),神经元也会激活。
在应用中,如果不对神经网络中的神经元应用一个非线性函数,神经网络只是一个线性函数而已,那么它并不比单个神经元强大。如果让一个神经网络的输出结果在0到1之间,例如,在猫狗鉴别的例子中,可以把接近于0的输出视为猫,将接近于1的输出视为狗。为了完成这个目标,在神经网络中引入激活函数,比如:sigmoid激活函数。关于这个激活函数,只需要知道它的返回值是一个介于0到1的数字。因此,激活函数用于将非线性引入神经网络,它会将神经网络运算结果缩小到较小的范围内。实际上,激活函数怎样表达并不重要,重要的是通过一些权值将一个非线性函数参数化,可以通过改变这些权值来改变这个非线性函数。
如图1所示,为神经网络结构示意图。在图1所示的神经网络中,包括三层,分别为输入层、隐含层以及输出层,图1所示的隐含层为5层。其中,神经网络的最左边一层被称为输入层,输入层的神经元被称为输入神经元。输入层作为神经网络中的第一层,需要输入信号(值)并将它们传递到下一层。它不对输入信号(值)做任何操作,并且没有关联的权值和偏置。在图1所示的神经网络中,有4个输入信号x1,x2,x3,x4。
隐含层用于对输入数据应用不同变换的神经元(节点)。一个隐含层是垂直排列的神经元的集合(Representation)。在图1所示的神经网络中,有5个隐含层。第一隐含层有4个神经元(节点),第2层有5个神经元,第3层有6个神经元,第4层有4个神经元,第5层有3个神经元。最后,隐含层将值传递给输出层。图1所示的神经网络将5个隐含层中每个神经元之间进行完全连接,5个隐含层中的每个神经元都与下一层的每一个神经元有连接。需要说明的是,并不是每个神经网络的隐含层是完全连接的。
神经网络的最右边一层被称为输出层,输出层的神经元被称为输出神经元。输出层接收来自最后一个隐含层的输出。通过输出层,我们可以知道期望的值和期望的范围。在图1所示的神经网络中,输出层有3个神经元,有3个输出信号y1,y2,y3。
在实际应用中,神经网络的作用就是预先给大量的样本数据(包含输入和输出)来进行训练,训练完成后,希望神经网络对于将来的真实环境的输入也能给出一个令大家满意的输出。
在开始讨论神经网络的训练之前,需要定义损失函数。损失函数是一个可以告诉大家神经网络在某个特定的任务上表现有多好的函数。做这件事的最直接的办法就是,在训练过程中,对每一个样本数据,都沿着神经网络传递得到一个数字,然后将这个数字与我们想要得到的实际数字做差再求平方,这样计算出来的就是预测值与真实值之间的距离,而训练神经网络就是希望将这个距离或损失函数的取值减小。损失函数的表示式为:
上式中,y代表想要从神经网络得到的数字,指样本数据集合中每个样本数据通过神经网络得到的实际结果,i是样本数据集合中每个样本数据的索引。m为样本数据集合中样本数据的个数。还是以猫狗鉴别为例。有一个数据集,由猫和狗的图片组成,如果图片是狗,对应的标签是1,如果图片是猫,对应的标签是0。这个标签就是对应上述公式中的y,在向神经网络传递每一张样本图片的时候,实际是想通过神经网络获得识别结果。为了计算损失函数,必须遍历样本数据集中的每一张样本图片,获得每一张样本图片对应的y,然后按照上面的定义计算损失函数。如果损失函数比较大,那么说明神经网络性能并不是很好,需要对权值进行调整。
在开始训练神经网络的时候,要对权值进行随机初始化。显然,初始化的神经网络并不会提供一个很好的结果。在训练的过程中,假设以一个很糟糕的神经网络开始,通过训练,可以得到一个具有高准确率的网络。同时,还希望在训练结束的时候,损失函数的函数值变得特别小。
神经网络的训练过程分为两个阶段,第一阶段是信号的正向处理,从输入层经过隐含层,最后到达输出层。第二阶段是反向传播梯度,从输出层到隐含层,最后到输入层,根据梯度依次调节神经网络中每层的权值和偏置。
在正向处理的过程中,将输入值输入到神经网络的输入层,并从神经网络的输出层得到我们称为预测值的输出。当输入值提供给神经网络的输入层时,它没有进行任何操作。在隐含层中,第二个隐含层从第一个隐含层获取预测中间结果值并进行计算操作和激活操作,然后将得到的预测中间结果值传递给下一个隐含层。在后面的层中执行相同的操作,最后在神经网络的输出层得到输出值。
正向处理后,得到一个被称为预测值的输出值。为了计算误差,使用损失函数来将预测值与实际输出值进行比较,获得对应的误差值。反向传播使用微分学的链式法则,在链条法则中,首先计算对应神经网络的最后一层权值的误差值的导数。称这些导数为梯度,然后使用这些梯度来计算神经网络中的倒数第二层的梯度。重复此过程,直到我们得到神经网络中每个权值的梯度。最后,从权值中减去对应的梯度,从而对权值进行一次更新,以达到减少误差值的目的。
对于神经网络来说,微调是载入训练过的神经网络,微调过程与训练过程相同,分为两个阶段,第一阶段是信号的正向处理,第二阶段是反向传播梯度,对训练过的神经网络的权值进行更新。训练与微调的不同之处在于,训练是随机对初始化的神经网络进行处理,从头开始训练神经网络,而微调不是。
在神经网络进行训练或微调过程中,神经网络每经过一次信号的正向处理以及对应一次误差的反向传播过程,神经网络中的权值利用梯度进行一次更新,此时称为一次迭代(iteration)。为了获得精度符合预期的神经网络,在训练过程中需要很庞大的样本数据集。在这种情况下,一次性将样本数据集输入计算机是不可能的。因此,为了解决这个问题,需要把样本数据集分成多个块,每块传递给计算机,每块数据集正向处理后,对应更新一次神经网络的权值。当一个完整的样本数据集通过了神经网络一次正向处理并且对应返回了一次权值更新,这个过程称为一个周期(epoch)。实际中,在神经网络中传递一次完整的数据集是不够的,需要将完整的数据集在同一神经网络中传递多次,即需要多个周期,最终获得精度符合预期的神经网络。
在神经网络进行训练或微调过程中,一般希望速度越快越好,准确率越高越好。神经网络的数据通过高精度数据格式表示,比如:浮点数,所以在训练或微调过程中,涉及的数据均为高精度数据格式,然后再将训练好的神经网络进行量化。以量化对象是整个神经网络的权值、且量化后的权值均为8bit定点数为例,由于一个神经网络中常常有数百万连接,几乎所有空间都被神经元连接的权值所占据。况且这些权值都是不同的浮点数。每层权值都趋向于某个确定区间的正态分布,例如(-3.0,3.0)。将神经网络中每层的权值对应的最大值和最小值保存下来,将每个浮点数值采用8bit定点数表示。其中,在最大值、最小值范围内空间线性划分256个量化间隔,每个量化间隔用一个8bit定点数表示。例如:在(-3.0,3.0)区间内,字节0表示-3.0,字节255表示3.0。以此类推,字节128表示0。
对于高精度数据格式表示的数据,以浮点数为例,根据计算机体系结构可知,基于浮点数的运算表示法则、定点数的运算表示法则,对于同样长度的定点运算和浮点运算,浮点运算计算模式更为复杂,需要更多的逻辑器件来构成浮点运算器。这样从体积上来说,浮点运算器的体积比定点运算器的体积要大。并且,浮点运算器需要消耗更多的资源去处理,使得定点运算和浮点运算二者之间的功耗差距通常是数量级的。简言之,浮点运算器占用的芯片面积和功耗相比于定点运算器都要大很多倍。
但是,浮点运算又有其不可取代性。首先,定点运算虽然直观,但是固定的小数点位置决定了固定位数的整数部分和小数部分,不利于同时表达特别大的数或者特别小的数,可能出现溢出的情况。
此外,具体使用人工智能处理器芯片做训练或微调时,通常更倾向于浮点运算器,主要是因为在有监督学习的神经网络中,只有浮点运算才能记录和捕捉到训练时很小的增量。那么,如何在不增加人工智能处理器芯片面积和功耗的前提下,如何大幅提升芯片做训练的运算能力是目前急需解决的问题。
对于本领域的技术人员来说,使用低位宽表示的定点数进行训练,经实践反馈可知需要使用高于8bit定点数来处理反向传播梯度,这使得使用低位宽表示的定点数实现训练的过程异常复杂。如何将定点运算器代替浮点运算器,达到定点运算的快速度,提升人工智能处理器芯片的峰值算力的同时满足运算所需的浮点运算的精度是本说明书解决的技术问题。
基于上述技术问题的描述,神经网络的特性是对输入噪声容忍度很高。如果你考虑识别照片中物体,神经网络能忽略所有噪声,而把注意力放在更重要的相似性。该功能意味着神经网络可以把低精度计算作为另一种噪声源,在容纳更少信息的数值格式下仍然能产生准确的预测结果。要做好低精度训练,就要找到一个具有适普性的数据表示,既能改善数据的溢出情况,又能让目标区间范围内0附近的数据更好的表达。因此,这个数据表示需要自适应性,能随着训练的过程进行调整。
参见图2所示,是本技术方案的系统架构图,如图2所示,该系统架构包括:云侧设备201、软件开发平台202、端侧设备203。
具体实现中,软件开发平台202提供了用于应用开发、性能调优、功能调试等一系列工具包。其中,应用开发工具包括人工智能学习库、人工智能运行时库、编译器和特定领域(如视频分析)的软件开发工具。功能调试工具可以满足编程框架、人工智能学习库等不同层次的调试需求;性能调优工具包括性能剖析工具和系统监控工具等。编译器可以包括C++语言的传统编译器,还可以包括基于类C语言的机器学习编译器,也可以基于其他高级语言或者专门设计的领域专用编程语言(Domain Specific Language)的机器学习编译器。可选地,该软件开发平台可以运行在云侧设备201的处理器上运行,也可以运行在本地(host)的计算机设备的处理器上,该本地的计算机设备可以包括通用处理器(如CPU)和显示器等,此处不做具体限定。进一步可选地,上述软件开发平台可以以客户端的形式运行在本地的计算机设备上,或者云端设备上,本申请实施例不作具体限定。如图3所示,该图示意性给出本技术方案的应用场景之一。用户在一台式电脑上登录软件开发平台,在软件开发平台上生成算法模型对应的人工智能学习任务,根据人工智能学习任务在云侧人工智能处理器上运行结果对人工智能学习任务进行调整。如图4所示,该图示意性给出本技术方案的应用场景之二。在云端设备201上设置有人工智能软件开发客户端。具体地,云侧设备是完整的计算机系统,可以包括通用处理器和至少一个人工智能处理器。例如:人工智能处理器可以包括8个集群(cluster),每个cluster中包括4个人工智能处理器核。在实际中,软件开发平台202维护一份用户记录,该用户记录通过数据块等工具保存,记录内容包括用户个人信息(账户信息等)、用户所需要的服务信息。其中,服务信息包括但不限于调试需求,端侧人工智能处理器的设备信息。该调试需求包括但不限于功能调试和性能调试。设备信息包括硬件架构信息和运行环境参数。运行环境参数包括但不限于端侧人工智能处理器的运行主频率、片外存储器到端侧人工智能处理器之间的访存带宽、片上存储大小、端侧人工智能处理器的核数、端侧人工智能处理器的运算器类型。
具体实现中,云侧设备201上设置有人工智能处理器,该人工智能处理器称为云侧人工智能处理器。云侧人工智能处理器包括但不限于人工智能处理器芯片、现场可编程门阵列、模拟器。其中,人工智能处理器芯片可以可重构型芯片,也可以是非重构型芯片。云侧设备201是服务器板卡或服务器板卡集群。
具体实现中,端侧设备203上设置有人工智能处理器,该人工智能处理器称为端侧人工智能处理器。端侧设备可以是终端设备,比如:平板电脑、移动电话。端侧设备也可以是边缘端设备,比如:摄像头。需要说明的是,在本申请实施例中,端侧设备203可以是未流片状态的设备,也可以是已流片的设备。
本技术方案的系统架构的工作原理为:在软件开发平台202上,驱动程序根据端侧人工智能处理器的设备信息从云侧设备201中筛选与端侧设备203相适配的人工智能处理器。筛选出的云侧人工智能处理器的硬件架构信息兼容对应的端侧人工智能处理器的硬件架构信息,且云侧人工智能处理器的指令集兼容对应的端侧人工智能处理器的指令集。这里,云侧人工智能处理器的硬件架构信息兼容对应的端侧人工智能处理器的硬件架构信息可以包括:云侧人工智能处理器的计算能力大于或等于端侧人工智能处理器的计算能力。
在软件开发平台202上,根据端侧人工智能处理器的设备信息设置人工智能学习库的编译接口对应的软件参数,结合编程框架获得的算法模型,调用已设置好的人工智能学习库的编译接口来编译,获得对应的端侧人工智能处理器的二进制指令。该二进制指令经运行时库处理生成人工智能学习任务。将人工智能学习任务放入任务队列,最终由驱动器调度任务队列中的人工智能学习任务让云侧人工智能处理器执行。
根据云侧人工智能处理器执行的人工智能学习任务,反馈运行结果至软件开发平台202上。可选地,软件开发平台202可以显示运行结果。根据运行结果,软件开发平台202接收用户的操作指令,调整所述端侧人工智能处理器的硬件架构信息、调整所述端侧人工智能处理器的运行环境参数、优化人工智能学习任务这三种方式中的至少其中之一,均可实现二进制指令的调整。将调整后的二进制指令转换为对应的人工智能学习任务,放入任务队列中,由驱动器调度任务队列中的人工智能学习任务让云侧人工智能处理器执行。直至云侧人工智能处理器反馈的运行结果符合预期。
在本技术方案中,端侧人工智能处理器的设备信息与人工智能学习库的编译接口的软件参数相对应,该软件参数包含更多信息,比如:Ram size、Cache大小、是否通过Cache缓存等。这些信息关系到生成二进制指令时分配的操作域,因此,在人工智能算法模型不改变的情况下,更改端侧人工智能处理器的设备信息,就可以调整二进制指令,从而调整人工智能学习任务。不管端侧人工智能处理器是否流片,根据端侧人工智能处理器的设备信息从云侧设备201中适配出可以替代端侧人工智能处理器,在云侧人工智能处理器上执行对应的人工智能学习任务。根据运行结果,在该软件开发平台上完成算法模型与人工智能处理器之间的功能、性能、精度调试,调试完成后生成的离线运行文件可以在使用兼容架构上的多种端侧的SoC芯片上部署,带来的好处是客户无需拿到硬件实体就可提前对算法模型与人工智能处理器之间功能、性能、精度调试,大大缩短了产品开发周期。并且,无需为每个端侧的SoC芯片单独开发或者适配一套开发环境。
更进一步地,本技术方案中,云侧人工智能处理器的设备信息对应的当前运行环境参数可以与其实际运行环境参数相同,也可以与其实际运行参数不同。根据云侧人工智能处理器对特定人工智能学习任务的执行结果,确定端侧人工智能处理器的设备信息是否符合预期条件。当端侧人工智能处理器的设备信息不符合预期条件时,可以进一步调整端侧人工智能处理器的设备信息,直至该端侧人工智能处理器的设备信息符合预期条件。因此,对于本技术方案来说,端侧人工智能处理器的架构在设计阶段时,还可以基于应用来评定端侧的SoC芯片设计规格。
使用定点数训练神经网络模型的过程中,需要间隔一定的迭代间隔来对数据位宽n进行调整。在确定迭代间隔时,需要基于一些超参数。在实际中,对于不同的神经网络模型,超参数是不一样。超参数设置不合适,会影响训练出的神经网络模型的精度。在实际中,对于不同的神经网络模型,超参数是不一样。超参数设置不合适,会影响训练出的神经网络模型的精度。如何设置合适的超参数是本技术方案急需解决的技术问题。基于此,在图2所示的系统架构上展开训练任务,获得超参数映射表。该超参数映射表是不同的神经网络模型与超参数之间的对应关系。用户可以根据该超参数映射表去选择合适的超参数值,展开训练任务,不会因超参数设置不合适而影响训练精度,并提升了用户的体验度。
基于上述描述,如图5所示,为本申请提出的一种数据处理方法流程图之一。所述方法包括:
步骤501):所述通用处理器获取端侧人工智能处理器的硬件架构信息,根据所述端侧人工智能处理器的硬件架构信息生成对应的二进制指令;
步骤502):所述通用处理器根据所述二进制指令生成对应的训练任务,将所述训练任务发送至云侧人工智能处理器上运行;
步骤503):所述云侧人工智能处理器接收所述训练任务,执行所述训练任务,获得训练结果;
步骤504):所述通用处理器接收所述训练任务对应的训练结果,根据所述训练结果确定对应的超参数;其中,所述超参数是用于确定在训练过程中目标迭代间隔;所述目标迭代间隔包括至少一次权值更新迭代,且同一目标迭代间隔内量化过程中采用相同的所述数据位宽;
步骤505):所述通用处理器根据同一端侧人工智能处理器的硬件架构信息的不同训练结果对应的超参数确定超参数映射表;其中,所述超参数映射表是不同的神经网络模型与超参数之间的对应关系。
基于图2所示的系统架构上展开训练任务,采用图5所示的技术方案,获得超参数映射表。在该超参数表中,不同的神经网络模型对应超参数。该超参数使得确定目标迭代间隔更精准,从而不会因超参数设置不合适而影响训练精度,并提升了用户的体验度。
如图16所示,为本申请提出的一种数据处理方法流程图之二。包括:
步骤1601):所述通用处理器读取超参数映射表;其中,所述超参数映射表是不同的神经网络模型与超参数之间的对应关系;
步骤1602):所述通用处理器根据所述端侧人工智能处理器的硬件架构信息和所述神经网络模型从所述超参数映射表中确定对应的超参数;其中,所述超参数是用于确定在训练过程中目标迭代间隔;所述目标迭代间隔包括至少一次权值更新迭代,且同一目标迭代间隔内量化过程中采用相同的所述数据位宽;
步骤1603):所述通用处理器根据所述端侧人工智能处理器的硬件架构信息和所述超参数生成对应的二进制指令;
步骤1604):所述通用处理器根据所述二进制指令生成对应的训练任务,将所述训练任务发送至云侧人工智能处理器上运行。
如图6所示,为训练任务的流程图。包括:
步骤601):分析待量化数据,确定每种待量化数据的分析结果;其中,所述待量化数据包括所述神经网络的神经元、权值、梯度、偏置中的至少一种数据。
正如前文所述,在训练或微调神经网络的过程中,神经网络每层包括四种数据,分别为神经元、权值、梯度和偏置。在推理过程中,神经网络每层包括三种数据,分别为神经元、权值和偏置。这些数据均以高精度数据格式表示,本说明书以浮点数作为高精度数据为例。需要明确的是,以浮点数为例仅仅是例举的部分情况,而不是穷举,本领域技术人员在理解本技术方案的精髓的情况下,可能会在本申请技术方案的基础上产生其它的变形或者变换,比如:高精度数据可以是表示范围大且表示的最小精度小的高数据位宽的定点数,采用本技术方案均可转为低数据位宽的定点数。但只要其实现的功能以及达到的技术效果与本申请类似,那么均应当属于本申请的保护范围。
在训练或微调神经网络的过程中,待量化数据包括神经网络的神经元、权值、梯度、偏置中的至少一种数据,在推理过程中,待量化数据包括神经网络的神经元、权值、偏置中的至少一种数据。以待量化数据是权值为例,待量化数据可以是神经网络中某一层的所有权值,也可以是神经网络中某一层的部分权值。如果该层是卷积层时,待量化数据也可以是该卷积层中以通道为单位的所有权值或者部分权值,该通道是该卷积层的所有通道或者部分通道。需要强调的是,只有卷积层有通道的概念,在卷积层中,仅有权值分层按照通道的方式进行量化。
下面以待量化数据是神经网络中目标层的神经元和权值这两种数据为例,并详细描述本技术方案。在本步骤中,对目标层中每层的神经元和权值分别进行分析,获得每种待量化数据的最大值、最小值,也可以获得每种待量化数据的绝对值最大值。其中,目标层作为神经网络中需要量化的层,可以是一层,也可以是多层。以一层为单位,每种待量化数据的绝对值最大值可以通过每种待量化数据中的最大值和最小值方式确认。也可以先将每种待量化数据求绝对值,遍历求绝对值后的结果,获得每种待量化数据的绝对值最大值。
在实际应用中,按照每种待量化数据中的最大值和最小值方式获取每种待量化数据的绝对值最大值的原因在于,量化时,常规情况下会将目标层中每层的待量化数据对应的最大值和最小值保存下来,无需消耗更多的资源去对待量化数据求绝对值,直接基于保存的待量化数据对应的最大值和最小值来获取绝对值最大值即可。
步骤602):利用每种待量化数据的分析结果以及数据位宽确定对应量化参数。
在本步骤中,量化参数可以分以下六种情况。第一种情况:量化参数是点位置参数s。这种情况下,可以利用如下的公式(1)对待量化数据进行量化,得到量化数据Ix
其中,s为点位置参数,Ix为数据x量化后的n位二进制表示值,Fx为数据x量化前的浮点值,round为进行四舍五入的取整运算。需要说明的是,此处不仅仅局限于round这一种取整运算,也可以采用其他的取整运算方法,例如:采用向上取整、向下取整、向零取整等取整运算,替换公式(1)中的round取整运算。此时,用n位定点数可以表示浮点数的最大值A为2s(2n-1-1),那么n位定点数可以表示待量化数据的数域中最大值为2s(2n-1-1),n位定点数可以表示待量化数据的数域中最小值为-2s(2n-1-1)。由式(1)可知,采用第一种情况对应的量化参数对待量化数据进行量化时,量化间隔为2s,量化间隔记为C。
设Z为待量化数据的数域中所有浮点数的绝对值最大值,则A需要包含Z,且Z要大于因此有如下公式(2)约束:
2s(2n-1-1)≥Z>2s-1(2n-1-1) (2)
因此,得到/>
根据式(3)对数据x量化后的n位二进制表示值Ix进行反量化,获得反量化数据其中,所述反量化数据/>的数据格式与对应的量化前的数据Fx的数据格式相同,均为浮点值。
第二种情况:量化参数是第一缩放系数f1。这种情况下,可以利用如下的公式(4)对待量化数据进行量化,得到量化数据Ix
其中,f1为第一缩放系数,Ix为数据x量化后的n位二进制表示值,Fx为数据x量化前的浮点值,round为进行四舍五入的取整运算。需要说明的是,此处不仅仅局限于round这一种取整运算,也可以采用其他的取整运算方法,例如:采用向上取整、向下取整、向零取整等取整运算,替换公式(4)中的round取整运算。由式(4)可知,采用第二种情况对应的量化参数对待量化数据进行量化时,量化间隔为f1,量化间隔记为C。
对于第一缩放系数f1来说,有一种情况,即:点位置参数s为固定已知值,不再发生变化,设2s=T,T为固定值,那么,用n位定点数可以表示浮点数的最大值A为(2n-1-1)×T。这种情况下,最大值A取决于数据位宽n。设Z为待量化数据的数域中所有数的绝对值最大值,则此时Z=(2n-1-1)×f1。n位定点数可以表示待量化数据的数域中最大值为(2n-1-1)×f1,n位定点数可以表示待量化数据的数域中最小值为-(2n-1-1)×f1。还有一种情况,在工程应用中,2s×f2作为一个整体当作第一缩放系数f1。此时,就可以当作不存在独立的点位置参数s。其中,f2为第二缩放系数。设Z为待量化数据的数域中所有数的绝对值最大值,则/>此时Z=(2n-1-1)×f1。n位定点数可以表示待量化数据的数域中最大值为(2n-1-1)×f1,n位定点数可以表示待量化数据的数域中最小值为-(2n-1-1)×f1
根据式(5)对数据x量化后的n位二进制表示值Ix进行反量化,获得反量化数据其中,所述反量化数据/>的数据格式与对应的量化前的数据Fx的数据格式相同,均为浮点值。
/>
第三种情况:量化参数是点位置参数s和第二缩放系数f2。这种情况下,可以利用如下的公式(6)对待量化数据进行量化,得到量化数据Ix
其中,s为点位置参数,f2为第二缩放系数,Ix为数据x量化后的n位二进制表示值,Fx为数据x量化前的浮点值,round为进行四舍五入的取整运算。需要说明的是,此处不仅仅局限于round这一种取整运算,也可以采用其他的取整运算方法,例如:采用向上取整、向下取整、向零取整等取整运算,替换公式(6)中的round取整运算。用n位定点数可以表示的待量化数据的数域中的最大值A为2s(2n-1-1)。由式(6)可知,采用第三种情况对应的量化参数对待量化数据进行量化时,量化间隔为2s×f2,量化间隔记为C。
设Z为待量化数据的数域中所有数的绝对值最大值,此时,根据公式(2)可得:
即/>
时,根据公式(2),Z可以无损精确表示。当f2=1时,公式(6)与公式(1),/>n位定点数可以表示待量化数据的数域中最大值为(2n-1-1)×2s×f2,n位定点数可以表示待量化数据的数域中最小值为-(2n-1-1)×2s×f2
根据式(7)对数据x量化后的n位二进制表示值Ix进行反量化,获得反量化数据其中,所述反量化数据/>的数据格式与对应的量化前的数据Fx的数据格式相同,均为浮点值。
步骤603):利用所述量化参数对所述待量化数据进行量化,获得对应的定点型数据。
步骤604):利用所述定点型数据进行训练。
如图7所示,对称的定点数表示示意图。图7所示的待量化数据的数域是以“0”为对称中心分布。Z为待量化数据的数域中所有浮点数的绝对值最大值,在图7中,A为n位定点数可以表示的浮点数的最大值,浮点数A转换为定点数是2n-1-1。为了避免溢出,A需要包含Z。实际中,神经网络运算过程中的浮点数据趋向于某个确定区间的正态分布,但是并不一定满足以“0”为对称中心的分布,这时用定点数表示时,容易出现溢出情况。为了改善这一情况,量化参数中引入偏移量,如图8所示。在图8中,待量化数据的数域不是以“0”为对称中心分布,Zmin是待量化数据的数域中所有浮点数的最小值,Zmax是待量化数据的数域中所有浮点数的最大值。P为Zmin~Zmax之间的中心点,将待量化数据的数域整体偏移,使得平移后的待量化数据的数域以“0”为对称中心分布,平移后的待量化数据的数域中的绝对值最大值为Z。由图可知,偏移量为“0”点到“P”点之间的水平距离,该距离称为偏移量O。其中,
基于上述关于偏移量O的描述,出现第四种量化参数的情况。第四种情况:量化参数包括点位置参数和偏移量。这种情况下,可以利用如下的公式(8)对待量化数据进行量化,得到量化数据Ix
其中,s为点位置参数,O为偏移量,Ix为数据x量化后的n位二进制表示值,Fx为数据x量化前的浮点值,round为进行四舍五入的取整运算。需要说明的是,此处不仅仅局限于round这一种取整运算,也可以采用其他的取整运算方法,例如:采用向上取整、向下取整、向零取整等取整运算,替换公式(8)中的round取整运算。此时,用n位定点数可以表示浮点数的最大值A为2s(2n-1-1),那么n位定点数可以表示待量化数据的数域中最大值为2s(2n-1-1)+O,n位定点数可以表示待量化数据的数域中最小值为-2s(2n-1-1)+O。由式(8)可知,采用第四种情况对应的量化参数对待量化数据进行量化时,量化间隔为2s,量化间隔记为C。
设Z为待量化数据的数域中所有浮点数的绝对值最大值,则A需要包含Z,且Z要大于/>根据公式(2)获得/>进而得到
根据式(9)对数据x量化后的n位二进制表示值Ix进行反量化,获得反量化数据其中,所述反量化数据/>的数据格式与对应的量化前的数据Fx的数据格式相同,均为浮点值。
基于上述关于偏移量O的描述,出现第五种量化参数的情况。第五种情况:量化参数包括第一缩放系数f1和偏移量O。这种情况下,可以利用如下的公式(10)对待量化数据进行量化,得到量化数据Ix
其中,f1为第一缩放系数,O为偏移量,Ix为数据x量化后的n位二进制表示值,Fx为数据x量化前的浮点值,round为进行四舍五入的取整运算。需要说明的是,此处不仅仅局限于round这一种取整运算,也可以采用其他的取整运算方法,例如:采用向上取整、向下取整、向零取整等取整运算,替换公式(10)中的round取整运算。此时,有一种情况,即:点位置参数s为固定已知值,不再发生变化,设2s=T,T为固定值。那么,用n位定点数可以表示浮点数的最大值A为(2n-1-1)×T。这种情况下,最大值A取决于数据位宽n。设Z为待量化数据的数域中所有数的绝对值最大值,则此时Z=(2n-1-1)×f1。n位定点数可以表示待量化数据的数域中最大值为(2n-1-1)×f1,n位定点数可以表示待量化数据的数域中最小值为-(2n-1-1)×f1。还有一种情况,在工程应用中,2s×f2作为一个整体当作第一缩放系数f1。此时,就可以当作不存在独立的点位置参数s。其中,f2为第二缩放系数。设Z为待量化数据的数域中所有数的绝对值最大值,则/>此时Z=(2n-1-1)×f1。n位定点数可以表示待量化数据的数域中最大值为(2n-1-1)×f1+O,n位定点数可以表示待量化数据的数域中最小值为-(2n-1-1)×f1+O。
由式(10)可知,采用第五种情况对应的量化参数对待量化数据进行量化时,量化间隔为f1,量化间隔记为C。
根据式(11)对数据x量化后的n位二进制表示值Ix进行反量化,获得反量化数据其中,所述反量化数据/>的数据格式与对应的量化前的数据Fx的数据格式相同,均为浮点值。
基于上述关于偏移量O的描述,出现第六种量化参数的情况。第六种情况:量化参数包括点位置参数、第二缩放系数f2和偏移量O。这种情况下,可以利用如下的公式(12)对待量化数据进行量化,得到量化数据Ix
其中,s为点位置参数,偏移量O,f2为第二缩放系数,Ix为数据x量化后的n位二进制表示值,Fx为数据x量化前的浮点值,round为进行四舍五入的取整运算。需要说明的是,此处不仅仅局限于round这一种取整运算,也可以采用其他的取整运算方法,例如:采用向上取整、向下取整、向零取整等取整运算,替换公式(12)中的round取整运算。用n位定点数可以表示的待量化数据的数域中的最大值A为2s(2n-1-1)。由式(12)可知,采用第六种情况对应的量化参数对待量化数据进行量化时,量化间隔为2s×f2,量化间隔记为C。
设Z为待量化数据的数域中所有数的绝对值最大值,此时,根据公式(2)可得:
即/>
时,根据公式(2),Z可以无损精确表示。当f2=1时,/>n位定点数可以表示待量化数据的数域中最大值为(2n-1-1)×2s×f2+O,n位定点数可以表示待量化数据的数域中最小值为-(2n-1-1)×2s×f2+O。
根据式(13)对数据x量化后的n位二进制表示值Ix进行反量化,获得反量化数据其中,所述反量化数据/>的数据格式与对应的量化前的数据Fx的数据格式相同,均为浮点值。
上述详细描述了量化参数的确定过程。由公式(1)~公式(13)可知,点位置参数和缩放系数均与数据位宽有关。不同的数据位宽,导致点位置参数和缩放系数不同,从而影响量化精度。量化就是将以往用32bit或者64bit表达的高精度数转换成占用较少内存空间的定点数的过程,高精度数转换为定点数的过程就会在精度上引起一定的损失。在训练或微调过程中,在一定的迭代(iterations)的次数范围内,使用相同的数据位宽量化对神经网络运算的总体精度影响不大。超过一定的迭代次数,再使用同一数据位宽量化就无法满足训练或微调对精度的要求。这就需要随着训练或微调的过程对数据位宽n进行调整。简单地,可以人为设置数据位宽n。在不同的迭代次数范围内,调用提前设置的对应的数据位宽n。但是,前文已经提到,使用低位宽表示的定点数实现训练的过程异常复杂。这种人为提前设置数据位宽的调整方式基本上是不符合实际应用的需求。
在本技术方案中,根据量化误差diffbit对数据位宽n进行调整。进一步详说,量化误差diffbit与阈值进行比较,获取比较结果。其中,阈值包括第一阈值和第二阈值,且第一阈值大于第二阈值,比较结果有三种情况,第一种情况为:量化误差diffbit大于等于所述第一阈值,这种情况下,对所述数据位宽进行增加。第二种情况为:量化误差diffbit小于等于所述第二阈值,这种情况下,对所述数据位宽进行减少。第三种情况为:量化误差diffbit处于所述第一阈值和所述第二阈值之间,这种情况下,所述数据位宽保持不变。在实际应用中,第一阈值和第二阈值可以为经验值,也可以为可变的超参数。常规的超参数的优化方法均适于第一阈值和第二阈值,这里不再赘述超参数的优化方案。
需要强调的是,可以将数据位宽按照固定的位数步长进行调整,也可以根据量化误差与误差阈值之间的差值的不同,按照可变的调整步长调整数据位宽,最终根据神经网络运算过程的实际需要,将数据位宽调整的更长或更短。比如:当前卷积层的数据位宽n为16,根据量化误差diffbit将数据位宽n调整为12。也就是说,在实际应用中,数据位宽n取值为12而不必取值为16即可满足神经网络运算过程中对精度的需求,这样在精度允许范围内可以大大提到定点运算速度,从而提升了人工智能处理器芯片的资源利用率。
对于量化误差diffbit来说,根据量化后的数据与对应的量化前的数据确定量化误差。在实际应用中,有三种量化误差确定方式,均可适用于本技术方案。第一种方式:根据量化间隔、量化后的数据的个数以及对应的量化前的数据按照公式(14)确定量化误差。
/>
其中,C为量化时对应的量化间隔,m为量化后获得的量化数据的个数,Fi为待量化对应的浮点值,其中,i为待量化数据集合中数据的下标。
第二种方式:根据量化后的数据以及对应的反量化数据按照公式(15)确定量化误差diffbit
其中,Fi为待量化对应的浮点值,其中,i为待量化数据集合中数据的下标。为浮点值对应的反量化数据。
第三种方式:根据量化后的数据以及对应的反量化数据按照公式(16)确定量化误差diffbit
其中,Fi为待量化对应的浮点值,其中,i为待量化数据集合中数据的下标。为浮点值对应的反量化数据。
需要强调的是,上述获取量化误差diffbit的方式仅仅是例举的部分情况,而不是穷举,本领域技术人员在理解本申请技术方案的精髓的情况下,可能会在本申请技术方案的基础上产生其它的变形或者变换,凡是支持根据量化后的数据与对应的量化前的数据确定量化误差的变形公式,但只要其实现的功能以及达到的技术效果与本申请类似,那么均应当属于本申请的保护范围。
对于数据位宽来说,如图9a所示,为训练过程中神经网络的权值数据变动幅度曲线图之一。如图9b所示,为训练过程中神经网络的权值数据变动幅度曲线图之二。在图9a和图9b中,横坐标表示是迭代数,纵坐标表示是权值取对数后的最大值。图9a所示的权值数据变动幅度曲线展示神经网络的任一卷积层同一周期(epoch)内在不同迭代对应的权值数据变动情况。在图9b中,conv0层对应权值数据变动幅度曲线A,conv1层对应权值数据变动幅度曲线B,conv2层对应权值数据变动幅度曲线C,conv3层对应权值数据变动幅度曲线D,conv4层对应权值数据变动幅度曲线e。由图9a和图9b可知,同一个周期(epoch)内,在训练初期,每次迭代权值变化幅度比较大。在训练中后期,每次迭代权值的变化幅度不会太大。此种情况下,在训练中后期,因为每次迭代前后权值数据变化幅度不大,使得每代的对应层的权值数据之间在一定的迭代间隔内具有相似性,在神经网络训练过程中每层涉及的数据量化时可以采用上一迭代时对应层量化时使用的数据位宽。但是,在训练初期,由于每次迭代前后权值数据的变化幅度比较大,为了满足量化所需的浮点运算的精度,在训练初期的每一次迭代,利用上一代对应层量化时采用的数据位宽对当前代的对应层的权值数据进行量化,或者基于当前层预设的数据位宽n对当前层的权值数据进行量化,获得量化后的定点数。根据量化后的权值数据和对应的量化前的权值数据,确定量化误差diffbit,根据量化误差diffbit与阈值的比较结果,对上一代对应层量化时采用的数据位宽n或者当前层预设的数据位宽n进行调整,将调整后的数据位宽应用于当前代的对应层的权值数据的量化。进一步地,在训练或微调过程中,神经网络的每层之间的权值数据相互独立,不具备相似性。因权值数据不具备相似性使得每层之间的神经元数据也相互独立,不具备相似性。因此,在神经网络训练或微调过程中,神经网络的每一迭代内的每层的数据位宽应用于对应层。
上述以权值数据为例,在神经网络训练或微调过程中,神经元数据和梯度数据分别对应的数据位宽亦如此,此处不再赘述。
在神经网络推理过程中,神经网络的每层之间的权值数据相互独立,不具备相似性。因权值数据不具备相似性使得每层之间的神经元数据也相互独立,不具备相似性。因此,在神经网络推理过程中,神经网络的每层的数据位宽应用于对应层。在实际应用中,推理过程中每次的输入神经元数据很有可能不相同或者不相似,并且,由于神经网络的每层之间的权值数据相互独立,那么神经网络隐含层中的每层的输入神经元数据就绝对不相似。量化时,上一层的输入神经元数据使用的数据位宽就不适于应用于当前层的输入神经元数据。基于此,为了满足量化所需的浮点运算的精度,在推理时,利用上一层的输入神经元数据量化时采用的数据位宽对当前层的输入神经元数据进行量化,或者基于当前层预设的数据位宽n对当前层的输入神经元数据进行量化,获得量化后的定点数。根据量化前的输入神经元数据和对应的量化后的输入神经元数据,确定量化误差diffbit,根据量化误差diffbit与阈值的比较结果,对上一层的输入神经元数据量化时采用的数据位宽n或者当前层预设的数据位宽n进行调整,将调整后的数据位宽应用于当前层的输入神经元数据的量化。权值数据对应的数据位宽亦如此,此处不再赘述。
对于量化参数来说,不管数据位宽n是否发生变化,由图9a可知,同一个周期(epoch)内,在训练初期,每次迭代权值变化幅度比较大。在训练中后期,由于每一次迭代前后权值数据变化幅度不大,使得每代的对应层的权值数据之间在一定的迭代间隔内具有相似性,这样量化时当前代的每层的数据可以延用上一代的对应层的对应数据的量化参数,在训练的中后期不用代代都重新确认量化参数,仅仅在训练初期的每一代的每层确认量化参数,这样仍然能够满足神经网络运算所需的浮点运算的精度,大大提高了量化时的效率。进一步地,在训练或微调过程中,神经网络的每层之间的权值数据相互独立,不具备相似性。因权值数据不具备相似性使得每层之间的神经元数据也相互独立,不具备相似性。因此,在神经网络训练或微调过程中,神经网络的每一迭代内的每层的量化参数应用于对应层的对应待量化数据。
上述以权值数据为例,在神经网络训练或微调过程中,神经元数据和梯度数据分别对应的量化参数亦如此,此处不再赘述。
在神经网络推理过程中,神经网络的每层之间的权值数据相互独立,不具备相似性。因权值数据不具备相似性使得每层之间的神经元数据也相互独立,不具备相似性。因此,在神经网络推理过程中,神经网络的每层的量化参数应用于对应层的待量化数据。比如:神经网络的当前层为卷积层,根据卷积层的待量化数据按照图10所示的技术方案获得了当前卷积层的待量化数据的量化参数,该量化参数只能应用于当前的卷积层,而不能应用于该神经网络的其他层,即使其它层为卷积层也不适用。
综上所述,数据位宽和量化参数的延用策略基于数据之间的相似性来确定,如果数据之间具有相似性,则数据位宽和量化参数延用,如果数据之间不具有相似性,则需要对数据位宽或量化参数进行调整。数据之间的相似性的度量通常采用KL散度来衡量,也可以采用下式(17)来衡量。
absmax(A)≈absmax(B)且mean(A)≈mean(B) (17)
如果数据A和数据B之间具有相似性,必须满足式(17)。
需要说明的是,关于上述描述的量化误差的确认方法、数据位宽的调整方法、数据位宽和量化参数的延用策略均仅仅是例举的部分情况,而不是穷举,比如:上述的量化误差的确认方法、数据位宽的调整方法、数据位宽和量化参数的延用策略均适用于神经网络的微调过程。还有,关于数据之间的相似性的度量,上述列举了KL散度以及公式(17)对相似性的度量方法,仅仅是例举的部分情况,而不是穷举,比如:直方图匹配法、矩阵分解法、基于特征点的图像相似度计算法、邻近度度量标准法等等。本领域技术人员在理解本申请技术方案的精髓的情况下,可能会在本申请技术方案的基础上产生其它的变形或者变换,但只要其实现的功能以及达到的技术效果与本申请类似,那么均应当属于本申请的保护范围。
综上所述,在训练中后期,因为每次迭代前后权值数据变化幅度不大,使得每代的对应层的权值数据之间在一定的迭代间隔内具有相似性,为了使得本技术方案在训练或微调中具有更好的适普性,满足人工智能处理器芯片的资源达到合理的应用,需要一种策略确定迭代间隔,使得在该迭代间隔范围内,每一代的对应层的数据位宽n保持不变,超过该迭代间隔,数据位宽n就要发生变化,就无需代代确定是否对数据位宽n进行调整。同理,量化参数亦如此,从而达到提升人工智能处理器芯片的峰值算力的同时满足量化所需的浮点运算的精度。
如图10所示,为确定目标迭代间隔的方法流程图之一。在图10所示的技术方案中,目标迭代间隔包括至少一次权值更新迭代,且同一目标迭代间隔内量化过程中采用相同的所述数据位宽。所述目标迭代间隔的确定步骤包括:
步骤1001):在预判时间点,确定权值迭代过程中所述待量化数据对应点位置参数的变化趋势值;其中,所述预判时间点是用于判断是否需要对所述数据位宽进行调整的时间点,所述预判时间点对应权值更新迭代完成时的时间点。
在本步骤中,按照式(18),所述点位置参数的变化趋势值根据当前预判时间点对应的权值迭代过程中的点位置参数的滑动平均值、上一预判时间点对应的权值迭代过程中的点位置参数的滑动平均值确定,或者根据当前预判时间点对应的权值迭代过程中的点位置参数、上一预判时间点对应的权值迭代过程中的点位置参数的滑动平均值确定。式18的表达式为:
diffupdate1=|M(t)-M(t-1)|=α|s(t)-M(t-1)| (18)
式18中,M为点位置参数s随着训练迭代增加的滑动平均值。其中,M(t)为第t个预判时间点对应的点位置参数s随着训练迭代增加的滑动平均值,根据公式(19)获得M(t)。s(t)为第t个预判时间点对应的点位置参数s。M(t-1)为第t-1个预判时间点对应的点位置参数s的滑动平均值,α为超参数。diffupdate1衡量点位置参数s变化趋势,由于点位置参数s的变化也变相体现在当前待量化数据中数据最大值Zmax的变化情况。diffupdate1越大,说明数值范围变化剧烈,需要间隔更短的更新频率,即目标迭代间隔更小。
M(t)←α×s(t-1)+(1-α)×M(t-1) (19)
步骤1002):根据所述点位置参数的变化趋势值确定对应所述目标迭代间隔。
在本技术方案中,根据式(20)确定目标迭代间隔。对于目标迭代间隔来说,同一目标迭代间隔内量化过程中采用相同的所述数据位宽,不同目标迭代间隔内量化过程中采用的数据位宽可以相同,也可以不同。
式(20)中,I为目标迭代间隔。β、γ为超参数。diffupdate1为点位置参数的变化趋势值。
对于本技术方案来说,预判时间点包括第一预判时间点,根据目标迭代间隔确定第一预判时间点。具体地,在训练或微调过程中的第t个预判时间点,利用上一代对应层量化时采用的数据位宽对当前代的对应层的权值数据进行量化,获得量化后的定点数,根据量化前的权值数据和对应的量化前的权值数据,确定量化误差diffbit。将量化误差diffbit分别与第一阈值和第二阈值进行比较,利用比较结果确定是否对上一代对应层量化时采用的数据位宽进行调整。假如:第t个第一预判时间点对应第100代,第99代使用的数据位宽为n1。在第100代,根据数据位宽n1确认量化误差diffbit,将量化误差diffbit与第一阈值、第二阈值进行比较,获得比较结果。如果根据比较结果确认数据位宽n1无需改变,利用式(20)确认目标迭代间隔为8代,当第100代作为当前目标迭代间隔内的起始迭代,那么第100代~第107代作为当前目标迭代间隔,当第100代作为上一目标迭代间隔的最末迭代,那么第101代~第108代作为当前目标迭代间隔。在当前目标迭代间隔内量化时每代仍然延用上一个目标迭代间隔所使用的数据位宽n1。这种情况,不同的目标迭代间隔之间量化时所使用的数据位宽可以相同。如果以第100代~第107代作为当前的目标迭代间隔,那么下一个目标迭代间隔内的第108代作为第t+1个第一预判时间点,如果第101代~第108代作为当前的目标迭代间隔,那么当前的目标迭代间隔内的第108代作为第t+1个第一预判时间点。在第t+1个第一预判时间点,根据数据位宽n1确认量化误差diffbit,将量化误差diffbit与第一阈值、第二阈值进行比较,获得比较结果。根据比较结果确定数据位宽n1需要更改为n2,并利用式(20)确认目标迭代间隔为55代。那么第108代~第163代或者第109代~第163代作为目标迭代间隔,在该目标迭代间隔内量化时每代使用数据位宽n2。这种情况下,不同的目标迭代间隔之间量化时所使用的数据位宽可以不同。
对于本技术方案来说,不管第一预判时间点是目标迭代间隔内的起始迭代还是最末迭代,均适于式(18)来获得点位置参数的变化趋势值。如果当前时刻的第一预判时间点为当前目标迭代间隔的起始迭代,那么在式(18)中,M(t)为当前目标迭代间隔的起始迭代对应时间点所对应的点位置参数s随着训练迭代增加的滑动平均值,s(t)为当前目标迭代间隔的起始迭代对应时间点所对应的点位置参数s,M(t-1)为上一目标迭代间隔的起始迭代对应时间点所对应的点位置参数s随着训练迭代增加的滑动平均值。如果当前时刻的第一预判时间点为当前目标迭代间隔的最末迭代,那么在式(18)中,M(t)为当前目标迭代间隔的最末迭代对应时间点所对应的点位置参数s随着训练迭代增加的滑动平均值,s(t)为当前目标迭代间隔的最末迭代对应时间点所对应的点位置参数s,M(t-1)为上一目标迭代间隔的最末迭代对应时间点所对应的点位置参数s随着训练迭代增加的滑动平均值。
对于本技术方案来说,在包括第一预判时间点的基础上,预判时间点还可以包括第二预判时间点。第二预判时间点是根据数据变动幅度曲线确定的。基于大数据在神经网络训练过程中数据变动幅度情况,获得如图9a所示的所述数据变动幅度曲线。
以权值数据为例,由图9a所示的数据变动幅度曲线可知,从训练开始到第T代的迭代间隔周期内,每次权值更新时,数据变动幅度非常大。在当前预判时间点,量化时,当前代先利用上一代的数据位宽n1进行量化,获得的量化结果与对应的量化前的数据确定对应的量化误差,量化误差分别与第一阈值、第二阈值进行比较,根据比较结果对数据位宽n1进行调整,获得数据位宽n2。利用数据位宽n2对当前代涉及的待量化权值数据进行量化。然后根据式(20)确定目标迭代间隔,从而确定第一预判时间点,在第一预判时间点再判断是否调整数据位宽以及如何调整,并根据公式(20)确定下一目标迭代间隔来获得下一个第一预判时间点。由于训练开始到第T代的迭代间隔周期内,每一次迭代前后权值数据变化幅度非常大,使得每代的对应层的权值数据之间不具有相似性,为了满足精度问题,量化时当前代的每层的数据不能延用上一代的对应层的对应量化参数,在前T代可以代代调整数据位宽,此时,量化时前T代中每代使用的数据位宽均不同,目标迭代间隔为1代。为了人工智能处理器芯片的资源达到最优化利用,前T代的目标迭代间隔可以根据图9a所示的数据变动幅度曲线图所揭示的规律提前预设好,即:根据数据变动幅度曲线前T代的目标迭代间隔直接预设,无需经过公式(20)确认前T代的每代对应的权值更新迭代完成时的时间点作为第二预判时间点。从而使得人工智能处理器芯片的资源更为合理的利用。图9a所示的数据变动幅度曲线从第T代开始变动幅度不大,在训练的中后期不用代代都重新确认量化参数,在第T代或者第T+1代,利用当前代对应量化前的数据以及量化后的数据确定量化误差,根据量化误差确定对数据位宽是否需要调整以及如何调整,还要根据公式(20)确定目标迭代间隔。如果确认的目标迭代间隔为55代,这就要求从第T代或第T+1之后隔55代对应的时间点作为第一预判时间点再判断是否调整数据位宽以及如何调整,并根据公式(20)确定下一目标迭代间隔,从而确定下一个第一预判时间点,直至同一周期(epoch)内所有代运算完成。在此基础上,在每个周期(epoch)之后,再对数据位宽或量化参数做适应性调整,最终使用量化后的数据获得精度符合预期的神经网络。
特别地,假如:根据图9a所示的权值数据变动幅度曲线图确定T取值为130(这个数值与图9a不对应,为方便描述,仅仅是假设T取值为130,不限于在假设值。),那么训练过程中的第130代作为第二预判时间点,当前的第一预判时间点为训练过程中的第100代,在第100代,经公式(20)确定目标迭代间隔为35代。在该目标迭代间隔内,训练至第130代,到达第二预判时间点,此时就要在第130代对应的时间点确定对数据位宽是否需要调整以及如何调整,还要根据公式(20)确定目标迭代间隔。假如该情况下确定的目标迭代间隔为42代。就要从第130代起至第172代作为目标迭代间隔,目标迭代间隔为35代时确定的第一预判时间点对应的第135代处于目标迭代间隔为42代内,在第135代,可以再根据公式(20)判断是否需要调整数据位宽以及如何调整。也可以不在第135代做评估预判,直接到第172代再执行是否需要调整数据位宽的评估以及如何调整。总之,是否在第135代进行评估和预判均适于本技术方案。
综上,根据数据变动幅度曲线提前预设第二预判时间点,在训练或微调的初期,无需花费人工智能处理器芯片的资源来确定目的迭代间隔,在预设好的第二预判时间点上直接根据量化误差来调整数据位宽,并利用调整好的数据位宽来量化当前代涉及的待量化数据。在训练或微调的中后期,根据公式(20)获得目标迭代间隔,从而确定对应的第一预判时间点,在每个第一预判时间点上确定是否调整数据位宽以及如何调整。这样在能够满足神经网络运算所需的浮点运算的精度的同时合理利用人工智能处理器芯片的资源,大大提高了量化时的效率。
在实际中,为了获得更准确的数据位宽的目标迭代间隔,不仅仅根据点位置参数的变化趋势值diffupdate1,可以同时考虑点位置参数的变化趋势值diffupdate1和数据位宽的变化趋势值diffupdate2。如图11所示,为确定目标迭代间隔的方法流程图之二。所述目标迭代间隔的确定步骤包括:
步骤1101):在预判时间点,确定权值迭代过程中所述待量化数据对应点位置参数的变化趋势值、数据位宽的变化趋势值;其中,所述预判时间点是用于判断是否需要对所述数据位宽进行调整的时间点,所述预判时间点对应权值更新迭代完成时的时间点。
需要强调的是,图10所示的关于基于点位置参数的变化趋势值确定数据位宽的目标迭代间隔的技术方案内容适用于图11所示的技术方案,这里不再赘述。
在本步骤中,根据式(21)来利用对应所述量化误差确定所述数据位宽的变化趋势值。
式(21)中,δ为超参数,diffbit为量化误差;diffupdate2为数据位宽的变化趋势值。diffupdate2衡量量化时采用的数据位宽n的变化趋势,diffupdate2越大越有可能需要更新定点的位宽,需要间隔更短的更新频率。
对于图11中涉及的点位置参数的变化趋势值仍然可根据式(18)获得,对于式(18)中的M(t)根据公式(19)获得。diffupdate1衡量点位置参数s变化趋势,由于点位置参数s的变化也变相体现在当前待量化数据中数据最大值Zmax的变化情况。diffupdate1越大,说明数值范围变化剧烈,需要间隔更短的更新频率,即目标迭代间隔更小。
步骤1102):根据所述点位置参数的变化趋势值和所述数据位宽的变化趋势值确定对应所述目标迭代间隔。
在本技术方案中,根据式(22)确定目标迭代间隔。对于目标迭代间隔来说,同一目标迭代间隔内量化过程中采用相同的所述数据位宽,不同目标迭代间隔内量化过程中采用的数据位宽可以相同,也可以不同。
式(22)中,I为目标迭代间隔。β、γ为超参数。diffupdate1为点位置参数的变化趋势值。diffupdate2为数据位宽的变化趋势值。
对于本技术方案来说,diffupdate1是用来衡量点位置参数s的变化情况,但是由数据位宽n的变化而导致的点位置参数s的变化是要忽略掉的。因为这已经在diffupdate2中体现过了数据位宽n的变化。如果在diffupdate1中不做这个忽略的操作,那么根据式(22)确定的目标迭代间隔I是不准确的,造成第一预判时间点过多,在训练或微调过程中,易频繁的做数据位宽n是否更新以及如何更新的操作,从而造成人工智能处理器芯片的资源没有合理利用。
基于上述描述,diffupdate1根据M(t)确定。假设第t-1个预判时间点对应的数据位宽为n1,对应的点位置参数为s1,点位置参数随着训练迭代增加的滑动平均值为m1。利用数据位宽n1对待量化数据进行量化,获得量化后的定点数。根据量化前的数据和对应的量化后的数据,确定量化误差diffbit,根据量化误差diffbit与阈值的比较结果,将数据位宽n1调整为n2,数据位宽调整了|n1-n2|位,第t个预判时间点量化时使用的数据位宽为n2。为了忽略由数据位宽的变化而导致的点位置参数的变化,在确定M(t)时可以选出下述两种优化方式中的其中一种即可。第一种方式:如果数据位宽增加了|n1-n2|位,则s(t-1)取值为s1-|n1-n2|,M(t-1)取值为m1-|n1-n2|,将s(t-1)、M(t-1)代入公式(19)中,获得M(t),即为第t个预判时间点对应的点位置参数随着训练迭代增加的滑动平均值。如果数据位宽减少了|n1-n2|位,则s(t -1)取值为s1+|n1-n2|,M(t-1)取值为m1+|n1-n2|,将s(t-1)、M(t-1)代入公式(19)中,获得M(t),即为第t个预判时间点对应的点位置参数随着训练迭代增加的滑动平均值。第二种方式:不管数据位宽是增加了|n1-n2|位还是减少了|n1-n2|,s(t-1)取值为s1,M(t-1)取值为m1,将s(t-1)、M(t-1)代入公式(19)中,获得M(t)。在数据位宽增加|n1-n2|位时,将M(t)减去|n1-n2|,在数据位宽减少|n1-n2|位时,将M(t)加上|n1-n2|,结果作为第t个预判时间点对应的点位置参数随着训练迭代增加的滑动平均值。这两种方式是等价的,均可以忽略由数据位宽的变化而导致的点位置参数的变化,获得更为精准的目标迭代间隔,从而提高人工智能处理器芯片的资源利用率。
在实际应用中,数据位宽n和点位置参数s对量化影响很大,量化参数中的第二缩放系数f2以及偏移量O对量化影响不大。对于第一缩放系数f1来说,上文已经提及,如果属于第二种情况,将2s×f2作为一个整体当作第一缩放系数f1,那么此种情况下的第一缩放系数f1对量化影响很大。所以,在本技术方案中,更改数据位宽n和点位置参数s对量化影响很大。不管数据位宽n是否发生变化、点位置参数s可变的情况下,确定点位置参数s的目标迭代间隔也是一件非常有意义的事情,图10所示的技术方案的思想可应用于确定点位置参数s的目标迭代间隔。如图12所示,为确定目标迭代间隔的方法流程图之三。包括:
步骤1201):在预判时间点,确定权值迭代过程中涉及的待量化数据对应点位置参数的变化趋势值;其中,所述预判时间点是用于判断是否需要对所述量化参数进行调整的时间点,所述预判时间点对应权值更新迭代完成时的时间点。
步骤1202):根据所述点位置参数的变化趋势值确定对应所述目标迭代间隔。
需要强调的是,图10所示的关于基于点位置参数的变化趋势值确定量化参数的目标迭代间隔的技术方案内容适用于图12所示的技术方案,这里不再赘述。对于图12所示的技术方案来说,量化参数优选为点位置参数。
需要说明的是,关于上述确定数据位宽的目标迭代间隔和量化参数的目标迭代间隔均仅仅是例举的部分情况,而不是穷举,本领域技术人员在理解本申请技术方案的精髓的情况下,可能会在本申请技术方案的基础上产生其它的变形或者变换,比如:在确定数据位宽的目标迭代间隔内再确定量化参数的目标迭代间隔也适用于图10、图11和图12所示的技术方案。但只要其实现的功能以及达到的技术效果与本申请类似,那么均应当属于本申请的保护范围。
利用本技术方案确定量化参数,根据量化误差对数据位宽或量化参数进行调整,并确定了对数据位宽或量化参数是否调整的目标迭代间隔,达到神经网络运算过程中在适合的时间点对数据位宽或量化参数进行调整,使得在合适的迭代时间点使用合适的量化参数,实现人工智能处理器芯片执行神经网络运算达到定点运算的速度,提升了人工智能处理器芯片的峰值算力的同时满足运算所需的浮点运算的精度。
需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本披露并不受所描述的动作顺序的限制,因为依据本披露,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于可选实施例,所涉及的动作和模块并不一定是本披露所必须的。
进一步需要说明的是,虽然图5、图10、图11、图12的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,图5、图10、图11、图12中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些子步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。
如图13所示,为本申请提出的一种数据处理装置的硬件配置的框图。在图13中,数据处理装置10可以包括处理器110和存储器120。在图13的数据处理装置10中,仅示出了与本实施例有关的组成元素。因此,对于本领域普通技术人员而言显而易见的是:数据处理装置10还可以包括与图14中所示的组成元素不同的常见组成元素。比如:定点运算器。
数据处理装置10可以对应于具有各种处理功能的计算设备,例如,用于生成神经网络、训练或学习神经网络、将浮点型神经网络量化为定点型神经网络、或者重新训练神经网络的功能。例如,数据处理装置10可以被实现为各种类型的设备,例如个人计算机(PC)、服务器设备、移动设备等。
处理器110控制数据处理装置10的所有功能。例如,处理器110通过执行数据处理装置10上的存储器120中存储的程序,来控制数据处理装置10的所有功能。处理器110可以由数据处理装置10中提供的中央处理单元(CPU)、图形处理单元(GPU)、应用处理器(AP)、人工智能处理器芯片(IPU)等来实现。然而,本公开并不限于此。
存储器120是用于存储数据处理装置10中处理的各种数据的硬件。例如,存储器120可以存储数据处理装置10中的处理过的数据和待处理的数据。存储器120可存储处理器110已处理或要处理的神经网络运算过程中涉及的数据集,例如,未训练的初始神经网络的数据、在训练过程中生成的神经网络的中间数据、完成了所有训练的神经网络的数据、经量化的神经网络的数据等。此外,存储器120可以存储要由数据处理装置10驱动的应用、驱动程序等。例如:存储器120可以存储与将由处理器110执行的神经网络的训练算法、量化算法等有关的各种程序。存储器120可以是DRAM,但是本公开不限于此。存储器120可以包括易失性存储器或非易失性存储器中的至少一种。非易失性存储器可以包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)、闪存、相变RAM(PRAM)、磁性RAM(MRAM)、电阻RAM(RRAM)、铁电RAM(FRAM)等。易失性存储器可以包括动态RAM(DRAM)、静态RAM(SRAM)、同步DRAM(SDRAM)、PRAM、MRAM、RRAM、铁电RAM(FeRAM)等。在实施例中,存储器120可以包括硬盘驱动器(HDD)、固态驱动器(SSD)、高密度闪存(CF)、安全数字(SD)卡、微安全数字(Micro-SD)卡、迷你安全数字(Mini-SD)卡、极限数字(xD)卡、高速缓存(caches)或记忆棒中的至少一项。
处理器110可以通过反复训练(学习)给定的初始神经网络来生成经训练的神经网络。在这种状态下,在保证神经网络的处理准确度的意义上,初始神经网络的参数为高精度数据表示格式,例如具有32比特浮点精度的数据表示格式。参数可以包括向/从神经网络输入/输出的各种类型的数据,例如:神经网络的输入/输出神经元、权值、偏置等。与定点运算相比,浮点运算过程中需要相对大量的运算和相对频繁的存储器访问。具体而言,神经网络处理所需的大部分运算已知为各种卷积运算。因此,在具有相对低的处理性能的移动设备(诸如智能电话、平板电脑、可穿戴设备等、嵌入式设备等)中,神经网络高精度数据运算会使得移动设备的资源没有充分利用。结果是,为了在允许的精度损失范围内驱动神经网络运算,充分减少上述设备中的运算量,可以对在神经网络运算过程中涉及的高精度数据进行量化,转换为低精度的定点数。
考虑到部署神经网络的例如移动设备、嵌入式设备等设备的处理性能,数据处理装置10执行将经训练的神经网络的参数转换为具有特定比特数的定点型的量化,并且数据处理装置10向部署神经网络的设备发送对应的量化参数,使得在人工智能处理器芯片执行训练、微调等运算操作时为定点数运算操作。部署神经网络的设备可以是通过使用神经网络来执行语音识别、图像识别等的自主车辆、机器人、智能电话、平板设备、增强现实(AR)设备、物联网(IoT)设备等,但是本公开不限于此。
处理器110从存储器120中获取神经网络运算过程中的数据。该数据包括神经元、权值、偏置和梯度中的至少一种数据,利用图6所示的技术方案确定对应的量化参数,利用量化参数对神经网络运算过程中的目标数据进行量化。将量化后的数据执行神经网络运算操作。该运算操作包括但不限于训练、微调、推理。
处理器110根据量化误差diffbit对数据位宽n进行调整,且处理器110可以执行图10、图11和图12所示的目标迭代间隔的方法的程序去确定数据位宽的目标迭代间隔或量化参数的目标迭代间隔。
综上,本说明书实施方式提供的一种数据处理装置,其存储器120和处理器110实现的具体功能,可以与本说明书中的前述实施方式相对照解释,并能够达到前述实施方式的技术效果,这里便不再赘述。
在本实施方式中,所述处理器110可以按任何适当的方式实现。例如,所述处理器110可以采取例如微处理器或处理器以及存储可由该(微)处理器执行的计算机可读程序代码(例如软件或固件)的计算机可读介质、逻辑门、开关、专用集成电路(ApplicationSpecific Integrated Circuit,ASIC)、可编程逻辑控制器和嵌入微控制器的形式等等。
如图14所示,为本申请提出的数据处理装置应用于人工智能处理器芯片的应用示意图。参考图14,如上所述,在诸如PC、服务器等数据处理装置10中,处理器110执行量化操作,将神经网络运算过程中涉及的浮点数据量化为定点数,人工智能处理器芯片上的定点运算器采用量化获得的定点数执行训练、微调或推理。人工智能处理器芯片是用于驱动神经网络的专用硬件。由于人工智能处理器芯片是以相对较低的功率或性能实现的,利用本技术方案采用低精度的定点数实现神经网络运算,与高精度数据相比,读取低精度的定点数时所需内存带宽更小,可以更好的使用人工智能处理器芯片的caches,避免访存瓶颈。同时,在人工智能处理器芯片上执行SIMD指令时,在一个时钟周期内实现更多计算,达到更快地执行神经网络运算操作。
进一步地,面对同样长度的定点运算和高精度数据运算,尤其是定点运算和浮点运算之间比对可知,浮点运算计算模式更为复杂,需要更多的逻辑器件来构成浮点运算器。这样从体积上来说,浮点运算器的体积比定点运算器的体积要大。并且,浮点运算器需要消耗更多的资源去处理,达到定点运算和浮点运算二者之间的功耗差距通常是数量级的。
综上所述,本技术方案能够让人工智能处理器芯片上的浮点运算器更换为定点运算器,使得人工智能处理器芯片的功耗更低。这一点对于移动设备尤其重要。也就是说,本技术方案打开了一扇通向大量不能高效运行浮点计算代码的嵌入式系统的大门,让物联网世界广泛应用成为可能。
在本技术方案中,人工智能处理器芯片可以对应于例如神经处理单元(NPU)、张量处理单元(TPU)、神经引擎等,它们是用于驱动神经网络的专用芯片,但是本公开不限于此。
在本技术方案中,人工智能处理器芯片可以在独立于数据处理装置10的单独设备中实现,数据处理装置10也可以作为人工智能处理器芯片的一部分功能模块来实现。但是本公开不限于此。
在本技术方案中,通用处理器(比如CPU)的操作系统基于本技术方案生成指令,将生成的指令发送至人工智能处理器芯片(比如GPU)上,由人工智能处理器芯片去执行指令操作实现神经网络的训练过程。还有一种应用情况,通用处理器基于本技术方案直接确定对应的量化参数,通用处理器直接根据量化参数将对应的目标数据进行量化,人工智能处理器芯片利用量化后的数据执行定点训练操作。更甚者,通用处理器(比如CPU)和人工智能处理器芯片(比如GPU)流水化操作,通用处理器(比如CPU)的操作系统基于本技术方案生成指令,且对目标数据进行拷贝的同时人工智能处理器芯片(比如GPU)进行神经网络训练操作,这样可以把某些时间消耗隐藏起来。但是本公开不限于此。
在本实施例中,本申请实施例还提供一种可读存储介质,其上存储有计算机程序,所述计算机程序被执行时实现上述所述的数据处理方法。
由上可见,在神经网络训练过程中,量化时利用本公开的技术方案确定量化参数,该量化参数用于人工智能处理器对神经网络训练过程中的数据进行量化,将高精度数据转换为低精度定点数,可以减少神经网络运算过程中涉及的数据存储所有的空间大小。例如:float32转化为fix8可以将模型参数减少4倍。由于数据存储空间变小,使得神经网络部署时使用更小的空间,使得人工智能处理器芯片上的片上内存可以容纳更多的数据,减少了人工智能处理器芯片访存数据,提高计算性能。
本领域技术人员也知道,除了以纯计算机可读程序代码方式实现客户端和服务器以外,完全可以通过将方法步骤进行逻辑编程来使得客户端和服务器以逻辑门、开关、专用集成电路、可编程逻辑控制器和嵌入微控制器等的形式来实现相同功能。因此这种客户端和服务器可以被认为是一种硬件部件,而对其内包括的用于实现各种功能的装置也可以视为硬件部件内的结构。或者甚至,可以将用于实现各种功能的装置视为既可以是实现方法的软件模块又可以是硬件部件内的结构。
本申请提出的一种数据处理装置。其中,所述装置包括:存储器、通用处理器以及云侧人工智能处理器;所述存储器上存储有可在所述通用处理器和/或所述云侧人工智能处理器上运行如图2所述方法的计算机程序。
应该理解,上述的装置实施例仅是示意性的,本披露的装置还可通过其它的方式实现。例如,上述实施例中所述单元/模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。例如,多个单元、模块或组件可以结合,或者可以集成到另一个系统,或一些特征可以忽略或不执行。
所述作为分离部件说明的单元或模块可以是物理上分开的,也可以不是物理上分开的。作为单元或模块说明的部件可以是物理单元,也可以不是物理单元,即可以位于一个装置中,或者也可以分布到多个装置上。本披露中实施例的方案可以根据实际的需要选择其中的部分或者全部单元来实现。
另外,若无特别说明,在本披露各个实施例中的各功能单元/模块可以集成在一个单元/模块中,也可以是各个单元/模块单独物理存在,也可以两个或两个以上单元/模块集成在一起。上述集成的单元/模块既可以采用硬件的形式实现,也可以采用软件程序模块的形式实现。
所述集成的单元/模块如果以硬件的形式实现时,该硬件可以是数字电路,模拟电路等等。硬件结构的物理实现包括但不局限于晶体管,忆阻器等等。若无特别说明,所述人工智能处理器可以是任何适当的硬件处理器,比如:CPU、GPU、FPGA、DSP和ASIC等等。若无特别说明,所述存储单元可以是任何适当的磁存储介质或者磁光存储介质,比如:阻变式存储器RRAM(Resistive Random Access Memory)、动态随机存取存储器DRAM(Dynamic RandomAccess Memory)、静态随机存取存储器SRAM(Static Random-Access Memory)、增强动态随机存取存储器EDRAM(Enhanced Dynamic Random Access Memory)、高带宽内存HBM(High-Bandwidth Memory)、混合存储立方HMC(Hybrid Memory Cube)等等。
所述集成的单元/模块如果以软件程序模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储器中。基于这样的理解,本披露的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储器中,包括若干指令用以使得一台计算机设备(可为个人计算机、服务器或者网络设备等)执行本披露各个实施例所述方法的全部或部分步骤。而前述的存储器包括:U盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
在本技术方案中,本披露还公开了一种人工智能芯片,其包括了上述数据处理装置。
在本技术方案中,本披露还公开了一种板卡,其包括存储器件、接口装置和控制器件以及上述人工智能芯片;其中,所述人工智能芯片与所述存储器件、所述控制器件以及所述接口装置分别连接;所述存储器件,用于存储数据;所述接口装置,用于实现所述人工智能芯片与外部设备之间的数据传输;所述控制器件,用于对所述人工智能芯片的状态进行监控。
图15示出根据本披露实施例的板卡的结构框图,参阅图15,上述板卡除了包括上述芯片389以外,还可以包括其他的配套部件,该配套部件包括但不限于:存储器件390、接口装置391和控制器件392;
所述存储器件390与所述人工智能芯片通过总线连接,用于存储数据。所述存储器件可以包括多组存储单元393。每一组所述存储单元与所述人工智能芯片通过总线连接。可以理解,每一组所述存储单元可以是DDR SDRAM(英文:Double Data Rate SDRAM,双倍速率同步动态随机存储器)。
DDR不需要提高时钟频率就能加倍提高SDRAM的速度。DDR允许在时钟脉冲的上升沿和下降沿读出数据。DDR的速度是标准SDRAM的两倍。在一个实施例中,所述存储装置可以包括4组所述存储单元。每一组所述存储单元可以包括多个DDR4颗粒(芯片)。在一个实施例中,所述人工智能芯片内部可以包括4个72位DDR4控制器,上述72位DDR4控制器中64bit用于传输数据,8bit用于ECC校验。可以理解,当每一组所述存储单元中采用DDR4-3200颗粒时,数据传输的理论带宽可达到25600MB/s。
在一个实施例中,每一组所述存储单元包括多个并联设置的双倍速率同步动态随机存储器。DDR在一个时钟周期内可以传输两次数据。在所述芯片中设置控制DDR的控制器,用于对每个所述存储单元的数据传输与数据存储的控制。
所述接口装置与所述人工智能芯片电连接。所述接口装置用于实现所述人工智能芯片与外部设备(例如服务器或计算机)之间的数据传输。例如在一个实施例中,所述接口装置可以为标准PCIE接口。比如,待处理的数据由服务器通过标准PCIE接口传递至所述芯片,实现数据转移。优选的,当采用PCIE 3.0X 16接口传输时,理论带宽可达到16000MB/s。在另一个实施例中,所述接口装置还可以是其他的接口,本披露并不限制上述其他的接口的具体表现形式,所述接口单元能够实现转接功能即可。另外,所述人工智能芯片的计算结果仍由所述接口装置传送回外部设备(例如服务器)。
所述控制器件与所述人工智能芯片电连接。所述控制器件用于对所述人工智能芯片的状态进行监控。具体的,所述人工智能芯片与所述控制器件可以通过SPI接口电连接。所述控制器件可以包括单片机(Micro Controller Unit,MCU)。如所述人工智能芯片可以包括多个处理芯片、多个处理核或多个处理电路,可以带动多个负载。因此,所述人工智能芯片可以处于多负载和轻负载等不同的工作状态。通过所述控制装置可以实现对所述人工智能芯片中多个处理芯片、多个处理和或多个处理电路的工作状态的调控。
在一种可能的实现方式中,公开了一种电子设备,其包括了上述人工智能芯片。电子设备包括数据处理装置、机器人、电脑、打印机、扫描仪、平板电脑、智能终端、手机、行车记录仪、导航仪、传感器、摄像头、服务器、云端服务器、相机、摄像机、投影仪、手表、耳机、移动存储、可穿戴设备、交通工具、家用电器、和/或医疗设备。
所述交通工具包括飞机、轮船和/或车辆;所述家用电器包括电视、空调、微波炉、冰箱、电饭煲、加湿器、洗衣机、电灯、燃气灶、油烟机;所述医疗设备包括核磁共振仪、B超仪和/或心电图仪。
以上已经描述了本披露的各实施例,上述说明是示例性的,并非穷尽性的,并且也不限于所披露的各实施例。在不偏离所说明的各实施例的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。本文中所用术语的选择,旨在最好地解释各实施例的原理、实际应用或对市场中的技术的改进,或者使本技术领域的其它普通技术人员能理解本文披露的各实施例。

Claims (26)

1.一种数据处理方法,其特征在于,包括:
所述通用处理器获取端侧人工智能处理器的硬件架构信息,根据所述端侧人工智能处理器的硬件架构信息生成对应的二进制指令;
所述通用处理器根据所述二进制指令生成对应的训练任务,将所述训练任务发送至云侧人工智能处理器上运行;
所述云侧人工智能处理器接收所述训练任务,执行所述训练任务,获得训练结果;
所述通用处理器接收所述训练任务对应的训练结果,根据所述训练结果确定对应的超参数;其中,所述超参数是用于确定在训练过程中目标迭代间隔;所述目标迭代间隔包括至少一次权值更新迭代,且同一目标迭代间隔内量化过程中采用相同的数据位宽;
所述通用处理器根据同一端侧人工智能处理器的硬件架构信息的不同训练结果对应的超参数确定超参数映射表;其中,所述超参数映射表是不同的神经网络模型与超参数之间的对应关系。
2.如权利要求1所述的方法,其特征在于,所述训练任务包括:
统计待量化数据,确定每种待量化数据的统计结果;其中,所述待量化数据包括所述神经网络的神经元、权值、梯度、偏置中的至少一种数据;
利用每种待量化数据的统计结果以及数据位宽确定对应量化参数;
利用所述量化参数对所述待量化数据进行量化,获得对应的定点型数据;
利用所述定点型数据进行训练。
3.如权利要求2所述的方法,其特征在于,所述统计结果为每种待量化数据中的最大值和最小值;
或所述统计结果为每种待量化数据中的绝对值最大值;
或所述绝对值最大值根据每种待量化数据中的最大值和最小值确定。
4.如权利要求2所述的方法,其特征在于,所述量化参数根据每种待量化数据中的最大值、最小值以及所述数据位宽确定;
或所述量化参数根据每种待量化数据中的绝对值最大值、所述数据位宽确定;
或所述量化参数为点位置参数或第一缩放系数;
或所述量化参数包括点位置参数和第二缩放系数。
5.如权利要求4所述的方法,其特征在于,所述第一缩放系数根据点位置参数和第二缩放系数确定;其中,确定第一缩放系数时使用的点位置参数为已知固定值,或所述点位置参数和对应的所述第二缩放系数相乘的结果整体作为第一缩放系数应用于神经网络运算过程中的数据量化。
6.如权利要求4所述的方法,其特征在于,所述第二缩放系数根据所述点位置参数、所述统计结果、所述数据位宽确定。
7.如权利要求4~5任一项权利要求所述的方法,其特征在于,所述量化参数还包括偏移量;其中,所述偏移量根据每种待量化数据的统计结果确定。
8.如权利要求2所述的方法,其特征在于,所述数据位宽是预设值;或所述数据位宽根据对应的量化误差进行调整;其中,所述量化误差是根据量化后的数据与对应的量化前的数据确定。
9.如权利要求8所述的方法,其特征在于,所述数据位宽的调整步骤包括:
所述量化误差与阈值进行比较,根据比较结果,调整所述数据位宽;其中,所述阈值包括第一阈值和第二阈值中的至少一个。
10.如权利要求9所述的方法,其特征在于,调整所述数据位宽的步骤包括:
所述量化误差大于等于所述第一阈值,则对所述数据位宽进行增加;或
所述量化误差小于等于所述第二阈值,则对所述数据位宽进行减少;或
所述量化误差处于所述第一阈值和所述第二阈值之间,则所述数据位宽保持不变。
11.如权利要求8所述的方法,其特征在于,所述量化误差的获取方法包括:
根据所述数据位宽确定量化间隔;
根据所述量化间隔、所述量化后的数据的个数与对应的量化前的数据确定量化误差;或
对量化后的数据进行反量化,获得反量化数据;其中,所述反量化数据的数据格式与对应的量化前的数据的数据格式相同;
根据所述量化后的数据以及对应的反量化数据确定量化误差。
12.如权利要求8所述的方法,其特征在于,所述量化前的数据是所述待量化数据;或所述量化前的数据是在目标迭代间隔内的权值更新迭代过程中涉及的待量化数据;其中,所述目标迭代间隔包括至少一次权值更新迭代,且同一目标迭代间隔内量化过程中采用相同的所述数据位宽。
13.如权利要求12所述的方法,其特征在于,所述目标迭代间隔的确定步骤包括:
在预判时间点,确定权值更新迭代过程中涉及的待量化数据的点位置参数的变化趋势值;其中,所述预判时间点是用于判断是否需要对所述数据位宽进行调整的时间点,所述预判时间点对应权值更新迭代完成时的时间点;
根据所述点位置参数的变化趋势值确定对应所述目标迭代间隔;
在预判时间点,确定权值更新迭代过程中涉及的待量化数据的点位置参数的变化趋势值、数据位宽的变化趋势值;其中,所述预判时间点是用于判断是否需要对所述数据位宽进行调整的时间点,所述预判时间点对应权值更新迭代完成时的时间点;
根据所述点位置参数的变化趋势值和所述数据位宽的变化趋势值确定对应所述目标迭代间隔。
14.如权利要求13所述的方法,其特征在于,所述预判时间点包括第一预判时间点;其中,所述第一预判时间点是根据所述目标迭代间隔确定的。
15.如权利要求14所述的方法,其特征在于,所述预判时间点还包括第二预判时间点;其中,所述第二预判时间点是根据数据变动幅度曲线确定的;所述数据变动幅度曲线是对权值更新迭代过程中数据变动幅度情况进行统计获得的。
16.如权利要求10~12任一项权利要求所述的方法,其特征在于,所述点位置参数的变化趋势值根据当前预判时间点对应的点位置参数的滑动平均值、上一预判时间点对应的点位置参数的滑动平均值确定;或所述点位置参数的变化趋势值根据当前预判时间点对应的点位置参数、上一预判时间点对应的点位置参数的滑动平均值确定。
17.如权利要求16所述的方法,其特征在于,所述当前预判时间点对应的点位置参数的滑动平均值的确定步骤包括:
根据上一预判时间点对应的点位置参数与所述数据位宽的调整值确定所述当前预判时间点对应的点位置参数;
根据所述数据位宽的调整值对所述上一预判时间点对应的点位置参数的滑动平均值进行调整,获得调整结果;
根据所述当前预判时间点对应的点位置参数、所述调整结果确定当前预判时间点对应的点位置参数的滑动平均值;
根据上一预判时间点对应的点位置参数与上一预判时间点对应的点位置参数的滑动平均值确定当前预判时间点对应的点位置参数的滑动平均值的中间结果;
根据当前预判时间点对应的点位置参数的滑动平均值的中间结果与所述数据位宽的调整值确定所述当前预判时间点对应的点位置参数的滑动平均值。
18.如权利要求13所述的方法,其特征在于,所述数据位宽的变化趋势值根据对应所述量化误差确定。
19.如权利要求1所述的方法,其特征在于,所述目标迭代间隔内量化过程中采用的数据位宽的确定步骤包括:
确定对应量化误差;其中,所述量化误差对应的量化前的数据是预判时间点对应的权值更新迭代过程中涉及的待量化数据;
根据对应量化误差,确定所述目标迭代间隔内量化过程中采用的数据位宽。
20.如权利要求19所述的方法,其特征在于,确定所述目标迭代间隔内量化过程中采用的数据位宽的步骤包括:
所述量化误差与阈值进行比较,根据比较结果,对上一目标迭代间隔内量化过程中采用的数据位宽进行调整,调整结果作为当前目标迭代间隔内量化过程中采用的数据位宽。
21.如权利要求8所述的方法,其特征在于,所述量化前的数据是在目标迭代间隔内的权值更新迭代时涉及的待量化数据;其中,所述目标迭代间隔包括至少一次权值更新迭代,且同一目标迭代间隔内量化过程中采用相同的所述量化参数。
22.如权利要求21所述的方法,其特征在于,所述目标迭代间隔的确定步骤包括:
在预判时间点,确定权值更新迭代过程中涉及的待量化数据的点位置参数的变化趋势值;其中,所述预判时间点是用于判断是否需要对所述量化参数进行调整的时间点,所述预判时间点对应权值更新迭代完成时的时间点;
根据所述点位置参数的变化趋势值确定对应所述目标迭代间隔。
23.如权利要求4~6任一权利要求所述的方法,其特征在于,所述点位置参数根据统计结果、和所述数据位宽确定。
24.如权利要求1所述的方法,其特征在于,还包括:
所述通用处理器将硬件架构信息写入驱动程序中,以根据所述驱动程序中的设备信息适配云侧人工智能处理器。
25.一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机程序,其特征在于,所述计算机程序被执行时,实现如权利要求1~24中任一项所述的方法的步骤。
26.一种数据处理装置,所述装置包括:存储器、通用处理器以及云侧人工智能处理器;所述存储器上存储有可在所述通用处理器和/或所述云侧人工智能处理器上运行如权利要求1~24任一项所述方法的计算机程序。
CN202010401876.2A 2019-06-12 2020-05-13 一种数据处理方法及相关产品 Active CN111652367B (zh)

Applications Claiming Priority (8)

Application Number Priority Date Filing Date Title
CN2019105052397 2019-06-12
CN201910505239 2019-06-12
CN201910515355 2019-06-14
CN2019105153557 2019-06-14
CN2019105285378 2019-06-18
CN201910528537 2019-06-18
CN2019105701250 2019-06-27
CN201910570125 2019-06-27

Publications (2)

Publication Number Publication Date
CN111652367A CN111652367A (zh) 2020-09-11
CN111652367B true CN111652367B (zh) 2024-04-09

Family

ID=69185300

Family Applications (14)

Application Number Title Priority Date Filing Date
CN201980005061.8A Pending CN112400176A (zh) 2019-06-12 2019-09-19 一种神经网络的量化参数确定方法及相关产品
CN201910889339.4A Active CN112085188B (zh) 2019-06-12 2019-09-19 一种神经网络的量化参数确定方法及相关产品
CN201910960314.9A Active CN112085192B (zh) 2019-06-12 2019-09-19 一种神经网络的量化参数确定方法及相关产品
CN201910959360.7A Active CN112085189B (zh) 2019-06-12 2019-09-19 一种神经网络的量化参数确定方法及相关产品
CN201910959851.1A Active CN112085191B (zh) 2019-06-12 2019-09-19 一种神经网络的量化参数确定方法及相关产品
CN201910886577.XA Active CN112085181B (zh) 2019-06-12 2019-09-19 神经网络量化方法及装置以及相关产品
CN201910960385.9A Active CN112085193B (zh) 2019-06-12 2019-09-19 一种神经网络的量化参数确定方法及相关产品
CN201910959831.4A Active CN112085190B (zh) 2019-06-12 2019-09-19 一种神经网络的量化参数确定方法及相关产品
CN201910888150.3A Active CN112085185B (zh) 2019-06-12 2019-09-19 量化参数调整方法、装置及相关产品
CN201910888626.3A Active CN112085186B (zh) 2019-06-12 2019-09-19 一种神经网络的量化参数确定方法及相关产品
CN201910887861.9A Active CN112085184B (zh) 2019-06-12 2019-09-19 量化参数调整方法、装置及相关产品
CN201910887544.7A Active CN112085183B (zh) 2019-06-12 2019-09-19 一种神经网络运算方法及装置以及相关产品
CN202010402271.5A Active CN111652368B (zh) 2019-06-12 2020-05-13 一种数据处理方法及相关产品
CN202010401876.2A Active CN111652367B (zh) 2019-06-12 2020-05-13 一种数据处理方法及相关产品

Family Applications Before (13)

Application Number Title Priority Date Filing Date
CN201980005061.8A Pending CN112400176A (zh) 2019-06-12 2019-09-19 一种神经网络的量化参数确定方法及相关产品
CN201910889339.4A Active CN112085188B (zh) 2019-06-12 2019-09-19 一种神经网络的量化参数确定方法及相关产品
CN201910960314.9A Active CN112085192B (zh) 2019-06-12 2019-09-19 一种神经网络的量化参数确定方法及相关产品
CN201910959360.7A Active CN112085189B (zh) 2019-06-12 2019-09-19 一种神经网络的量化参数确定方法及相关产品
CN201910959851.1A Active CN112085191B (zh) 2019-06-12 2019-09-19 一种神经网络的量化参数确定方法及相关产品
CN201910886577.XA Active CN112085181B (zh) 2019-06-12 2019-09-19 神经网络量化方法及装置以及相关产品
CN201910960385.9A Active CN112085193B (zh) 2019-06-12 2019-09-19 一种神经网络的量化参数确定方法及相关产品
CN201910959831.4A Active CN112085190B (zh) 2019-06-12 2019-09-19 一种神经网络的量化参数确定方法及相关产品
CN201910888150.3A Active CN112085185B (zh) 2019-06-12 2019-09-19 量化参数调整方法、装置及相关产品
CN201910888626.3A Active CN112085186B (zh) 2019-06-12 2019-09-19 一种神经网络的量化参数确定方法及相关产品
CN201910887861.9A Active CN112085184B (zh) 2019-06-12 2019-09-19 量化参数调整方法、装置及相关产品
CN201910887544.7A Active CN112085183B (zh) 2019-06-12 2019-09-19 一种神经网络运算方法及装置以及相关产品
CN202010402271.5A Active CN111652368B (zh) 2019-06-12 2020-05-13 一种数据处理方法及相关产品

Country Status (6)

Country Link
US (2) US11675676B2 (zh)
EP (4) EP3770823A1 (zh)
JP (3) JP2021530769A (zh)
KR (3) KR102656332B1 (zh)
CN (14) CN112400176A (zh)
WO (2) WO2020248423A1 (zh)

Families Citing this family (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11437032B2 (en) 2017-09-29 2022-09-06 Shanghai Cambricon Information Technology Co., Ltd Image processing apparatus and method
US11663002B2 (en) 2018-02-13 2023-05-30 Shanghai Cambricon Information Technology Co., Ltd Computing device and method
CN116991226A (zh) 2018-02-14 2023-11-03 上海寒武纪信息科技有限公司 处理器的控制装置、方法及设备
KR102470893B1 (ko) 2018-06-27 2022-11-25 상하이 캠브리콘 인포메이션 테크놀로지 컴퍼니 리미티드 온 칩 코드의 브레이크 포인트에 의한 디버그 방법, 온 칩 프로세서 및 브레이크 포인트에 의한 칩 디버그 시스템
US11507823B2 (en) * 2019-01-22 2022-11-22 Black Sesame Technologies Inc. Adaptive quantization and mixed precision in a network
US11966818B2 (en) 2019-02-21 2024-04-23 Hewlett Packard Enterprise Development Lp System and method for self-healing in decentralized model building for machine learning using blockchain
US11676029B2 (en) * 2019-06-12 2023-06-13 Shanghai Cambricon Information Technology Co., Ltd Neural network quantization parameter determination method and related products
CN110490309B (zh) * 2019-08-14 2022-06-07 中科寒武纪科技股份有限公司 一种用于神经网络的算子融合方法及其相关产品
US20210232890A1 (en) * 2019-09-24 2021-07-29 Baidu Usa Llc Cursor-based adaptive quantization for deep neural networks
JP7354736B2 (ja) * 2019-09-30 2023-10-03 富士通株式会社 情報処理装置、情報処理方法、情報処理プログラム
US11775611B2 (en) * 2019-11-01 2023-10-03 Samsung Electronics Co., Ltd. Piecewise quantization for neural networks
JP2021111081A (ja) * 2020-01-09 2021-08-02 富士通株式会社 情報処理装置、ニューラルネットワークの演算プログラム及びニューラルネットワークの演算方法
US20210241183A1 (en) * 2020-01-31 2021-08-05 Hewlett Packard Enterprise Development Lp Adaptively synchronizing learning of multiple learning models
CN113741619B (zh) * 2020-05-27 2024-03-12 安徽寒武纪信息科技有限公司 时钟控制装置及相关产品
CN112686001B (zh) * 2021-01-05 2021-12-03 中科三清科技有限公司 气象数据的变换方法、传输方法、服务器及数据传输系统
KR102507461B1 (ko) * 2021-02-16 2023-03-07 고려대학교 산학협력단 레이어-단위 양자화 신경망을 위한 인-메모리 가속기 및 이의 동작 방법
CN112990457B (zh) * 2021-03-26 2024-05-03 开放智能机器(上海)有限公司 离线量化调优方法、装置、设备、介质及程序产品
CN113220606B (zh) * 2021-05-07 2021-11-26 珠海市芯动力科技有限公司 神经网络权值存储方法、读取方法及相关设备
JP2023069780A (ja) * 2021-11-08 2023-05-18 富士通株式会社 演算プログラム、演算方法及び計算機
WO2023128024A1 (ko) * 2021-12-30 2023-07-06 한국전자기술연구원 딥러닝 네트워크 양자화 처리 방법 및 시스템
WO2023177272A1 (ko) * 2022-03-18 2023-09-21 인텔렉추얼디스커버리 주식회사 신경망 기반 특징 텐서 압축 방법 및 장치
CN114611697B (zh) * 2022-05-11 2022-09-09 上海登临科技有限公司 神经网络量化及部署方法、系统、电子设备及存储介质
CN117910421A (zh) * 2024-03-15 2024-04-19 南京美辰微电子有限公司 一种基于神经网络的动态近似电路计算部署方法及系统

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109740739A (zh) * 2018-12-29 2019-05-10 北京中科寒武纪科技有限公司 神经网络计算装置、神经网络计算方法及相关产品

Family Cites Families (247)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2604712B2 (ja) * 1985-10-18 1997-04-30 ソニー株式会社 テレビジヨン信号の高能率符号化/復号装置
JPS63111768A (ja) * 1986-10-30 1988-05-17 Nec Corp 画像デ−タ量子化装置
JPH0375860A (ja) 1989-08-18 1991-03-29 Hitachi Ltd パーソナライズド端末
US5052043A (en) 1990-05-07 1991-09-24 Eastman Kodak Company Neural network with back propagation controlled through an output confidence measure
DE69224227T2 (de) * 1991-04-18 1998-07-09 Ampex Verfahren und Anordnung zur Bestimmung eines Quantisierungsfaktors für Prozesse mit Datenkomprimierung und -dekomprimierung
US6144977A (en) 1995-07-10 2000-11-07 Motorola, Inc. Circuit and method of converting a floating point number to a programmable fixed point number
GB9602701D0 (en) 1996-02-09 1996-04-10 Canon Kk Image manipulation
JPH10233691A (ja) * 1998-03-30 1998-09-02 Nec Corp 符号化方式および復号方式
US7242414B1 (en) 1999-07-30 2007-07-10 Mips Technologies, Inc. Processor having a compare extension of an instruction set architecture
JP2000293371A (ja) 1999-04-09 2000-10-20 Hitachi Ltd マイクロプログラム制御方法及び装置
US6671796B1 (en) 2000-02-25 2003-12-30 Sun Microsystems, Inc. Converting an arbitrary fixed point value to a floating point value
US6931639B1 (en) 2000-08-24 2005-08-16 International Business Machines Corporation Method for implementing a variable-partitioned queue for simultaneous multithreaded processors
EP1315846B1 (en) 2000-09-07 2007-02-21 Nippon Steel Corporation Hexavalent chromium-free surface-treating agent for sn- or al-based coated steel sheet, and surface treated steel sheet
US7062445B2 (en) * 2001-01-26 2006-06-13 Microsoft Corporation Quantization loop with heuristic approach
US20020138714A1 (en) 2001-03-22 2002-09-26 Sun Microsystems, Inc. Scoreboard for scheduling of instructions in a microprocessor that provides out of order execution
WO2002086817A1 (en) 2001-04-19 2002-10-31 Telefonaktiebolaget Lm Ericsson (Publ) Adaptive memory allocation
US20030167460A1 (en) 2002-02-26 2003-09-04 Desai Vipul Anil Processor instruction set simulation power estimation method
JP4148356B2 (ja) * 2002-11-18 2008-09-10 学校法人東海大学 量子化ステップパラメータ決定装置と量子化ステップパラメータ決定方法と量子化ステップパラメータ決定プログラム、ならびに非線形量子化方法と非線形量子化装置と非線形量子化プログラム
US7236995B2 (en) 2002-12-27 2007-06-26 Arm Limited Data processing apparatus and method for converting a number between fixed-point and floating-point representations
DE10316381A1 (de) 2003-04-10 2004-10-28 Bayer Technology Services Gmbh Verfahren zum Training von neuronalen Netzen
JP3889738B2 (ja) * 2003-09-26 2007-03-07 三洋電機株式会社 逆量子化装置、オーディオ復号化装置、画像復号化装置、逆量子化方法および逆量子化プログラム
JP4202244B2 (ja) 2003-12-22 2008-12-24 Necエレクトロニクス株式会社 Vliw型dsp,及びその動作方法
US20060161375A1 (en) 2004-12-30 2006-07-20 Allen Duberstein Optimizing processing speed based on measured temperatures
KR100762591B1 (ko) * 2005-09-29 2007-10-01 엘지전자 주식회사 비디오 코덱의 양자화 파라미터 결정방법
US7721128B2 (en) 2005-11-29 2010-05-18 International Business Machines Corporation Implementation of thermal throttling logic
WO2007116551A1 (ja) * 2006-03-30 2007-10-18 Kabushiki Kaisha Toshiba 画像符号化装置及び画像符号化方法並びに画像復号化装置及び画像復号化方法
CN1851668A (zh) 2006-06-01 2006-10-25 北京天碁科技有限公司 片上系统芯片、片上系统芯片的跟踪调试系统及方法
JP5224666B2 (ja) * 2006-09-08 2013-07-03 株式会社東芝 オーディオ符号化装置
DE102006059156B4 (de) 2006-12-14 2008-11-06 Advanced Micro Devices, Inc., Sunnyvale Verfahren zum Testen eines integrierten Schaltkreischips mit zumindest zwei Schaltungskernen sowie integrierter Schaltkreischip und Testsystem
US20110060587A1 (en) 2007-03-07 2011-03-10 Phillips Michael S Command and control utilizing ancillary information in a mobile voice-to-speech application
US8560591B2 (en) 2007-04-25 2013-10-15 International Business Machines Corporation Detection of potential need to use a larger data format in performing floating point operations
US8051117B2 (en) 2007-04-26 2011-11-01 International Business Machines Corporation Shift significand of decimal floating point data
US8051118B2 (en) 2007-04-26 2011-11-01 International Business Machines Corporation Composition of decimal floating point data
US8190664B2 (en) 2007-04-26 2012-05-29 International Business Machines Corporation Employing a mask field of an instruction to encode a sign of a result of the instruction
JP5184824B2 (ja) 2007-06-15 2013-04-17 キヤノン株式会社 演算処理装置及び方法
JP2009110353A (ja) 2007-10-31 2009-05-21 Hitachi Ltd マイクロコントローラ及び制御システム
US7904287B2 (en) 2007-11-13 2011-03-08 International Business Machines Corporation Method and system for real-time prediction of power usage for a change to another performance state
JP4998794B2 (ja) 2007-11-29 2012-08-15 Nkワークス株式会社 画像補正方法と画像補正装置
KR101518237B1 (ko) * 2008-09-01 2015-05-15 삼성전자주식회사 영상의 역양자화 방법 및 장치, 복호화 방법 및 장치
US20100073068A1 (en) 2008-09-22 2010-03-25 Hanwoo Cho Functional block level thermal control
CN101754490B (zh) * 2008-12-17 2012-11-07 电信科学技术研究院 一种数据传输的方法、系统和装置
CN101572829B (zh) 2009-06-10 2011-02-02 中国联合网络通信集团有限公司 Iptv视频质量监测方法、装置和系统
EP2336882A1 (en) 2009-12-18 2011-06-22 Telefonaktiebolaget L M Ericsson (PUBL) Technique for run-time provision of executable code using off-device services
WO2011132277A1 (ja) 2010-04-21 2011-10-27 トヨタ自動車株式会社 内燃機関の制御装置
JP2011253374A (ja) 2010-06-02 2011-12-15 Sony Corp 情報処理装置、および情報処理方法、並びにプログラム
US8452463B2 (en) 2010-06-04 2013-05-28 Apple Inc. Adjusting the thermal behavior of a computing system using indirect information about ambient temperature
US8694572B2 (en) 2010-07-06 2014-04-08 Silminds, Llc, Egypt Decimal floating-point fused multiply-add unit
CN102622207B (zh) * 2011-01-30 2015-07-22 中兴通讯股份有限公司 定点化处理方法及装置
US8924455B1 (en) 2011-02-25 2014-12-30 Xilinx, Inc. Multiplication of matrices using systolic arrays
WO2012117955A1 (ja) 2011-02-28 2012-09-07 株式会社メガチップス 画像符号化装置
CN102761509B (zh) 2011-04-27 2016-01-06 联芯科技有限公司 Ofdm系统的接收系统及降低接收系统内存的方法
KR101660215B1 (ko) 2011-05-12 2016-09-26 애플 인크. 존재 감지
CN102789413B (zh) 2011-05-23 2016-02-17 同济大学 一种并行程序的调试系统及方法
US8594982B2 (en) 2011-06-09 2013-11-26 Pulsar Informatics, Inc. Systems and methods for distributed calculation of fatigue-risk prediction and optimization
CN102291773B (zh) * 2011-07-18 2014-12-10 电信科学技术研究院 一种数据压缩方法和设备
CN102404673B (zh) 2011-11-24 2013-12-18 苏州上声电子有限公司 数字化扬声器系统通道均衡与声场控制方法和装置
CN103152673B (zh) 2011-12-07 2015-07-08 中国科学院声学研究所 基于四元码动态失配整形的数字扬声器驱动方法和装置
CN102684701B (zh) 2012-04-27 2014-07-09 苏州上声电子有限公司 基于编码转换的数字扬声器驱动方法和装置
DE102012009502A1 (de) 2012-05-14 2013-11-14 Kisters Ag Verfahren zum Trainieren eines künstlichen neuronalen Netzes
US9417891B2 (en) 2012-06-11 2016-08-16 Vmware, Inc. Unified storage/VDI provisioning methodology
US9224089B2 (en) * 2012-08-07 2015-12-29 Qualcomm Incorporated Method and apparatus for adaptive bit-allocation in neural systems
US9063731B2 (en) 2012-08-27 2015-06-23 Samsung Electronics Co., Ltd. Ultra low power apparatus and method to wake up a main processor
CN102903089B (zh) 2012-09-07 2014-12-17 山东大学 一种Linux环境下生成遥感图像快视图的方法
US9412366B2 (en) 2012-09-18 2016-08-09 Adobe Systems Incorporated Natural language image spatial and tonal localization
JP5913059B2 (ja) 2012-11-13 2016-04-27 日本電信電話株式会社 分散型無線通信基地局システム、信号処理装置、無線装置、及び分散型無線通信基地局システムの動作方法
CN102981854A (zh) 2012-11-16 2013-03-20 天津市天祥世联网络科技有限公司 基于浮点数运算内联函数库的神经网络优化方法
KR20150115724A (ko) 2012-11-22 2015-10-14 각고호우징 게이오기주크 아크릴계 공중합체, 광학 필름, 편광판 및 액정 표시 장치
US9851977B2 (en) 2012-12-06 2017-12-26 Kalray Apparatus and method for combining thread warps with compatible execution masks for simultaneous execution and increased lane utilization
US9720732B1 (en) 2013-02-11 2017-08-01 Amazon Technologies, Inc. Parameter selection for optimization of task execution based on execution history for prior tasks
JP2014170295A (ja) 2013-03-01 2014-09-18 Honda Motor Co Ltd 物体認識システム及び物体認識方法
US20190138372A1 (en) 2013-04-29 2019-05-09 Moogsoft, Inc. System for managing an instructure with security
US20150063461A1 (en) * 2013-08-27 2015-03-05 Magnum Semiconductor, Inc. Methods and apparatuses for adjusting macroblock quantization parameters to improve visual quality for lossy video encoding
JP6184891B2 (ja) 2014-03-12 2017-08-23 東芝メモリ株式会社 情報処理装置、半導体チップ、情報処理方法およびプログラム
CN105100810B (zh) * 2014-05-16 2018-02-13 中国科学院声学研究所 一种成像声纳实时处理系统中的图像压缩解压方法及系统
US9507405B2 (en) 2014-06-18 2016-11-29 Oracle International Corporation System and method for managing power in a chip multiprocessor using a proportional feedback mechanism
US10318882B2 (en) * 2014-09-11 2019-06-11 Amazon Technologies, Inc. Optimized training of linear machine learning models
US9575537B2 (en) 2014-07-25 2017-02-21 Intel Corporation Adaptive algorithm for thermal throttling of multi-core processors with non-homogeneous performance states
US10282100B2 (en) 2014-08-19 2019-05-07 Samsung Electronics Co., Ltd. Data management scheme in virtualized hyperscale environments
GB2524126B (en) 2014-08-28 2016-07-27 Imagination Tech Ltd Combining paths
US9916130B2 (en) 2014-11-03 2018-03-13 Arm Limited Apparatus and method for vector processing
FR3030077B1 (fr) 2014-12-10 2016-12-02 Arnault Ioualalen Procede d'ajustement de la precision d'un programme d'ordinateur manipulant au moins un nombre a virgule.
EP3035204B1 (en) 2014-12-19 2018-08-15 Intel Corporation Storage device and method for performing convolution operations
US20170061279A1 (en) 2015-01-14 2017-03-02 Intel Corporation Updating an artificial neural network using flexible fixed point representation
US10373050B2 (en) * 2015-05-08 2019-08-06 Qualcomm Incorporated Fixed point neural network based on floating point neural network quantization
US20160328645A1 (en) 2015-05-08 2016-11-10 Qualcomm Incorporated Reduced computational complexity for fixed point neural network
US10262259B2 (en) * 2015-05-08 2019-04-16 Qualcomm Incorporated Bit width selection for fixed point neural networks
US10083395B2 (en) 2015-05-21 2018-09-25 Google Llc Batch processing in a neural network processor
CN104899641B (zh) 2015-05-25 2018-07-13 杭州朗和科技有限公司 深度神经网络学习方法、处理器和深度神经网络学习系统
US11294815B2 (en) 2015-06-10 2022-04-05 Mobileye Vision Technologies Ltd. Multiple multithreaded processors with shared data cache
CN104978303B (zh) 2015-06-19 2019-06-04 上海兆芯集成电路有限公司 单芯片整合的传感器集线器和多传感器管理方法
CN106469291A (zh) 2015-08-19 2017-03-01 中兴通讯股份有限公司 图像处理方法及终端
US10970617B2 (en) * 2015-08-21 2021-04-06 Institute Of Automation Chinese Academy Of Sciences Deep convolutional neural network acceleration and compression method based on parameter quantification
US10031765B2 (en) 2015-09-24 2018-07-24 Intel Corporation Instruction and logic for programmable fabric hierarchy and cache
US10812831B2 (en) 2015-09-30 2020-10-20 Piksel, Inc. Video stream delivery via adaptive quality enhancement using error correction models
US11061672B2 (en) 2015-10-02 2021-07-13 Via Alliance Semiconductor Co., Ltd. Chained split execution of fused compound arithmetic operations
CN106570559A (zh) * 2015-10-09 2017-04-19 阿里巴巴集团控股有限公司 一种基于神经网络的数据处理方法和装置
CN105488565A (zh) * 2015-11-17 2016-04-13 中国科学院计算技术研究所 加速深度神经网络算法的加速芯片的运算装置及方法
US9930248B2 (en) 2015-11-17 2018-03-27 Eman Bayani Digital image capturing device system and method
CN106814639A (zh) 2015-11-27 2017-06-09 富泰华工业(深圳)有限公司 语音控制系统及方法
CN105893419A (zh) 2015-11-30 2016-08-24 乐视致新电子科技(天津)有限公司 一种多媒体照片生成方法、装置、设备及手机
US10699186B2 (en) 2015-12-02 2020-06-30 Google Llc Determining orders of execution of a neural network
CN111353588B (zh) 2016-01-20 2024-03-05 中科寒武纪科技股份有限公司 用于执行人工神经网络反向训练的装置和方法
CN108427990B (zh) * 2016-01-20 2020-05-22 中科寒武纪科技股份有限公司 神经网络计算系统和方法
CN106997236B (zh) 2016-01-25 2018-07-13 亮风台(上海)信息科技有限公司 基于多模态输入进行交互的方法和设备
US10733532B2 (en) 2016-01-27 2020-08-04 Bonsai AI, Inc. Multiple user interfaces of an artificial intelligence system to accommodate different types of users solving different types of problems with artificial intelligence
US10497089B2 (en) 2016-01-29 2019-12-03 Fotonation Limited Convolutional neural network
US10103714B2 (en) 2016-03-01 2018-10-16 Qualcomm Incorporated Adjust voltage for thermal mitigation
JP2017156511A (ja) 2016-03-01 2017-09-07 ソニー株式会社 情報処理装置、情報処理方法、およびプログラム
US10019779B2 (en) 2016-03-08 2018-07-10 Amazon Technologies, Inc. Browsing interface for item counterparts having different scales and lengths
CN109073339B (zh) * 2016-03-31 2020-08-25 可利尔Px科技有限公司 温度控制装置和具有静态冷却能力的系统
US10552119B2 (en) 2016-04-29 2020-02-04 Intel Corporation Dynamic management of numerical representation in a distributed matrix processor architecture
CN109934331B (zh) 2016-04-29 2020-06-19 中科寒武纪科技股份有限公司 用于执行人工神经网络正向运算的装置和方法
US10187568B1 (en) 2016-05-02 2019-01-22 Bao Tran Video smart phone
US11055063B2 (en) 2016-05-02 2021-07-06 Marvell Asia Pte, Ltd. Systems and methods for deep learning processor
GB201607713D0 (en) 2016-05-03 2016-06-15 Imagination Tech Ltd Convolutional neural network
CN105978611B (zh) 2016-05-12 2019-09-17 京信通信系统(中国)有限公司 一种频域信号压缩方法及装置
AU2016203619A1 (en) 2016-05-31 2017-12-14 Canon Kabushiki Kaisha Layer-based operations scheduling to optimise memory for CNN applications
EP3252949B1 (en) 2016-06-01 2020-03-18 Intel IP Corporation Methods and devices for predistortion of signals
US20170357910A1 (en) 2016-06-10 2017-12-14 Apple Inc. System for iteratively training an artificial intelligence using cloud-based metrics
CN107545889B (zh) 2016-06-23 2020-10-23 华为终端有限公司 适用于模式识别的模型的优化方法、装置及终端设备
CN106156310A (zh) 2016-06-30 2016-11-23 努比亚技术有限公司 一种图片处理装置和方法
US20180005111A1 (en) * 2016-06-30 2018-01-04 International Business Machines Corporation Generalized Sigmoids and Activation Function Learning
US10372588B2 (en) 2016-07-08 2019-08-06 International Business Machines Corporation Providing debug information on production containers using debug containers
DE102016214786A1 (de) 2016-08-09 2018-02-15 Fujitsu Limited Anwendungsprofiling-Jobmanagement-System, -Programm und -Verfahren
CN107688855B (zh) 2016-08-12 2021-04-13 赛灵思公司 针对于复杂神经网络的分层量化方法与装置
US20180046903A1 (en) 2016-08-12 2018-02-15 DeePhi Technology Co., Ltd. Deep processing unit (dpu) for implementing an artificial neural network (ann)
CN106354568A (zh) 2016-08-23 2017-01-25 京信通信技术(广州)有限公司 一种不同进程间的通信方法及通信装置
CN107797913A (zh) 2016-09-07 2018-03-13 大陆汽车电子(连云港)有限公司 一种实时系统的软件分析系统与方法
US20180075347A1 (en) * 2016-09-15 2018-03-15 Microsoft Technology Licensing, Llc Efficient training of neural networks
US11907760B2 (en) 2016-09-23 2024-02-20 Apple Inc. Systems and methods of memory allocation for neural networks
CN106650922B (zh) 2016-09-29 2019-05-03 清华大学 硬件神经网络转换方法、计算装置、软硬件协作系统
US20180096243A1 (en) 2016-09-30 2018-04-05 General Electric Company Deep learning for data driven feature representation and anomaly detection
US10726330B2 (en) 2016-10-11 2020-07-28 The Research Foundation For The State University Of New York System, method, and accelerator to process convolutional neural network layers
US11321609B2 (en) * 2016-10-19 2022-05-03 Samsung Electronics Co., Ltd Method and apparatus for neural network quantization
CN106485316B (zh) 2016-10-31 2019-04-02 北京百度网讯科技有限公司 神经网络模型压缩方法以及装置
CN106502626A (zh) 2016-11-03 2017-03-15 北京百度网讯科技有限公司 数据处理方法和装置
US10216479B2 (en) 2016-12-06 2019-02-26 Arm Limited Apparatus and method for performing arithmetic operations to accumulate floating-point numbers
CN106815551B (zh) * 2016-12-08 2019-09-10 新疆农业大学 一种森林资源管理的变异函数参数拟合的优化方法
CN106600070A (zh) * 2016-12-20 2017-04-26 郭建峰 基于ipso‑bp神经网络的短期股价预测算法
US10997492B2 (en) 2017-01-20 2021-05-04 Nvidia Corporation Automated methods for conversions to a lower precision data format
CN108345939B (zh) 2017-01-25 2022-05-24 微软技术许可有限责任公司 基于定点运算的神经网络
JP7004503B2 (ja) * 2017-01-27 2022-01-21 ラピスセミコンダクタ株式会社 自動利得制御回路(agc)、逆拡散回路及び受信データの再生方法
CN106951587A (zh) 2017-02-15 2017-07-14 芯启源(南京)半导体科技有限公司 Fpga调试系统及方法
CN106951962B (zh) 2017-03-22 2020-09-01 南京地平线机器人技术有限公司 用于神经网络的复合运算单元、方法和电子设备
US10402932B2 (en) 2017-04-17 2019-09-03 Intel Corporation Power-based and target-based graphics quality adjustment
US10332302B2 (en) 2017-04-17 2019-06-25 Intel Corporation Scatter gather engine
EP3614259A4 (en) * 2017-04-19 2021-02-24 Shanghai Cambricon Information Technology Co., Ltd TREATMENT APPARATUS AND TREATMENT METHOD
CN108734287A (zh) * 2017-04-21 2018-11-02 展讯通信(上海)有限公司 深度神经网络模型的压缩方法及装置、终端、存储介质
CN107025629B (zh) 2017-04-27 2021-03-26 维沃移动通信有限公司 一种图像处理方法及移动终端
KR102034661B1 (ko) * 2017-04-28 2019-10-21 서울대학교산학협력단 뉴럴네트워크를 위한 데이터 양자화 방법 및 장치
US11842280B2 (en) 2017-05-05 2023-12-12 Nvidia Corporation Loss-scaling for deep neural network training with reduced precision
US10019668B1 (en) 2017-05-19 2018-07-10 Google Llc Scheduling neural network processing
KR102526650B1 (ko) * 2017-05-25 2023-04-27 삼성전자주식회사 뉴럴 네트워크에서 데이터를 양자화하는 방법 및 장치
CN107256422A (zh) * 2017-06-06 2017-10-17 上海兆芯集成电路有限公司 数据量化方法及装置
CN107239826A (zh) * 2017-06-06 2017-10-10 上海兆芯集成电路有限公司 在卷积神经网络中的计算方法及装置
US11144828B2 (en) 2017-06-09 2021-10-12 Htc Corporation Training task optimization system, training task optimization method and non-transitory computer readable medium for operating the same
US10944902B2 (en) 2017-06-20 2021-03-09 Adobe Inc. Digital image generation using capture support data
US9916531B1 (en) * 2017-06-22 2018-03-13 Intel Corporation Accumulator constrained quantization of convolutional neural networks
WO2019005088A1 (en) 2017-06-30 2019-01-03 Intel Corporation HETEROGENEOUS MULTIPLIER
CN109214509B (zh) * 2017-07-05 2021-07-06 中国科学院沈阳自动化研究所 一种用于深度神经网络高速实时量化结构和运算实现方法
CN107451654B (zh) 2017-07-05 2021-05-18 深圳市自行科技有限公司 卷积神经网络的加速运算方法、服务器及存储介质
US10427306B1 (en) 2017-07-06 2019-10-01 X Development Llc Multimodal object identification
CN107844322B (zh) 2017-07-20 2020-08-04 上海寒武纪信息科技有限公司 用于执行人工神经网络正向运算的装置和方法
CN107451658B (zh) 2017-07-24 2020-12-15 杭州菲数科技有限公司 浮点运算定点化方法及系统
CN107480770B (zh) * 2017-07-27 2020-07-28 中国科学院自动化研究所 可调节量化位宽的神经网络量化与压缩的方法及装置
CN107688849B (zh) 2017-07-28 2021-04-13 赛灵思电子科技(北京)有限公司 一种动态策略定点化训练方法及装置
CN107679618B (zh) * 2017-07-28 2021-06-11 赛灵思电子科技(北京)有限公司 一种静态策略定点化训练方法及装置
US11481218B2 (en) 2017-08-02 2022-10-25 Intel Corporation System and method enabling one-hot neural networks on a machine learning compute platform
CN109388779A (zh) * 2017-08-03 2019-02-26 珠海全志科技股份有限公司 一种神经网络权重量化方法和神经网络权重量化装置
KR102601604B1 (ko) 2017-08-04 2023-11-13 삼성전자주식회사 뉴럴 네트워크의 파라미터들을 양자화하는 방법 및 장치
KR20200029510A (ko) 2017-08-08 2020-03-18 삼성전자주식회사 네트워크에서 메모리 요구 사항을 결정하는 방법 및 장치
US20190050710A1 (en) * 2017-08-14 2019-02-14 Midea Group Co., Ltd. Adaptive bit-width reduction for neural networks
CN110663048B (zh) 2017-09-05 2023-10-24 松下电器(美国)知识产权公司 用于深度神经网络的执行方法、执行装置、学习方法、学习装置以及记录介质
CN107644254A (zh) * 2017-09-09 2018-01-30 复旦大学 一种卷积神经网络权重参数量化训练方法及系统
KR20190034985A (ko) * 2017-09-25 2019-04-03 삼성전자주식회사 인공 신경망의 양자화 방법 및 장치
US11450319B2 (en) 2017-09-29 2022-09-20 Cambricon (Xi'an) Semiconductor Co., Ltd. Image processing apparatus and method
US10223114B1 (en) 2017-09-29 2019-03-05 Intel Corporation Fixed point to floating point conversion
CN107679490B (zh) * 2017-09-29 2019-06-28 百度在线网络技术(北京)有限公司 用于检测图像质量的方法和装置
EP3667488B1 (en) 2017-09-29 2023-06-28 Shanghai Cambricon Information Technology Co., Ltd Image processing apparatus and method
US11437032B2 (en) 2017-09-29 2022-09-06 Shanghai Cambricon Information Technology Co., Ltd Image processing apparatus and method
US10224954B1 (en) 2017-09-29 2019-03-05 Intel Corporation Floating point to fixed point conversion
JP6540770B2 (ja) 2017-10-17 2019-07-10 富士通株式会社 演算処理回路、演算処理回路を含む演算処理装置、演算処理装置を含む情報処理装置、および方法
KR102564456B1 (ko) * 2017-10-19 2023-08-07 삼성전자주식회사 뉴럴 네트워크의 파라미터를 양자화하는 장치 및 방법
US10410121B2 (en) 2017-10-25 2019-09-10 SparkCognition, Inc. Adjusting automated neural network generation based on evaluation of candidate neural networks
US20210061028A1 (en) 2017-10-26 2021-03-04 Applied Mechatronic Products Apparatus and method for vehicular monitoring, analysis, and control
KR20190054454A (ko) 2017-11-13 2019-05-22 삼성전자주식회사 인공 신경망의 양자화 방법 및 장치
US10783634B2 (en) 2017-11-22 2020-09-22 General Electric Company Systems and methods to deliver point of care alerts for radiological findings
US10803379B2 (en) 2017-12-12 2020-10-13 Amazon Technologies, Inc. Multi-memory on-chip computational network
CN108053028B (zh) * 2017-12-21 2021-09-14 深圳励飞科技有限公司 数据定点化处理方法、装置、电子设备及计算机存储介质
CN108229681A (zh) * 2017-12-28 2018-06-29 郑州云海信息技术有限公司 一种神经网络模型压缩方法、系统、装置及可读存储介质
US11636327B2 (en) 2017-12-29 2023-04-25 Intel Corporation Machine learning sparse computation mechanism for arbitrary neural networks, arithmetic compute microarchitecture, and sparsity for training mechanism
US11373088B2 (en) 2017-12-30 2022-06-28 Intel Corporation Machine learning accelerator mechanism
CN108229663A (zh) * 2018-01-29 2018-06-29 百度在线网络技术(北京)有限公司 用于生成卷积神经网络的方法和装置
CN108288089A (zh) * 2018-01-29 2018-07-17 百度在线网络技术(北京)有限公司 用于生成卷积神经网络的方法和装置
US20190251429A1 (en) 2018-02-12 2019-08-15 Kneron, Inc. Convolution operation device and method of scaling convolution input for convolution neural network
US11630666B2 (en) 2018-02-13 2023-04-18 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
US11106598B2 (en) 2018-02-13 2021-08-31 Shanghai Cambricon Information Technology Co., Ltd. Computing device and method
CN116991226A (zh) 2018-02-14 2023-11-03 上海寒武纪信息科技有限公司 处理器的控制装置、方法及设备
JP7056225B2 (ja) 2018-02-26 2022-04-19 富士通株式会社 演算処理装置、情報処理装置、情報処理方法、およびプログラム
US10628275B2 (en) 2018-03-07 2020-04-21 Nxp B.V. Runtime software-based self-test with mutual inter-core checking
US11475306B2 (en) 2018-03-22 2022-10-18 Amazon Technologies, Inc. Processing for multiple input data sets
CN108631727B (zh) * 2018-03-26 2019-08-09 河北工业大学 一种基于卷积神经网络的太阳能电池板缺陷识别方法
CN108491928B (zh) * 2018-03-29 2019-10-25 腾讯科技(深圳)有限公司 模型参数发送方法、装置、服务器及存储介质
CN108509627B (zh) * 2018-04-08 2021-08-31 腾讯科技(深圳)有限公司 数据离散化模型训练方法和装置、数据离散方法
CN108510067B (zh) 2018-04-11 2021-11-09 西安电子科技大学 基于工程化实现的卷积神经网络量化方法
US11562213B2 (en) 2018-04-17 2023-01-24 Intel Corporation Methods and arrangements to manage memory in cascaded neural networks
CN108596328B (zh) * 2018-04-26 2021-02-02 北京市商汤科技开发有限公司 一种定点化方法及装置、计算机设备
US10691413B2 (en) 2018-05-04 2020-06-23 Microsoft Technology Licensing, Llc Block floating point computations using reduced bit-width vectors
EP3624020A4 (en) 2018-05-18 2021-05-05 Shanghai Cambricon Information Technology Co., Ltd CALCULATION PROCEDURES AND RELATED PRODUCTS
CN108717570A (zh) * 2018-05-23 2018-10-30 电子科技大学 一种脉冲神经网络参数量化方法
CN115268082A (zh) 2018-05-31 2022-11-01 中强光电股份有限公司 头戴式显示装置
US10360304B1 (en) 2018-06-04 2019-07-23 Imageous, Inc. Natural language processing interface-enabled building conditions control system
CN109062540B (zh) 2018-06-06 2022-11-25 北京理工大学 一种基于cordic算法的可重构浮点运算装置
CN109063820A (zh) 2018-06-07 2018-12-21 中国科学技术大学 利用时频联合长时循环神经网络的数据处理方法
CN108830331A (zh) * 2018-06-22 2018-11-16 西安交通大学 一种基于全卷积网络的探地雷达目标检测方法
CN109102064B (zh) * 2018-06-26 2020-11-13 杭州雄迈集成电路技术股份有限公司 一种高精度的神经网络量化压缩方法
CN109146057B (zh) 2018-06-26 2020-12-08 杭州雄迈集成电路技术股份有限公司 一种基于查表计算的高精度的神经网络工程化方法
KR102470893B1 (ko) 2018-06-27 2022-11-25 상하이 캠브리콘 인포메이션 테크놀로지 컴퍼니 리미티드 온 칩 코드의 브레이크 포인트에 의한 디버그 방법, 온 칩 프로세서 및 브레이크 포인트에 의한 칩 디버그 시스템
CN110728364A (zh) 2018-07-17 2020-01-24 上海寒武纪信息科技有限公司 一种运算装置和运算方法
CN109002889B (zh) * 2018-07-03 2021-12-17 华南理工大学 自适应迭代式卷积神经网络模型压缩方法
CN109214504B (zh) * 2018-08-24 2020-09-04 北京邮电大学深圳研究院 一种基于fpga的yolo网络前向推理加速器设计方法
EP3757896B1 (en) 2018-08-28 2023-01-11 Cambricon Technologies Corporation Limited Method and device for pre-processing data in a neural network
WO2020062392A1 (zh) 2018-09-28 2020-04-02 上海寒武纪信息科技有限公司 信号处理装置、信号处理方法及相关产品
CN109472353B (zh) * 2018-11-22 2020-11-03 浪潮集团有限公司 一种卷积神经网络量化电路及量化方法
CN109598331A (zh) * 2018-12-04 2019-04-09 北京芯盾时代科技有限公司 一种欺诈识别模型训练方法、欺诈识别方法及装置
CN109685202B (zh) 2018-12-17 2023-03-21 腾讯科技(深圳)有限公司 数据处理方法及装置、存储介质和电子装置
GB2580171B (en) * 2018-12-21 2021-02-17 Imagination Tech Ltd Methods and systems for selecting quantisation parameters for deep neural networks using back-propagation
CN109754074A (zh) * 2018-12-29 2019-05-14 北京中科寒武纪科技有限公司 一种神经网络量化方法、装置以及相关产品
CN111383637A (zh) 2018-12-28 2020-07-07 上海寒武纪信息科技有限公司 信号处理装置、信号处理方法及相关产品
CN109740754B (zh) * 2018-12-29 2020-04-14 中科寒武纪科技股份有限公司 神经网络计算装置、神经网络计算方法及相关产品
CN109800865B (zh) * 2019-01-24 2021-03-23 北京市商汤科技开发有限公司 神经网络生成及图像处理方法和装置、平台、电子设备
US20190164057A1 (en) * 2019-01-30 2019-05-30 Intel Corporation Mapping and quantification of influence of neural network features for explainable artificial intelligence
CN109859135B (zh) * 2019-01-31 2021-05-07 北京邮电大学 一种应用于关联成像的图像增强处理方法
CN109800877B (zh) 2019-02-20 2022-12-30 腾讯科技(深圳)有限公司 神经网络的参数调整方法、装置及设备
CN109902745A (zh) 2019-03-01 2019-06-18 成都康乔电子有限责任公司 一种基于cnn的低精度训练与8位整型量化推理方法
CN109993296B (zh) 2019-04-01 2020-12-29 安徽寒武纪信息科技有限公司 量化实现方法及相关产品
CN110059733A (zh) 2019-04-01 2019-07-26 苏州科达科技股份有限公司 卷积神经网络的优化及快速目标检测方法、装置
US11934940B2 (en) 2019-04-18 2024-03-19 Cambricon Technologies Corporation Limited AI processor simulation
CN111832738B (zh) 2019-04-18 2024-01-09 中科寒武纪科技股份有限公司 一种数据处理方法及相关产品
US20200364552A1 (en) * 2019-05-13 2020-11-19 Baidu Usa Llc Quantization method of improving the model inference accuracy
US11531893B2 (en) * 2019-06-03 2022-12-20 Samsung Electronics Co., Ltd. Method and apparatus with neural network parameter quantization
US11676029B2 (en) * 2019-06-12 2023-06-13 Shanghai Cambricon Information Technology Co., Ltd Neural network quantization parameter determination method and related products
EP4020328A4 (en) 2019-08-23 2023-07-05 Anhui Cambricon Information Technology Co., Ltd. DATA PROCESSING METHOD AND APPARATUS, COMPUTER DEVICE AND STORAGE MEDIA
JP7146955B2 (ja) 2019-08-23 2022-10-04 安徽寒武紀信息科技有限公司 データ処理方法、装置、コンピュータデバイス、及び記憶媒体
JP7146953B2 (ja) 2019-08-27 2022-10-04 安徽寒武紀信息科技有限公司 データ処理方法、装置、コンピュータデバイス、及び記憶媒体
CN110780845B (zh) 2019-10-17 2021-11-30 浙江大学 一种用于量化卷积神经网络的可配置近似乘法器及其实现方法

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109740739A (zh) * 2018-12-29 2019-05-10 北京中科寒武纪科技有限公司 神经网络计算装置、神经网络计算方法及相关产品

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
施羽暇 ; .人工智能芯片技术体系研究综述.电信科学.2019,(04),全文. *

Also Published As

Publication number Publication date
CN112085185B (zh) 2024-04-02
JP2021530769A (ja) 2021-11-11
CN112085184B (zh) 2024-03-29
CN112085181A (zh) 2020-12-15
EP3770823A4 (en) 2021-01-27
KR102656332B1 (ko) 2024-04-09
US20220261634A1 (en) 2022-08-18
WO2020248424A1 (zh) 2020-12-17
CN112085181B (zh) 2024-03-29
CN112085186A (zh) 2020-12-15
KR20210011462A (ko) 2021-02-01
CN112085189A (zh) 2020-12-15
KR20210011461A (ko) 2021-02-01
US20210286688A1 (en) 2021-09-16
EP3772022A1 (en) 2021-02-03
CN112085184A (zh) 2020-12-15
CN112085188A (zh) 2020-12-15
JP7166704B2 (ja) 2022-11-08
CN112085188B (zh) 2024-04-02
CN112085190B (zh) 2024-04-02
EP3772023A1 (en) 2021-02-03
CN112085183B (zh) 2024-04-02
CN112400176A (zh) 2021-02-23
JP7167405B2 (ja) 2022-11-09
JP2021179966A (ja) 2021-11-18
CN112085191B (zh) 2024-04-02
CN112085189B (zh) 2024-03-29
CN112085191A (zh) 2020-12-15
EP3998554A4 (en) 2023-11-15
CN112085193B (zh) 2024-03-29
EP3998554A1 (en) 2022-05-18
CN112085185A (zh) 2020-12-15
CN112085193A (zh) 2020-12-15
CN112085192A (zh) 2020-12-15
CN112085183A (zh) 2020-12-15
US11675676B2 (en) 2023-06-13
CN111652367A (zh) 2020-09-11
JP2021177369A (ja) 2021-11-11
CN112085190A (zh) 2020-12-15
CN111652368B (zh) 2024-03-29
KR20210018352A (ko) 2021-02-17
WO2020248423A1 (zh) 2020-12-17
CN112085192B (zh) 2024-03-29
CN111652368A (zh) 2020-09-11
KR102609719B1 (ko) 2023-12-04
CN112085186B (zh) 2024-03-05
EP3770823A1 (en) 2021-01-27

Similar Documents

Publication Publication Date Title
CN111652367B (zh) 一种数据处理方法及相关产品
US11676028B2 (en) Neural network quantization parameter determination method and related products
TWI791610B (zh) 對人工神經網路及浮點神經網路進行量化的方法及裝置
JP7146955B2 (ja) データ処理方法、装置、コンピュータデバイス、及び記憶媒体
JP7146954B2 (ja) データ処理方法、装置、コンピュータデバイス、及び記憶媒体
US20190138887A1 (en) Systems, methods, and media for gated recurrent neural networks with reduced parameter gating signals and/or memory-cell units
US20220076095A1 (en) Multi-level sparse neural networks with dynamic rerouting
EP3924887A1 (en) Mixed precision training of an artificial neural network
WO2021036362A1 (zh) 用于处理数据的方法、装置以及相关产品
US20230133337A1 (en) Quantization calibration method, computing device and computer readable storage medium
CN112085175A (zh) 基于神经网络计算的数据处理方法和装置
CN113407747A (zh) 硬件加速器执行的方法、硬件加速器和神经网络装置
JP7146952B2 (ja) データ処理方法、装置、コンピュータデバイス、及び記憶媒体
JP2022501674A (ja) データを処理するための方法、装置、及び関連製品
Przewlocka-Rus et al. Energy efficient hardware acceleration of neural networks with power-of-two quantisation
US20220222041A1 (en) Method and apparatus for processing data, and related product
WO2023201424A1 (en) System and method for adaptation of containers for floating-point data for training of a machine learning model
CN114254746A (zh) 执行神经网络的方法和设备
CN114118341A (zh) 量化方法、计算装置和计算机可读存储介质
KR20220166176A (ko) 딥 뉴럴 네트워크를 양자화하는 방법 및 장치
KR20230066700A (ko) 딥러닝 가속장치를 위한 적응적 파라미터 생성 장치 및 방법

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
GR01 Patent grant
GR01 Patent grant