CN112085183A - 一种神经网络运算方法及装置以及相关产品 - Google Patents

一种神经网络运算方法及装置以及相关产品 Download PDF

Info

Publication number
CN112085183A
CN112085183A CN201910887544.7A CN201910887544A CN112085183A CN 112085183 A CN112085183 A CN 112085183A CN 201910887544 A CN201910887544 A CN 201910887544A CN 112085183 A CN112085183 A CN 112085183A
Authority
CN
China
Prior art keywords
data
target
iteration
target data
quantized
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.)
Granted
Application number
CN201910887544.7A
Other languages
English (en)
Other versions
CN112085183B (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 CN112085183A publication Critical patent/CN112085183A/zh
Application granted granted Critical
Publication of CN112085183B publication Critical patent/CN112085183B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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
    • 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/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

一种神经网络运算方法及装置以及相关产品
技术领域
本披露涉及人工智能技术领域,尤其涉及一种神经网络运算方法及装置以及相关产 品。
背景技术
近年来,人工智能技术得到了快速发展,由于其准确度较高,已经广泛应用到众多领域,包括图像分类、语音识别、自然语音处理等。然而随着人工智能技术的不断发展, 待处理的数据的规模不断扩大,运算复杂度不断升高,大大增加了软硬件平台运算的开 销,因而对其提出了更高的要求。那么如何能够在软硬件开销和计算准确度上取得平衡, 成为了一个重要的问题。
发明内容
为了解决上述所述的技术问题,本披露提出一种神经网络运算方法及装置以及相关 产品。
为实现上述目的,本披露提供一种神经网络运算方法,所述方法包括:
确定与神经网络待量化数据所对应的量化参数,所述待量化数据包括神经元、权值、 梯度、偏置中的至少一种;
根据所述量化参数对对应的所述待量化数据进行量化,得到量化数据;
根据所述量化数据对神经网络进行运算。
为实现上述目的,本披露提供一种神经网络运算装置,所述装置包括:
量化参数确定模块,用于确定与神经网络待量化数据所对应的量化参数,所述待量化 数据包括神经元、权值、梯度、偏置中的至少一种;
量化模块,用于根据所述量化参数对对应的所述待量化数据进行量化,得到量化数据;
执行模块,用于根据所述量化数据对神经网络进行运算。
为实现上述目的,本披露提供一种计算机设备,包括存储器及处理器,所述存储器上 存储有可在处理器上运行的计算机程序,其中,所述处理器执行所述计算机程序时实现上述所述方法。
为实现上述目的,本披露提供一种计算机可读存储介质,其上存储有计算机程序,所 述计算机程序被处理器执行时实现上述所述方法的步骤。
为实现上述目的,本披露提供一种人工智能芯片,所述芯片包括上述的神经网络运算 装置。
为实现上述目的,本披露提供一种电子设备,所述电子设备包括上述的人工智能芯片。
为实现上述目的,本披露提供一种板卡,所述板卡包括:存储器件、接口装置和控制 器件以及上述所述的人工智能芯片;其中,所述人工智能芯片与所述存储器件、所述控制器件以及所述接口装置分别连接;所述存储器件,用于存储数据;所述接口装置,用 于实现所述人工智能芯片与外部设备之间的数据传输;所述控制器件,用于对所述人工 智能芯片的状态进行监控。
在本披露的实施例中,对于所述神经网络,确定与神经网络待量化数据所对应的量化 参数,所述待量化数据包括神经元、权值、梯度、偏置中的至少一种;根据量化参数对对应的待量化数据进行量化,得到量化数据;根据得到的量化数据对神经网络进行运算。采用量化后的数据进行神经网络运算,能够在保证计算准确度的情况下,有效提高神经 网络的运算速度,降低对存储开销和运算器的面积功耗开销的需求,从而有效降低对软 硬件平台的开销需求,提高整体的运算效率,满足对软硬件开销和计算准确度上取得平 衡的需求。
根据下面参考附图对示例性实施例的详细说明,本披露的其它特征及方面将变得清楚。
附图说明
为了更清楚地说明本披露实施例的技术方案,下面将对实施例的附图作简单地介绍, 显而易见地,下面描述中的附图仅仅涉及本披露的一些实施例,而非对本披露的限制。
图1示出根据本披露实施例的神经网络运算方法的流程图;
图2示出根据本披露实施例的神经网络运算方法的流程图;
图3示出根据本披露实施例的神经网络运算方法的流程图;
图4示出根据本披露实施例的神经网络运算方法的流程图;
图5示出根据本披露实施例的神经网络运算方法中量化参数不包括偏移量时,量化 前后的数据对应示意图;
图6示出根据本披露实施例的神经网络运算方法的流程图;
图7示出根据本披露实施例的神经网络运算方法中量化参数包括偏移量时,量化前 后的数据对应示意图;
图8示出根据本披露实施例的神经网络运算方法的流程图;
图9示出根据本披露实施例的神经网络运算方法的流程图;
图10示出根据本披露实施例的神经网络运算方法的流程图;
图11示出根据本披露实施例的神经网络运算方法的流程图;
图12示出根据本披露实施例的神经网络运算方法的流程图;
图13示出根据本披露实施例的神经网络运算方法的流程图;
图14示出根据本披露实施例的神经网络运算方法的流程图;
图15示出根据本披露实施例的神经网络运算方法的流程图;
图16示出根据本披露实施例的神经网络运算方法的流程图;
图17示出根据本披露实施例的神经网络运算装置的示意图;
图18示出根据本披露实施例的板卡的结构框图。
具体实施方式
下面将结合本披露实施例中的附图,对本披露实施例中的技术方案进行清楚、完整 地描述,显然,所描述的实施例是本披露一部分实施例,而不是全部的实施例。基于本披露中的实施例,本领域技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本披露保护的范围。
应当理解,本披露的权利要求、说明书及附图中的术语“第一”、“第二”、“第三”和“第 四”等是用于区别不同对象,而不是用于描述特定顺序。本披露的说明书和权利要求书中 使用的术语“包括”和“包含”指示所描述特征、整体、步骤、操作、元素和/或组件的存在,但并不排除一个或多个其它特征、整体、步骤、操作、元素、组件和/或其集合的存在或 添加。
还应当理解,在此本披露说明书中所使用的术语仅仅是出于描述特定实施例的目的, 而并不意在限定本披露。如在本披露说明书和权利要求书中所使用的那样,除非上下文 清楚地指明其它情况,否则单数形式的“一”、“一个”及“该”意在包括复数形式。还应当进 一步理解,在本披露说明书和权利要求书中使用的术语“和/或”是指相关联列出的项中的 一个或多个的任何组合以及所有可能组合,并且包括这些组合。
在这里专用的词“示例性”意为“用作例子、实施例或说明性”。这里作为“示例性”所说 明的任何实施例不必解释为优于或好于其它实施例。
另外,为了更好的说明本披露,在下文的具体实施方式中给出了众多的具体细节。本领域技术人员应当理解,没有某些具体细节,本披露同样可以实施。在一些实例中, 对于本领域技术人员熟知的方法、手段、元件和电路未作详细描述,以便于凸显本披露 的主旨。
近年来,得益于人工智能技术的快速发展和计算机算力的不断提高,神经网络算法 能够在多个领域上取得巨大的成功,成为了快速发展的一个领域。但是随着神经网络的快速发展,待处理数据的规模不断提高,算法复杂度也在不断提升,因而给软硬件平台 都提出了更高的要求。常见的CPU等通用处理器为了保证计算的精确度,往往不断扩大 其支持的数据位宽,如32位单精度浮点数,64位双精度浮点数,甚至有128位浮点数。 显然,当数据位宽增加,软件方面,会大大降低运算速度,而硬件方面,相应的运算器 的面积和功耗都成比例的增加,相应的数据存储开销也会增大。因此,对于神经网络算 法,显然运算效率是十分低下的。
虽然已经有研究表明,对于神经网络算法而言,采用16位定点数据,可以在不影响精度的情况下大大降低其硬件开销,但是这只局限于推理阶段。对于神经网络的训练阶 段而言,依然需要采用浮点数进行训练,才能保证其训练的精度。显然,现有的方法中, 无法在神经网络的准确度和软硬件开销中取得有效的平衡。因此,面对上述问题,本披 露提出一种神经网络运算方法及装置以及相关产品,对神经网络的待处理数据进行量化, 并基于量化后的数据进行运算,从而能够在保证准确度的情况下,大大降低软硬件开销。
下面结合附图,对本披露实施例提供的一种神经网络运算方法及装置以及相关产品的 具体实施方式进行详细说明。
图1示出根据本披露实施例的神经网络运算方法的流程图。该神经网络的运算方法可 应用于通用处理器(例如中央处理器CPU、图形处理器GPU)和专用处理器(例如人工智能处理器、科学计算处理器或数字信号处理器等)中,本披露对神经网络量化方法所 应用的处理器的类型不作限制。
如图1所示,所述神经网络运算方法包括:
步骤S10,确定与神经网络待量化数据所对应的量化参数,所述待量化数据包括神经 元、权值、梯度、偏置中的至少一种。
神经网络待量化数据可以为一个神经网络中的所有数据,也可以为一个神经网络中的 某几层的全部数据,也可以为一个神经网络中的某几层的部分数据,如处理器一次处理 的数据规模。这里待处理数据可以执行卷积运算、全连接运算、池化运算等,也可以执行神经网络训练过程中的前向传递阶段的运算和/或反向传递阶段的运算。在本披露中,对模型的规模、运算的类型和运算的阶段不作限定。
在一种可能的实现方式中,所述的待量化数据包括神经元、偏置、梯度、权值中的至 少一种。
用于执行神经网络运算的待运算数据可以包括神经元、偏置、梯度、权值,其中梯度 可进一步包括权值梯度和神经元梯度。可以根据需求,将神经网络的待运算数据的至少一种作为待量化数据。当运算过程中包括多种待量化数据,可分别利用本披露中的量化 方法对每种待量化数据进行量化,得到与每种待量化数据相应的量化数据,进行运算。
在运算过程中,对同一数据可以只量化一次,也可以量化多次。以训练运算为例,在 前向传递过程中利用量化方法得到相应的量化数据后,在反向传递过程中继续沿用之前 得到的量化数据;又如在前向传递过程中利用量化方法得到相应的量化数据后,在反向传递过程中使用未量化的数据;也可以对同一数据量化多次,如在不同阶段分别进行量化,即在前向传递过程中利用量化方法得到相应的量化数据,在反向传递过程中再次利 用量化方法得到相应的量化数据。
在量化过程中,可以对所有待量化数据利用本披露所述的量化方法进行量化得到相应 的量化数据,也可以对部分待量化数据利用本披露所述的量化方法进行量化得到相应的 量化数据。本披露对此不做限定。
与神经网络待量化数据对应的量化参数包括点位置、缩放系数和偏移量中的至少一种。 对于不同的待量化数据,可以对应相同类型和/或相同数量的量化参数,可以对应不同类 型和/或不同数量的量化参数,如对于待量化数据1,可以对应点位置1和缩放系数1;对于待量化数据2,可以对应偏移量1;对于待量化数据3,可以对应点位置1、缩放系 数2和偏移量2。其中,所述量化参数可以在每次迭代中进行调整,也可以在指定迭代中 进行调整。调整后的量化参数可以在当前迭代中直接使用,也可以在下次迭代中开始使 用。本披露对此不做限定。
确定待量化数据的量化参数的方法可以采用查表法,即通过查表的方式,查找出与待 量化数据对应的预设的量化参数。也可以根据待量化数据和对应的数据位宽确定,其中 数据位宽可以使用预设值,也可以使用在运算中对其更新的更新值。
步骤S20,根据所述量化参数对对应的所述待量化数据进行量化,得到量化数据。
可以利用设定的量化参数对对应的待量化数据进行量化。其中,所述量化方法可以包 括取整、缩放、移位等操作,也可以是多种操作的组合。当神经网络包括多种待量化数据时,可以分别根据对应的量化参数,对待量化数据分别进行量化。
在一种可能的实现方式中,所述量化参数包括点位置、缩放系数和偏移量中的至少一 种,其中,所述点位置为量化后小数点的位置,所述缩放系数为量化后数据的最大值与 待量化数据的最大绝对值之间的比值,所述偏移量为待量化数据的中间值。
在一种可能的实现方式中,量化参数可以包括点位置。可以利用如下的公式(1)对待量化数据进行量化,得到量化数据Ix
Figure BDA0002207775520000041
其中,s为点位置,Ix为量化数据,Fx为待量化数据,round为进行四舍五入的取整运算。可以理解的是,也可以采用其他的取整运算方法,例如采用向上取整、向下取整、 向零取整等取整运算,替换公式(1)中的四舍五入的取整运算。可以理解的是,在数据 位宽一定的情况下,根据点位置量化得到的量化数据中,小数点后的位数越多,量化数 据的量化精度越大。
在一种可能的实现方式中,量化参数可以包括缩放系数。可以利用如下的公式(2)对待量化数据进行量化,得到量化数据Ix
Figure BDA0002207775520000042
其中,f为缩放系数,Ix为量化数据,Fx为待量化数据,round为进行四舍五入的取整运算。可以理解的是,也可以采用其他的取整运算方法,例如采用向上取整、向下取 整、向零取整等取整运算,替换公式(2)中的四舍五入的取整运算。可以理解的是,在 数据位宽一定的情况下,采用不同的缩放系数,可以调整量化后数据的数值范围。
在一种可能的实现方式中,量化参数可以包括偏移量。可以利用如下的公式(3)对待量化数据进行量化,得到量化数据Ix
Ix=round(Fx-o)公式(3)
其中,o为偏移量,Ix为量化数据,Fx为待量化数据,round为进行四舍五入的取整运算。可以理解的是,也可以采用其他的取整运算方法,例如采用向上取整、向下取整、 向零取整等取整运算,替换公式(3)中的四舍五入的取整运算。可以理解的是,在数据 位宽一定的情况下,采用不同的偏移量,可以调整量化后数据的数值与量化前数据之间 的偏移量。
在一种可能的实现方式中,量化参数可以包括点位置和缩放系数。可以利用如下的 公式(4)对待量化数据进行量化,得到量化数据Ix
Figure BDA0002207775520000043
其中,s为点位置,f为缩放系数,Ix为量化数据,Fx为待量化数据,round为进行四舍五入的取整运算。可以理解的是,也可以采用其他的取整运算方法,例如采用向上取 整、向下取整、向零取整等取整运算,替换公式(4)中的四舍五入的取整运算。
在一种可能的实现方式中,量化参数可以包括点位置和偏移量。可以利用如下的公 式(5)对待量化数据进行量化,得到量化数据Ix
Figure BDA0002207775520000051
其中,s为点位置,o为偏移量,Ix为量化数据,Fx为待量化数据,round为进行四舍五入的取整运算。可以理解的是,也可以采用其他的取整运算方法,例如采用向上取整、 向下取整、向零取整等取整运算,替换公式(5)中的四舍五入的取整运算。
在一种可能的实现方式中,量化参数可以包括点位置、缩放系数和偏移量。可以利用如下的公式(6)对待量化数据进行量化,得到量化数据Ix
Figure BDA0002207775520000052
其中,s为点位置,f为缩放系数,o为偏移量,Ix为量化数据,Fx为待量化数据,round为进行四舍五入的取整运算。可以理解的是,也可以采用其他的取整运算方法,例如采 用向上取整、向下取整、向零取整等取整运算,替换公式(6)中的四舍五入的取整运算。
在本实施例中,量化参数包括点位置、缩放系数和偏移量中的至少一种。采用不同的量化参数的组合对待量化数据进行量化,可以产生不同精度的量化结果。可以根据需 求对量化参数进行灵活组合后按需取用。
步骤S30,根据所述量化数据对神经网络进行运算。
根据量化数据对神经网络进行运算,所述运算包括推理运算、训练运算和微调运算中 的至少一种,包括部分运算或者整体运算,例如推理运算中的某几层运算或者,某几层 中的某一部分运算,也可以是整个神经网络的运算。又如可以执行前向传递阶段和反向传递阶段,其中反向传递阶段又可以进一步细分为传播阶段和权值更新阶段。所述量化 数据可以在其中某个或某几个阶段进行,也可以在整个运算过程中进行,本披露对此不 做限定。
在本实施例中,确定与神经网络待量化数据所对应的量化参数,所述待量化数据包括 神经元、权值、梯度、偏置中的至少一种;根据所述待量化数据包括神经元、权值、梯度、偏置中的至少一种;根据所述量化参数对对应的所述待量化数据进行量化,得到量 化数据;根据所述量化数据对神经网络进行运算。
采用这样的运算方法,选取与待量化数据对应的量化参数,能够更有针对性的对待量 化数据进行量化。这样,一方面能够最大限度的利用量化数据保留待量化数据的信息, 从而最大可能的保证计算准确度;另一方面,能够通过量化有效将浮点数量化为定点数, 或者将高精度或者高位宽的定点数量化为相应的低精度或低位宽的定点数,有效降低了 相应的硬件运算器的面积和功耗开销,同时降低了存储开销,从而降低了对硬件平台资源的需求,同时提高了运算速度和效率,相当于减轻了软件开销的压力,因此可以认为 在准确度和软硬件平台资源开销之间取得了很好的平衡。
图2示出了根据本披露实施例的神经网络运算方法的流程图。如图2所示,神经网络 运算方法中的步骤S10包括:
步骤S11,通过查找待量化数据与量化参数对应关系,确定与所述待量化数据所对应 的量化参数。
在一种可能的实现方式中,神经网络的待量化数据与对应的量化参数可以是预设的, 其相应的关系表保存在片上或者片外的某一存储区域中,在使用的时候,通过查表的方 式获取其相应的量化参数,从而确定待量化数据对应的量化参数。其中,对于不同的待量化数据可以采用一对一的对应方式,即对于一个或一组待量化数据对应一个或一组量化参数;也可以采用多对一的对应方式,即对于多个或多组待量化数据对应一个或一组 量化参数;也可以采用一对多的对应方式,即对于一个或一组待量化数据对应多个或多 组量化参数,如前向传递阶段和反向传递阶段,同一待量化数据分别对应不同的量化参 数。本披露对待量化数据和量化参数之间的对应关系不做限定。
采用查表的方式查找待量化数据与量化参数之间对应关系,能够方便快捷的确定所 需的量化参数,能够提高量化效率,从而提高整体的执行效率,降低整体的运算开销。
图3示出了根据本披露实施例的神经网络运算方法的流程图。如图3所示,神经网络 运算方法中的步骤S10包括:
步骤S12,根据待量化数据和对应的数据位宽确定所述量化参数,其中,所述数据位 宽,用于表示量化数据的位数。
对每种待量化数据预设相应的数据位宽,如n,根据数据位宽n来计算得到对应的量 化参数。对于不同类型的待量化数据可以采用相同的数据位宽也可以采用不同的数据位 宽。在训练过程中,数据位宽可以固定不变,也可以根据需求进行调整。
利用待量化数据和对应的数据位宽来确定对应的量化参数,可以根据数据调整所需要 的量化参数,从而能够更为灵活、更具有针对性,从而能够有效提高训练准确度。
在一种可能的实现方式中,神经网络的待量化数据与对应的量化参数可以是预设的和 通过计算的方式获取组合的,如对于同一组待量化数据,其中一种对应的量化参数是预 设的,另一种对应的量化参数是通过计算的方式获取的。具体举例,对于待量化数据AA,对应两种量化参数,为点位置BB和偏移量CC,可以通过AA和AA对应的数据位宽计 算得到点位置BB,并通过查表的方式获得偏移量CC。
图4示出了根据本披露实施例的神经网络运算方法的流程图。如图4所示,神经网络 运算方法中的步骤S12包括:
步骤S121,当所述量化参数不包括偏移量时,目标数据的点位置由所述目标数据的 绝对值最大值和所述目标数据对应的数据位宽确定,所述目标数据为任意一种待量化数 据。
在一种可能的实现方式中,量化参数可以包括点位置而不包括偏移量时,将任一待量 化数据作为目标数据,目标数据可以为神经元、权值、梯度、偏置中的任意一种。获取目标数据的点位置的方法可以为通过获取目标数据的绝对值最大值,利用绝对值最大值获得目标数据的点位置。这里对获取绝对值最大值的方法不做限定,譬如可以通过记录 最大值和最小值,最后对两个最大值和最小值的绝对值进行比较得到绝对值最大值,也 可以通过依次比较每个元素的绝对值,始终记录当前的绝对值最大值从而得到最终的绝 对值最大值。
图5示出根据本披露实施例的神经网络运算方法中量化参数不包括偏移量时,量化前 后的数据对应示意图。如图5所示,Z1为目标数据中的绝对值最大值,目标数据对应的数据位宽n为8,A为用n量化目标数据后可以表示的最大值,A为2s(2n-1-1)。A需 要包含Z1,且Z1要大于
Figure BDA0002207775520000062
,可以用公式(7)对此进行约束:
2s(2n-1-1)≥Z1>2s-1(2n-1-1)公式(7)
可以根据目标数据中的绝对值最大值和数据位宽,计算得到目标数据的点位置。例如, 可以利用如下公式(8)计算得到量化参数不包括偏移量时,目标数据的点位置s:
Figure BDA0002207775520000061
其中,ceil为向上取整,Z1为目标数据中的绝对值最大值,s为目标数据的点位置,n 为目标数据对应的数据位宽。
在本实施例中,当所述量化参数不包括偏移量时,根据目标数据中的绝对值最大值和 所述目标数据对应的数据位宽,得到所述目标数据的点位置。根据目标数据计算得到与 之对应的点位置,可以更加符合目标数据自身的特征,使得目标数据的量化精度更高。图6示出了根据本披露实施例的神经网络运算方法的流程图。如图6所示,神经网络运 算方法中的步骤S12包括:
步骤S122,当所述量化参数包括偏移量时,目标数据的点位置由所述目标数据的最 大值、最小值和所述目标数据对应的数据位宽确定,所述目标数据为任意一种待量化数据。
在一种可能的实现方式中,量化参数包括点位置和偏移量,将任一待量化数据作为目 标数据,目标数据可以为神经元、权值、梯度、偏置中的任意一种。获取目标数据的点位置的方法可以为通过获取目标数据的最大值和最小值,利用目标数据的最大值和最小值以及目标数据对应的数据位宽确定所述目标数据的点位置。
图7示出根据本披露实施例的神经网络运算方法中量化参数包括偏移量时,量化前后 的数据对应示意图。如图7所示,A1和A2为用n量化目标数据后可以表示的最大值和最小值,Zmin为目标数据中所有元素的最小值,Zmax为目标数据中所有元素的最大值,
Figure BDA0002207775520000071
可以将目标数据按照偏移量o进行平移后,再进行量化。
可以根据目标数据中的最大值、最小值和数据位宽,计算得到目标数据的点位置。例 如,可以根据公式(9)计算得到量化参数包括偏移量时目标数据的点位置s:
Figure BDA0002207775520000072
其中,ceil为向上取整,s为点位置,n为目标数据对应的数据位宽。
在本实施例中,由于增加了偏移量,可以更具有针对性的利用目标数据自身的数据分 布特性,从而提高数据表达效率,在相同的数据位宽中可以表示更多的数据,从而使得 量化精度更高。
图8示出了根据本披露实施例的神经网络运算方法的流程图。如图8所示,神经网络运 算方法中的步骤S12包括:
步骤S123,当所述量化参数不包括偏移量时,根据所述目标数据对应的数据位宽确 定所述目标数据的量化后数据的最大值。
步骤S124,根据所述目标数据的绝对值最大值和所述目标数据的量化后数据的最大 值,得到所述目标数据的缩放系数。
在一种可能的实现方式中,量化参数包括缩放系数且不包括偏移量时,将任一待量化 数据作为目标数据,目标数据可以为神经元、权值、梯度、偏置中的任意一种。目标数据中的绝对值最大值可参照上述实施例中的相关阐述。
可以利用公式(10)计算得到量化参数包括点位置不包括偏移量时,目标数据的缩放 系数f:
Figure BDA0002207775520000073
其中,A为量化参数不包括偏移量时,目标数据量化后数据的最大值,可以利用公式 (11)计算A:
Figure BDA0002207775520000074
可以利用公式(12)计算得到量化参数不包括点位置和偏移量时,目标数据的缩放系 数f:
Figure BDA0002207775520000075
其中,ceil为向上取整,Z1为目标数据中的绝对值最大值,s为目标数据的点位置,n 为目标数据对应的数据位宽,A为量化参数不包括偏移量时,目标数据量化后数据的最大值,可以利用上述公式(11)计算A。
图9示出了根据本披露实施例的神经网络运算方法的流程图。如图9所示,神经网络运 算方法中的步骤S12包括:
步骤S125,当所述量化参数包括偏移量时,根据所述目标数据对应的数据位宽确定 所述目标数据的量化后的最大值。
步骤S126,根据所述目标数据的最大值、最小值和所述目标数据的量化后数据的最 大值,得到所述目标数据的缩放系数。
如图7所示,可以根据公式(13)计算得到量化参数包括偏移量和点位置时目标数据 的缩放系数f:
Figure BDA0002207775520000081
其中,A1和A2为用n量化目标数据后可以表示的最大值和最小值,Zmin为目标数 据中所有元素的最小值,Zmax为目标数据中所有元素的最大值,
Figure BDA0002207775520000082
可以将 目标数据按照偏移量o进行平移后,再进行量化。
也可以根据公式(14)计算得到量化参数包括偏移量不包括点位置时目标数据的缩 放系数f:
Figure BDA0002207775520000083
其中,ceil为向上取整,s为点位置,n为目标数据对应的数据位宽。A1、A2和Z2的定义同上。
在本实施例中,当所述量化参数包括偏移量,根据目标数据对应的数据位宽确定目 标数据量化后的最大值,根据所述目标数据的最大值、最小值和所述目标数据的量化后数据的最大值,分别得到在包括所述目标数据的点位置和不包括所述目标数据的点位置时的缩放系数。对量化数据进行缩放,从而能够更加符合数据的表示规律,提高目标数 据表示的有效率,提高目标数据的量化精度。
图10示出了根据本披露实施例的神经网络运算方法的流程图。如图10所示,神经网 络训练方法中的步骤S12包括:
步骤S127,所述目标数据的偏移量由所述目标数据的最大值和最小值确定,所述目 标数据为任意一种待量化数据。
可以利用公式(15)计算得到量化参数包括偏移量时目标数据的偏移量o:
Figure BDA0002207775520000084
在本实施例中,根据目标数据的最大值和最小值确定所述目标数据的偏移量,更加符 合数据的分布规律,避免了数据分布不均匀、不对称时导致的部分表示数据的无意义性, 从而提高了目标数据表示的有效率,提高目标数据的量化精度。
图11示出了根据本披露实施例的神经网络运算方法的流程图。如图11所示,神经网络运算方法还包括:
步骤S40,根据目标数据和目标数据对应的量化数据确定所述量化数据的量化误差, 所述目标数据为任意一种待量化数据。
所述量化数据的误差可以由目标数据Fx与对应的量化数据Ix之间的平均误差、均方误 差等确定,也可以将目标数据的量化数据Ix进行反量化后得到目标数据的反量化数据
Figure BDA0002207775520000085
利用所述目标数据的反量化数据
Figure BDA0002207775520000086
与对应的目标数据Fx得到所述目标数据的量化误差 diffbit。其中,将目标数据的量化数据Ix进行反量化后得到目标数据的反量化数据
Figure BDA0002207775520000087
可以 为:
当量化参数包括点位置时,可以根据公式(16)对目标数据的量化数据进行反量化, 得到目标数据的反量化数据
Figure BDA0002207775520000088
Figure BDA0002207775520000089
其中:round为取整运算,
Figure BDA00022077755200000810
为目标数据的反量化数据,s为目标数据对应的点位置。
当量化参数包括缩放系数时,可以根据公式(17)对目标数据的量化数据进行反量化,得到目标数据的反量化数据
Figure BDA00022077755200000811
Figure BDA00022077755200000812
其中:round为取整运算。
Figure BDA00022077755200000813
为目标数据的反量化数据,f为缩放系数。
当量化参数包括偏移量时,可以根据公式(18)对目标数据的量化数据进行反量化, 得到目标数据的反量化数据
Figure BDA0002207775520000091
Figure BDA0002207775520000092
其中:round为取整运算。
Figure BDA0002207775520000093
为目标数据的反量化数据,o为缩放系数。
当量化参数包括点位置和缩放系数时,可以根据公式(19)对目标数据的量化数据进行反量化,得到目标数据的反量化数据
Figure BDA0002207775520000094
Figure BDA0002207775520000095
当量化参数包括点位置和偏移量时,可以根据公式(20)对目标数据的量化数据进行反量化,得到目标数据的反量化数据
Figure BDA0002207775520000096
Figure BDA0002207775520000097
当量化参数包括缩放系数和偏移量时,可以根据公式(21)对目标数据的量化数据进行反量化,得到目标数据的反量化数据
Figure BDA0002207775520000098
Figure BDA0002207775520000099
当量化参数包括点位置、缩放系数和偏移量时,可以根据公式(22)对目标数据的量化数据进行反量化,得到目标数据的反量化数据
Figure BDA00022077755200000910
Figure BDA00022077755200000911
上述取整运算可以为四舍五入取整运算,也可以为向上取整运算、向零取整运算等, 本披露对此不做限定。
利用所述目标数据的反量化数据
Figure BDA00022077755200000912
与对应的目标数据Fx得到所述目标数据的量化误 差diffbit可以为:
可以通过计算量化间隔相关的方法,例如可以通过公式(23)计算得到目标数据与目标数据对应的反量化数据之间的误差diffbit
Figure BDA00022077755200000913
其中,B为量化间隔,p为目标数据中的各元素的数量,s为目标数据的点位置。B的取值可以根据量化参数进行确定,当量化参数包括点位置s时,B=2s;当量化参数包括点位置s和缩放系数f时,B=2s×f。
也可以通过计算两个数据的均值之间的差的方法,例如通过公式(24)计算得到目标数据与目标数据对应的反量化数据之间的误差diffbit
Figure BDA00022077755200000914
也可以通过计算两个数据的差之间的均值的方法,例如通过公式(25)计算得到目标数据与目标数据对应的反量化数据之间的误差diffbit
Figure BDA00022077755200000915
步骤S50,根据所述量化误差和误差阈值,调整所述目标数据对应的数据位宽得到所 述目标数据调整后的数据位宽。
所述误差阈值用于表示期望的量化误差范围。可以采用预设的固定的误差阈值。也可 以采用预设的初始值,而后随着运算进行调整。当处于不同的运算阶段,误差阈值的调 整方式可以相同也可以不同。例如对于训练阶段,误差阈值每次调整的幅度较大;对于微调阶段,数据较为稳定,误差阈值可以每次调整的幅度较小。也可以根据量化参数进 行调整,例如误差阈值采用和目标数据相同的点位置,当目标数据的点位置改变时,误 差阈值随之改变。
根据所述量化误差和误差阈值调整所述目标数据对应的数据位宽,可以为所述量化误 差和误差阈值的比较结果,也可以通过所述量化误差和误差阈值的绝对值的比值结果, 对数据位宽进行增大、减小或者保持不变。
步骤S60,根据所述目标数据调整后的数据位宽,调整所述目标数据对应的量化参数 得到调整后的量化参数。
根据调整后的数据位宽,可以对目标数据对应的量化参数进行相应的调整。可以根据 上述公式(8)至公式(15)中所述的公式调整所需要的量化参数,包括目标数据的点位置、缩放系数和/或偏移量,得到调整后的目标数据的点位置、缩放系数和/或偏移量。
步骤S70,根据所述调整后的量化参数对所述目标数据进行量化,得到所述目标数据 对应的调整后的量化数据。
步骤S80,根据所述目标数据对应的调整后的量化数据对神经网络进行运算。
根据调整后的量化数据对神经网络进行运算,包括推理运算、训练运算和/或微调运算, 可以执行其中的部分运算可以执行全部运算,还可以执行其中某一个阶段的运算,例如 训练阶段的前向传递阶段、反向传递阶段中的传播阶段和/或权值更新阶段。
在本实施例中,根据目标数据和目标数据对应的量化数据确定所述量化数据的量化 误差,所述目标数据为任意一种待量化数据;根据所述量化误差和误差阈值,调整所述目标数据对应的数据位宽得到所述目标数据调整后的数据位宽;根据所述目标数据调整后的数据位宽,调整所述目标数据对应的量化参数得到调整后的量化参数;根据所述调 整后的量化参数对所述目标数据进行量化,得到所述目标数据对应的调整后的量化数据; 根据所述目标数据对应的调整后的量化数据对神经网络进行运算。从而能够根据目标数 据和目标数据对应的量化误差调整量化相关的数据位宽和量化参数,从而使得量化参数 能够更符合目标数据的数据特征和数据分布,提高数据表示的有效率,降低数据量化所 带来的量化误差,从而整体提高神经网络运算的准确率。
图12示出了根据本披露实施例的神经网络运算方法的流程图。如图12所示,所述神 经网络运算方法中的步骤S50还包括:
步骤S51,当所述量化误差大于第一误差阈值时,增加所述数据位宽,得到所述调整 后的数据位宽。
当量化误差大于第一误差阈值时,目标数据对应的量化数据的精度损失过大,从而会 大大影响神经网络运算的精确度。于是增加所述数据位宽,以提高目标数据对应的量化 数据的表示精度。其中,可以每次增加预设的固定长度的数据位宽,例如当原目标数据的量化数据位宽为8位,第一次调整时增加4位,第二次调整时也增加4位。对于不同 的运算阶段,所述的预设的固定长度的数据位宽可以相同也可以不同,例如对于训练阶 段,每次增加8位,而对于微调阶段,每次增加4位。对于不同类型的待量化数据,所 述的预设的固定长度的数据位宽可以相同也可以不同,例如对于神经元数据,每次增加2 位,对于梯度数据,每次增加4位。
在本实例中,当所述量化误差大于第一误差阈值时,增加所述数据位宽,得到所述调 整后的数据位宽,从而能够根据量化误差和第一误差阈值的比较结果获悉当前的目标数 据的数据位宽所对应的目标数据的量化数据的表示精度是不够的,因此通过增大目标数 据的数据位宽,提高对应的量化数据的表示精度,从而提高神经网络的运算准确度。对于不同阶段、不同待量化数据的类型,设置不同的预设的调整的数据位宽,更具有针对 性的适配不同数据在不同阶段的数据特征,提高数据调整的效率,减少数据位宽调整次 数,从而降低在软硬件平台上调整数据位宽所带来的时间和资源开销。
图13示出了根据本披露实施例的神经网络运算方法的流程图。如图13所示,所述神 经网络运算方法还包括:
步骤S52,根据调整后的数据位宽和所述目标数据计算所述目标数据调整后的量化误 差。
步骤S53,根据所述调整后的量化误差和所述第一误差阈值继续增加所述数据位宽, 直到根据所述调整后的数据位宽计算得到的调整后的量化误差不大于所述第一误差阈值。
根据目标数据调整后的量化误差,多次对所述数据目标数据的数据位宽进行调整,即 增加数据位宽,直到调整后的量化误差满足给定条件,即调整后的量化误差不大于第一 误差阈值。每次对数据位宽的增加量可以相同也可以不同,例如第一次对数据位宽增加8 位,第二次和第三次均增加8位。或者第一次增加8位,第二次增加4位,第三次增加2位。每次对数据位宽的增加量可以为预设值,也可以为变化量,上例中每次增加的数据 位宽都是预设的数值,也可以为预设的规则,例如给定初始增加值8位,而后每次增加 量为前一次的1/2位,即4位、2位,达到指定最小值2位,则之后每次固定增加2位。
在本实施例中,根据调整后的数据位宽和所述目标数据计算所述目标数据调整后的量 化误差;根据所述调整后的量化误差和所述第一误差阈值继续增加所述数据位宽,直到根 据所述调整后的数据位宽计算得到的调整后的量化误差不大于所述第一误差阈值。采用 这样的方式,能够在当前运算中对数据进行多次调整,直到在当前运算中满足条件,而 后再进行整体运算,从而避免了在数据未达到所需要求就进行整体运算所带来的无效运 算,节省了调整的时间和调整和运算所带来的资源的开销。
图14示出了根据本披露实施例的神经网络运算方法的流程图。如图14所示,所述神 经网络运算方法中的步骤S50还包括:
步骤S54,当所述量化误差小于第二误差阈值时,减小所述数据位宽,得到所述调整 后的数据位宽。
当量化误差小于第二误差阈值时,目标数据所需的量化位宽已远超预期,即虽然保证 了数据的表示精度,但是大大增大了存储开销和运算开销。因此减小所述的数据位宽, 以提高对软硬件资源的有效利用。其中,可以每次减小预设的固定长度的数据位宽,例如当原目标数据的量化数据位宽为32位,第一次调整时减小4位,第二次调整时也减小 4位。对于不同的运算阶段,所述的预设的固定长度的数据位宽可以相同也可以不同,例 如对于训练阶段,每次较小4位,而对于微调阶段,每次减小2位。对于不同类型的待 量化数据,所述的预设的固定长度的数据位宽可以相同也可以不同,例如对于神经元数 据,每次减小2位,对于梯度数据,每次减小4位。
在本实例中,当所述量化误差小于第二误差阈值时,减小所述数据位宽,得到所述调 整后的数据位宽,从而能够根据量化误差和第二误差阈值的比较结果获悉采用当前的目 标数据的数据位宽来量化目标数据是足够的,但是会对软硬件平台的资源开销造成大量 的浪费。因此通过减小目标数据的数据位宽的方式,以降低软硬件平台的资源开销方面的浪费。对于不同阶段、不同待量化数据的类型,设置不同的预设的调整的数据位宽, 更具有针对性的适配不同数据在不同阶段的数据特征,提高数据调整的效率,减少数据 位宽调整次数,从而降低在软硬件平台上调整数据位宽所带来的时间和资源开销。
图15示出了根据本披露实施例的神经网络运算方法的流程图。如图15所示,所述神 经网络运算方法还包括:
步骤S55,根据所述调整后的数据位宽和所述目标数据计算所述目标数据调整后的量 化误差。
步骤S56,根据所述调整后的量化误差和所述第二误差阈值,继续减小所述数据位宽, 直到根据所述调整后的数据位宽计算得到的调整后的量化误差不小于所述第二误差阈值。
根据目标数据调整后的量化误差,多次对所述目标数据的数据位宽进行调整,即减少 数据位宽,直到调整后的量化误差满足给定条件,即调整后的量化误差不小于第二误差 阈值。每次对数据位宽的减少量可以相同也可以不同,例如第一次对数据位宽减少2位,第二次和第三次均减少2位。或者第一次减少4位,第二次减少2位,第三次减少1位。 每次对数据位宽的减少量可以为预设值,也可以为变化量,上例中每次减少的数据位宽 都是预设的数值,也可以为预设的规则,例如给定初始减少值4位,而后每次减少量为 前一次的1/2位,即2位、1位,达到指定最小值1位,则之后每次固定减少1位。
在本实施例中,根据所述调整后的数据位宽和所述目标数据计算所述目标数据调整后 的量化误差;根据所述调整后的量化误差和所述第二误差阈值,继续减小所述数据位宽, 直到根据所述调整后的数据位宽计算得到的调整后的量化误差不小于所述第二误差阈值。 采用这样的方式,能够在当前运算中对数据进行多次调整,直到在当前运算中满足条件, 而后再进行整体运算,从而避免了在数据未达到所需要求就进行整体运算所带来的无效 运算,节省了调整的时间和调整和运算所带来的资源的开销。
在一种可能的实现方式中,所述方法还包括:
当所述量化误差大于第一误差阈值时,增加所述数据位宽,得到所述调整后的数据位 宽;当所述量化误差小于第二误差阈值时,减小所述数据位宽,得到所述调整后的数据 位宽。
同时设置第一误差阈值和第二误差阈值,可以对两个阈值设置优先级,例如优先比较 第一误差阈值,所述量化误差大于第一误差阈值,表示所属量化数据的表示精度不够, 需要对所述数据位宽进行增大。否则,再将量化误差与第二误差阈值进行比较,以判断是否需要对所述数据位宽进行减小。也可以对两个阈值进行同时比较,当量化误差大于 第一误差阈值时,增加所述数据位宽;当量化误差小于第二误差阈值时,减小所述数据 位宽;当量化数据不大于第一误差阈值且不小于第二误差阈值时,所述数据位宽保持不 变。
在一种可能的实现方式中,所述神经网络运算方法还包括:
根据当前迭代中目标数据的数据变动幅度和历史迭代中所述目标数据的数据变动幅 度,确定目标迭代间隔,以使所述神经网络根据所述目标迭代间隔更新所述目标数据的 量化参数。
其中历史迭代间隔为所述当前迭代之前的迭代,可以包括当前迭代之前的多个迭代。 所述目标迭代间隔至少包括一次迭代。
在神经网络运算的微调阶段和/或训练阶段包括多个迭代。神经网络中的各待量化层, 在进行一次正向运算和一次反向运算,并对待量化层的权值进行更新后,完成一次迭代。 在多次迭代中,待量化层中的目标数据和/或目标数据对应的量化数据的数据变动幅度, 可以用于衡量在不同迭代中的目标数据和/或量化数据是否可采用相同的量化参数进行 量化。若当前迭代以及历史迭代中目标数据的数据变动幅度较小,例如小于设定的幅度 变动阈值时,可以在多个数据变动幅度较小的多个迭代中采用相同的量化参数。
可以通过提取预存的量化参数的方式,确定与目标数据对应的量化参数。在不同的 迭代中对目标数据进行量化时,需要在各迭代提取与目标数据对应的量化参数。若多个迭代的目标数据和/或目标数据对应的量化数据的数据变动幅度较小,可将在数据变动幅度较小的多个迭代中采用的相同的量化参数进行暂存,各迭代在进行量化时可以利用暂存的量化参数进行量化运算,不用在每次迭代提取量化参数。
也可以根据目标数据和数据位宽计算得到量化参数。在不同的迭代中对目标数据进 行量化时,需要在各迭代分别计算量化参数。若多个迭代的目标数据和/或目标数据对应 的量化数据的数据变动幅度较小,可将在数据变动幅度较小的多个迭代中采用相同的量 化参数,则各迭代均可以直接使用其中第一个迭代计算得到的量化参数,而不是每次迭代计算量化参数。
可以理解的是,当目标数据为权值时,各迭代之间的权值在不断更新,若多个迭代的权值的数据变动幅度较小,或多个迭代的权值对应的量化数据的数据变动幅度较小, 可以在多个迭代中利用相同的量化参数对权值进行量化。
可以根据目标数据的数据变动幅度确定目标迭代间隔,目标迭代间隔包括至少一次 迭代,可以在目标迭代间隔内的各迭代使用相同的量化参数,即在目标迭代间隔内的各迭代不再更新目标数据的量化参数。神经网络根据目标迭代间隔更新目标数据的量化参数,包括在目标迭代间隔内的迭代,不获取预设的量化参数或不计算量化参数,即在目 标迭代间隔内的迭代不更新量化参数。而在目标迭代间隔外的迭代,再获取预设的量化 参数或计算量化参数,即在目标迭代间隔外的迭代更新量化参数。
可以理解的是,多个迭代之间的目标数据或目标数据的量化数据的数据变动幅度越 小,确定出的目标迭代间隔包括的迭代次数越多。可以根据计算得到的数据变动幅度,查找预设的数据变动幅度与迭代间隔的对应关系,确定与计算得到的数据变动幅度对应的目标迭代间隔。可以根据需求预设数据变动幅度与迭代间隔的对应关系。也可以根据 计算得到的数据变动幅度,利用设定的计算方法计算得到目标迭代间隔。本披露不限定 数据变动幅度的计算方式,以及目标迭代间隔的获取方式。
在本实施例中,在神经网络运算的微调阶段和/或训练阶段,获取当前迭代以及历史 迭代中目标数据的数据变动幅度,根据所述目标数据的数据变动幅度,确定目标数据对应的目标迭代间隔,以使所述神经网络根据所述目标迭代间隔更新所述目标数据的量化参数。可以根据多个迭代中目标数据或目标数据对应的量化数据的数据变动幅度,确定 目标迭代间隔。神经网络可以根据目标迭代间隔确定是否更新量化参数。由于目标迭代 间隔所包括的多个迭代的数据变动幅度较小,目标迭代间隔内的迭代不更新量化参数也 可以保证量化精度。而目标迭代间隔内的多个迭代不更新量化参数,可以减少量化参数 的提取次数或计算次数,从而提高神经网络的运算效率。
在一种可能的实现方式中,所述神经网络运算方法中还包括:
根据当前迭代中目标数据的数据位宽,确定所述目标数据在所述目标迭代间隔内迭代 所对应的数据位宽,以使所述神经网络根据所述目标数据在所述目标迭代间隔内迭代所 对应的数据位宽,确定所述目标数据所对应的量化参数。
如本披露上述实施例所述,目标数据的量化参数可以预设,也可以根据目标数据对 应的数据位宽计算得到。而不同待量化层中目标数据对应的数据位宽,或相同待量化层中目标数据在不同迭代中对应的数据位宽,可以根据本披露上述实施例中的方式进行自适应调整。
当目标数据的数据位宽不可自适应调整,为预设的数据位宽时,可以根据目标数据 在当前迭代的预设的数据位宽,确定目标数据在目标迭代间隔内的迭代对应的数据位宽。 在目标迭代间隔内的各迭代可不使用自身的预设值。
当目标数据的数据位宽可自适应调整时,可以根据目标数据在当前迭代对应的数据 位宽,确定目标数据在目标迭代间隔内的迭代对应的数据位宽。在数据位宽可自适应调整时,包括数据位宽可进行一次调整或多次调整,可以将目标数据在当前迭代进行自适 应调整后的数据位宽,作为目标迭代间隔内的各迭代对应的数据位宽,在目标迭代间隔 内的各迭代不再对数据位宽进行自适应调整(更新)。目标数据在当前迭代可以使用自适 应调整后的数据位宽,也可以使用自适应调整前的数据位宽,本披露对此不作限定。
在目标迭代间隔以外的其他迭代,由于目标数据的数据变动幅度不满足设定条件, 可以根据本披露上述的方法对数据位宽进行自适应调整,得到更加符合当前迭代的目标 数据的数据位宽,也可使用本披露中的目标迭代间隔的计算方法,计算得到新的目标迭代间隔并使用,从而在保证目标迭代间隔以外的迭代的量化精度的同时,提高神经网络 的运行效率。
在目标迭代间隔内的各迭代的数据位宽相同,各迭代可以根据相同的数据位宽各自 计算得到对应的量化参数。量化参数可以包括点位置、缩放系数和偏移量中的至少一种。 在目标迭代间隔内的各迭代,可以根据相同的数据位宽分别计算得到量化参数。量化参 数包括点位置、缩放系数和偏移量时,在目标迭代间隔内的各迭代,可利用相同的数据位宽,分别计算各自对应的点位置、缩放系数和偏移量。
在根据当前迭代的数据位宽,确定目标迭代间隔内各迭代的数据位宽的同时,可以 根据当前迭代的量化参数,确定目标迭代间隔内各迭代的对应的量化参数。目标迭代间隔内各迭代的量化参数,也不再重新根据相同的数据位宽计算得到,可以进一步提高神 经网络的运算效率。可以根据当前迭代的全部量化参数或部分量化参数,确定目标迭代 间隔内各迭代的对应的量化参数。当根据当前迭代的部分量化参数,确定目标迭代间隔 内各迭代的对应的量化参数时,剩余部分的量化参数,在目标迭代间隔内各迭代仍需计 算。
例如,量化参数包括点位置、缩放系数和偏移量。可以根据当前迭代的数据位宽和点位置,确定目标迭代间隔内各迭代的数据位宽和点位置。则目标迭代间隔内各迭代的 缩放系数和偏移量需要根据相同的数据位宽计算得到。也可以根据当前迭代的数据位宽、 点位置、缩放系数和偏移量,确定目标迭代间隔内各迭代的数据位宽、点位置、缩放系 数和偏移量,则目标迭代间隔内各迭代的各量化参数均不需要计算得到。
在本实施例中,根据目标数据在当前迭代对应的数据位宽,确定目标数据在目标迭 代间隔内的迭代对应的数据位宽,以使所述神经网络根据目标数据在目标迭代间隔内的 迭代对应的数据位宽,确定量化参数。在目标迭代间隔内的各迭代的数据位宽,根据当前迭代的数据位宽确定,由于目标迭代间隔内各迭代的目标数据的数据变化幅度满足设定的条件,利用相同的数据位宽计算得到的量化参数,可以保证目标迭代间隔内的各迭 代的量化精度。目标迭代间隔内各迭代使用相同的数据位宽,也可以提高神经网络的运 算效率。在对神经网络进行量化后运算结果的准确率和神经网络的运算效率之间,达到 平衡。
在一种可能的实现方式中,所述神经网络运算方法中还包括:
根据所述目标数据在所述当前迭代中的点位置,确定所述目标数据在所述目标迭代间 隔内迭代所对应的点位置。
在量化参数中,相对于缩放系数和偏移量,不同的点位置对相同目标数据的量化结 果产生的影响较大。可以根据目标数据在当前迭代对应的点位置,确定目标迭代间隔内的迭代对应的点位置。当数据位宽不可自适应调整时,可以将目标数据在当前迭代预设 的点位置,作为目标数据在目标迭代间隔内各迭代对应的点位置,也可以将目标数据在 当前迭代根据预设的数据位宽计算得到的点位置,作为目标数据在目标迭代间隔内各迭 代对应的点位置。当数据位宽可自适应调整时,可以将目标数据在当前迭代调整后的点 位置,作为目标数据在目标迭代间隔内各迭代对应的点位置。
根据所述目标数据在所述当前迭代对应的点位置,确定所述目标数据在所述目标迭 代间隔内的迭代对应的点位置的同时,也可以根据目标数据在当前迭代对应的缩放系数, 确定所述目标数据在所述目标迭代间隔内的迭代对应的缩放系数,和/或根据目标数据在 当前迭代对应的偏移量,确定所述目标数据在所述目标迭代间隔内的迭代对应的偏移量。
根据所述目标数据在所述当前迭代对应的点位置,确定所述目标数据在所述目标迭 代间隔内的迭代对应的点位置的同时,还可以根据目标数据在当前迭代对应的数据位宽, 确定所述目标数据在所述目标迭代间隔内的迭代对应的数据位宽,其中,目标数据在当 前迭代对应的数据位宽,可以是当前迭代预设的数据位宽或自适应调整后的数据位宽。
在本实施例中,根据目标数据在当前迭代对应的点位置,确定目标数据在目标迭代 间隔内的迭代对应的点位置。在目标迭代间隔内的各迭代的点位置,根据当前迭代的点位置确定,由于目标迭代间隔内各迭代的目标数据的数据变化幅度满足设定的条件,利 用相同的点位置,可以保证目标迭代间隔内的各迭代的量化精度。目标迭代间隔内各迭 代使用相同的点位置,也可以提高神经网络的运算效率。在对神经网络进行量化后运算 结果的准确率和神经网络的运算效率之间,达到平衡。
在一种可能的实现方式中,所述神经网络运算方法中所述的根据当前迭代中目标数据 的数据变动幅度和历史迭代中所述目标数据的数据变动幅度,确定目标迭代间隔,以使 所述神经网络根据所述目标迭代间隔更新所述目标数据的量化参数还包括:
根据在当前迭代中所述目标数据的点位置的滑动平均值与上一迭代间隔对应迭代的 点位置的滑动平均值,确定所述目标数据的点位置的第一数据变动幅度;
根据所述第一数据变动幅度确定所述目标数据的目标迭代间隔;其中,所述目标迭代 间隔与所述第一数据变动幅度反相关。
可以根据在当前迭代中所述目标数据的点位置的滑动平均值与上一迭代间隔对应迭 代的点位置的滑动平均值,确定所述目标数据的点位置的第一数据变动幅度。可以理解 的是,目标数据不同迭代中的点位置的变化可以有效表征相应迭代之间的数据变动幅度。 这里采用点位置的滑动平均值,能够避免特殊数据的数据变动的不必要的反复抖动的情 况发生,亦可降低特殊数据,如过大过小的噪声点对整体数据变动的影响。
可以根据所述第一数据变动幅度确定所述目标数据的目标迭代间隔;其中,所述目 标迭代间隔与所述第一数据变动幅度反相关。可以根据公式(26)计算得到目标迭代间隔I:
Figure BDA0002207775520000151
其中,β为第二参数,γ为第三参数。第二参数和第三参数可以为超参数。
可以理解的是,第一数据变动幅度可以用于衡量点位置的变化趋势,第一数据变动 幅度越大,说明量化数据的数值范围变化剧烈,在更新量化参数时需要间隔更短的目标迭代间隔I。
在一种可能的实现方式中,所述神经网络运算方法中所述的根据在当前迭代中所述目 标数据的点位置的滑动平均值与上一迭代间隔对应迭代的点位置的滑动平均值,确定所 述目标数据的点位置的第一数据变动幅度还包括:
计算在当前迭代中所述目标数据的点位置的滑动平均值与上一迭代间隔对应迭代的 点位置的滑动平均值的差值;将所述差值的绝对值确定为第一数据变动幅度。
可以利用公式(27)计算第一数据变动幅度diffupdate 1
diffupdate 1=|m(t)-m(t-1)|公式(27)
在本实施例中,计算在当前迭代中所述目标数据的点位置的滑动平均值与上一迭代 间隔对应迭代的点位置的滑动平均值的差值;将差值的绝对值确定为第一数据变动幅度。 根据滑动平均值之间的差值可以得到精确的第一数据变动幅度。
在一种可能的实现方式中,所述神经网络运算方法中所述的根据在当前迭代中所述目 标数据的点位置的滑动平均值与上一迭代间隔对应迭代的点位置的滑动平均值,确定所 述目标数据的点位置的第一数据变动幅度还包括:
根据历史迭代间隔确定与所述当前迭代的点位置对应的历史迭代的点位置的滑动平 均值;
根据目标数据在当前迭代的点位置和在所述历史迭代的点位置的滑动平均值,确定目 标数据对应的各迭代间隔的点位置的滑动平均值,以使所述神经网络确定所述目标数据 的点位置的第一数据变动幅度。
在一种可能的实现方式中,根据历史迭代间隔确定的与所述当前迭代对应的历史迭 代,可以计算目标迭代间隔的历史迭代。当前迭代与对应的目标迭代间隔之间的对应关系可以包括:
可以从当前迭代开始计数目标迭代间隔,并在当前迭代对应的目标迭代间隔结束后 的下一个迭代开始重新计算目标迭代间隔。例如,当前迭代为第100代,目标迭代间隔为3,目标迭代间隔内的迭代包括:第100代、第101代和第102代,可以在第103代计算与第 103代对应的目标迭代间隔,并以103代为新计算得到的在目标迭代间隔内的第一个迭代。 此时,当前迭代为103代时,根据历史迭代间隔确定的与所述当前迭代对应的历史迭代为 第100代。
可以从当前迭代的下一个迭代开始计数目标迭代间隔,并在目标迭代间隔内的最后 一个迭代开始重新计算目标迭代间隔。例如,当前迭代为第100代,目标迭代间隔为3,目标迭代间隔内的迭代包括:第101代、第102代和第103代,可以在第103代计算与第103 代对应的目标迭代间隔,并以第104代为新计算得到的在目标迭代间隔内的第一个迭代。 此时,当前迭代为第103代时,根据历史迭代间隔确定的与所述当前迭代对应的历史迭代 为第100代。
可以从当前迭代的下一个迭代开始计数目标迭代间隔,并在目标迭代间隔结束后的 下一个迭代开始重新计算目标迭代间隔。例如,当前迭代为第100代,目标迭代间隔为3,目标迭代间隔内的迭代包括:第101代、第102代和第103代,可以在第104代计算与第104 代对应的目标迭代间隔,并以第105代为新计算得到的在目标迭代间隔内的第一个迭代。 此时,当前迭代为第104代时,根据历史迭代间隔确定的与所述当前迭代对应的历史迭代 为第100代。
可以根据需求确定当前迭代以及目标迭代间隔之间的其他的对应关系,例如可以从 当前迭代之后的第N个迭代开始计数目标迭代间隔,N大于1,本披露对此不作限定。
可以理解的是,根据目标数据在当前迭代的点位置和在所述历史迭代的点位置的滑 动平均值,确定目标数据对应的各迭代间隔的点位置的滑动平均值的方法,也可用于确定所述历史迭代的点位置的滑动平均值。这里以根据目标数据在当前迭代的点位置和上一迭代间隔确定的历史迭代的点位置的滑动平均值,确定在当前迭代中的目标数据对应的各迭代间隔的点位置的滑动平均值的方法为例,可以利用公式(28)进行计算:
m(t)←α×s(t)+(1-α)×m(t-1)公式(28)
其中,m(t)为目标数据对应的各迭代的点位置的滑动平均值,t为当前迭代,t-1为根 据上一迭代间隔确定的历史迭代,m(t-1)为根据上一迭代间隔确定的历史迭代的点位置的 滑动平均值,s(t)为当前迭代的点位置,α为第一参数。第一参数可以为超参数。
可以根据在当前迭代中所述目标数据的点位置的滑动平均值与上一迭代间隔对应迭 代的点位置的滑动平均值,确定所述目标数据的点位置的第一数据变动幅度,沿用上述 方法,即根据公式(28)求得在当前迭代中所述目标数据的点位置的滑动平均值m(t)和上一迭代间隔对应迭代的点位置的滑动平均值m(t-1),利用公式(27)所述方法,确定第 一数据变动幅度diffupdate 1,如公式(29):
diffupdate 1=|m(t)-m(t-1)| 公式(27)
=α|s(t)-m(t-1)| 公式(29)
可以理解的是,若对于当前迭代而言,不存在历史迭代,那么历史迭代的点位置的滑动平均值可以认为与当前迭代中点位置相同,或者为一预设值,如0。
在本实施例中,根据历史迭代间隔确定与所述当前迭代的点位置对应的历史迭代的 点位置的滑动平均值;根据目标数据在当前迭代的点位置和在所述历史迭代的点位置的 滑动平均值,确定目标数据对应的各迭代间隔的点位置的滑动平均值,以使所述神经网络确定所述目标数据的点位置的第一数据变动幅度。由于点位置的变化可以表征数据幅度的变化,从而进一步确定所述目标数据的目标迭代间隔,但是如果直接采用当前点位 置和历史迭代点位置的变化量作为数据变动幅度,则很容易导致数据变动幅度与每一迭 代的点位置强相关,从而一方面容易受到特殊值的影响,另一方面,其变动较为频繁, 反复且大幅度抖动。采用点位置的滑动平均值,可以使得数据变动幅度更加平稳,鲁棒 性较强。因此提高整体的运行效率。
在一种可能的实现方式中,所述神经网络运算方法中还包括:
根据当前迭代所述目标数据和所述目标数据对应的量化数据,得到第二数据变动幅度;
所述的根据当前迭代中目标数据的数据变动幅度和历史迭代中所述目标数据的数据 变动幅度,确定目标迭代间隔,以使所述神经网络根据所述目标迭代间隔更新所述目标 数据的量化参数还包括:
根据所述目标数据的第一数据变动幅度和所述第二数据变动幅度,确定所述目标数据 对应的目标迭代间隔。
可以根据在当前迭代所述目标数据和所述目标数据对应的量化数据,得到第二数据 变动幅度。也可以根据在当前迭代所述目标数据和所述目标数据对应的反量化数据,得到第二数据变动幅度。
同样的,可以根据公式(25)在当前迭代所述目标数据和所述目标数据对应的反量化数据之间的第二数据变动幅度diffbit。也可以利用其它误差的计算方法,计算目标数据和反量化数据之间的第二数据变动幅度diffbit。本披露对此不作限定。
Figure BDA0002207775520000171
可以理解的是,第二数据变动幅度可以用于衡量目标数据对应的数据位宽的变化趋 势,第二数据变动幅度越大,目标数据越有可能需要更新对应的数据位宽,需要间隔更短的迭代进行更新,则第二数据变动幅度越大,需要目标迭代间隔更小。
在本实施例中,根据在当前迭代所述目标数据和所述目标数据对应的量化数据,得 到第二数据变动幅度。根据所述目标数据的第一数据变动幅度和所述第二数据变动幅度, 确定所述目标数据对应的目标迭代间隔,以使所述神经网络根据所述目标迭代间隔更新 所述目标数据的量化参数。第二数据变动幅度可以用于衡量数据位宽的变动需求,则根据第一数据变动幅度和第二数据变动幅度计算得到的目标迭代间隔,可以同时跟踪点位置和数据位宽的变动,目标迭代间隔也可以更加符合目标数据自身的数据量化需求。
在一种可能的实现方式中,所述神经网络运算方法中步骤S88还包括:
计算在当前迭代中所述目标数据和所述目标数据对应的量化数据之间的误差;
将所述误差的平方确定为所述第二数据变动幅度。
可以利用公式(30)计算得到第二数据变动幅度diffupdate 2
diffupdate 2=δ*diffbit 2公式(30)
其中,δ为第四参数,第四参数可以为超参数。
可以理解的是,利用不同的数据位宽可以得到不同的量化参数,进而得到不同的量 化数据,产生不同的第二数据变动幅度。第二数据变动幅度可以用于衡量数据位宽的变化趋势,第二数据变动幅度越大,说明需要更短的目标迭代间隔来更加频繁的更新数据 位宽,即目标迭代间隔需要更小。
在一种可能的实现方式中,所述神经网络运算方法中所述的根据所述目标数据的第一 数据变动幅度和所述第二数据变动幅度,确定所述目标数据对应的目标迭代间隔还包括:
根据所述第二数据变动幅度与所述第一变动幅度之间的较大值,确定所述目标数据对 应的目标迭代间隔;其中,所述迭代间隔的数值与所述较大值反相关
可以根据公式(31)计算得到目标迭代间隔:
Figure RE-GDA0002297271390000172
其中,β为第二参数,γ为第三参数。第二参数和第三参数可以为超参数。
可以理解的是,利用第一数据变动幅度和第二数据变动幅度得到的目标迭代间隔, 可以同时衡量数据位宽和点位置的变化趋势,当两者中的其一的变化趋势较大时,便可 以使得目标迭代间隔产生相应的变化。目标迭代间隔可以同时追踪数据位宽和点位置的 变化并做出相应的调整。使得根据目标迭代间隔更新的量化参数能够更加符合目标数据 的变动趋势,最终使得根据量化参数得到的量化数据能够更加符合量化需求。
在一种可能的实现方式中,所述神经网络运算方法中所述的根据当前迭代中目标数据 的数据变动幅度和历史迭代中所述目标数据的数据变动幅度,确定目标迭代间隔,以使 所述神经网络根据所述目标迭代间隔更新所述目标数据的量化参数还包括:
在当前迭代位于更新周期以外时,获取当前迭代以及历史迭代中目标数据的数据变动 幅度,确定目标迭代间隔,以使所述神经网络根据所述目标迭代间隔更新所述目标数据 的量化参数,所述更新周期包括至少一个迭代。
在神经网络运算的训练过程和/或微调过程中,在训练开始或微调开始的多个迭代中, 目标数据的变化幅度较大。若在训练开始或微调开始的多个迭代中计算目标迭代间隔, 则计算得到的目标迭代间隔可能会失去其使用的意义。根据预设更新周期,在更新周期 以内的各迭代,不计算目标迭代间隔,以使在目标间隔内的多个迭代使用相同的数据位宽或点位置。
当迭代进行至更新周期以外时,即当前迭代位于更新周期以外时,获取当前迭代以 及历史迭代中目标数据的数据变动幅度,并根据所述目标数据的数据变动幅度,确定所述目标数据对应的目标迭代间隔,以使所述神经网络根据所述目标迭代间隔更新所述目标数据的量化参数。例如,预设更新周期为100代,则自第1代开始至第100代的迭代中, 不计算目标迭代间隔。当迭代进行至101代,即当前迭代为101代时,当前迭代位于更新 周期以外,此时,可以根据第101代以及第1代至第100代的迭代中目标数据的数据变动幅 度,确定第101代的目标数据对应的目标迭代间隔,并在第101代或与第101间隔预设代数 的迭代中,使用计算得到的目标迭代间隔。
可以自预设的代数开始计数更新周期,例如可以自第一代开始计数更新周期中多个 迭代,也可以自第N代开始计数更新周期中的多个迭代,本披露对此不作限定。
在本实施例中,当迭代进行至更新周期以外时计算并使用目标迭代间隔。可以避免 在神经网络运算的训练过程或微调过程的初期,由于目标数据的变动幅度较大引起的目 标迭代间隔使用意义不大的问题,可以在使用目标迭代间隔的情况下,进一步提高神经网络的运行效率。
在一种可能的实现方式中,所述神经网络运算方法还包括:
在当前迭代位于预设周期内时,根据当前迭代、在所述预设周期的下一周期中与所述 当前迭代对应的迭代以及当前迭代对应的迭代间隔,确定周期间隔;
根据所述目标数据在当前迭代对应的数据位宽,确定在所述周期间隔内的迭代中所 述目标数据的数据位宽;或
根据所述目标数据在当前迭代对应的点位置,确定在所述周期间隔内的迭代中所述 目标数据的点位置。
根据所述目标数据在当前迭代对应的点位置,确定在所述周期间隔内的迭代中所述 目标数据的点位置。
在神经网络运算的训练过程或微调过程中,可以包括多个周期。各周期可以包括多 个迭代。用于神经网络运算的数据被完整的运算一遍为一个周期。在训练过程中,随着迭代的进行,神经网络的权值变化趋于稳定,当训练稳定后,神经元、权值、偏置和梯 度等待量化数据均趋于稳定。目标数据趋于稳定后,目标数据的数据位宽和量化参数也 趋于稳定。同理,在微调过程中,微调稳定后,目标数据的数据位宽和量化参数也趋于 稳定。
因此,可以根据训练稳定或微调稳定的周期确定预设周期。可以将训练稳定或微调 稳定所在周期以后的周期,确定为预设周期。例如训练稳定的周期为第M个周期,则可以将第M个周期以后的周期作为预设周期。在预设周期内,可以每间隔一个周期计算一 个目标迭代间隔,并根据计算得到的目标迭代间隔调整一次数据位宽或量化参数,以减 少数据位宽或量化参数的更新次数,提高神经网络的运行效率。
例如,预设周期为第M个周期以后的周期。在第M+1个周期中,根据第M个周期中的第P个迭代计算得到的目标迭代间隔,截止至第M+1个周期中的第Q个迭代。根据第M+1 个周期中的第Qm+1个迭代计算得到与之对应的目标迭代间隔Im+1。在第M+2个周期中,与 第M+1个周期中的第Qm+1个迭代对应的迭代为第Qm+2个迭代。在自第M+1个周期中的第 Qm+1个迭代开始,直至第M+2个周期中第Qm+2+Im+1个迭代为止,为周期间隔。在周期间 隔内的各迭代,均采用第M+1个周期中的第Qm+1个迭代确定的数据位宽或点位置等量化 参数。
在本实施例中,可以设置周期间隔,在神经网络运算的训练或微调达到稳定后,根据周期间隔,每周期更新一次数据位宽或点位置等量化参数。周期间隔可以在训练稳定 或微调稳定后,减少数据位宽或点位置的更新次数,在保证量化精度的同时,提高神经 网络的运行效率。
图16示出了神经网络运算方法的示意图。如图16所示,所述神经网络运算方法中步 骤S30还包括:
步骤S31,根据所述量化数据对神经网络进行推理运算、训练运算和微调 运算中的至少一种。
神经网络运算包括推理运算、训练运算和微调运算中的至少一种。其中可以对整个 网络进行运算,譬如,对于推理运算,从神经网络的第一层运算到最后一层,得到所需结果,如分类结果;对于训练运算,利用随机初始化的神经网络,从第一层正向运算到 最后一层,得到运算结果,根据运算结果和实际结果得到误差,再反向从最后一层运算 和传递回第一层,并在此过程中调整各层权值;依次类推,直到训练误差梯度收敛或者 达到最大训练迭代次数;对于微调运算,利用训练好的神经网络模型,在运算过程中, 采用类似的正向运算、反向传播并更新权值的方式,微调神经网络,得到最终所需结果 或者神经网络。也可以对部分网络进行运算,可以是选取部分神经网络层进行量化,例 如,可以选取其中的第k层和第k+1层进行量化,其中k为正整数。也可以选取所有的卷积 层进行量化,其他层不量化。对部分网络进行运算还可以是选取部分数据,例如可以只 选取某一层中的部分数据,其数据量为片上存储可容纳的待运算的数据量进行量化和运 算。也可以选择某几层中的数据,譬如可以在第k层、第k+1层和第k+2层分别选取部分数 据进行量化等。
在神经网络运算的推理过程中,待量化数据可以包括神经元、权值和偏置中的至少 一种。待量化数据规模可以为神经网络推理运算中的所有数据。也可以是神经网络推理运算中的部分数据,如待运算的网络层相关的数据,又如指定维度的数据。确定与待量 化数据对应的量化参数,可以包括点位置、缩放系数和偏移量中的至少一种。可以在神 经网络运算的推理过程中,利用本披露中的神经网络运算方法,确定与神经网络待量化 数据对应的量化参数,根据量化参数对待量化数据进行量化,得到量化数据,并根据量 化数据进行神经网络的推理运算。
在一种可能的实现方式中,在神经网络运算的推理过程中,待量化数据可以包括神 经元和权值。可以确定与每一层的待量化权值对应的量化参数,包括点位置、缩放系数和/或偏移量。可以利用确定出的量化参数将对应的待量化权值进行量化,得到对应的量化权值。也可以确定与待量化的输入神经元对应的量化参数,包括点位置、缩放系数和/ 或偏移量。可以根据确定出的量化参数将对应的待量化的输入神经元进行量化,得到对 应的量化输入神经元。其中,待量化的输入神经元对应的量化参数的种类和数值可以与 待量化权值的对应量化参数不同。可以利用第一层的量化权值与量化输入神经元进行推 理运算,得到第一层的输出神经元。由于第一层的输出神经元可被视为第二层的待量化 的输入神经元,可以确定与第二层的待量化的输入神经元对应的量化参数。可以根据量 化参数对第二层的待量化的输入神经元进行量化,得到第二层的量化输入神经元。第二 层的待量化的权值可参照上述过程进行量化。可以利用已量化好的第二层的量化权值与 第二层的量化输入神经元进行推理运算。以此类推,直到完成神经网络的推理运算,得 到所需的推理结果。
在一种可能的实现方式中,在执行神经网络中指定层的推理运算时,待量化数据可 以只包括权值。可以确定与待量化的权值对应的量化参数。根据确定出的量化参数将待量化的权值进行量化,得到量化权值。可以根据量化权值与该层未经量化的神经元进行 推理运算。
在一种可能的实现方式中,在执行神经网络指定部分的推理运算时,待量化数据可 以包括权值、神经元和偏置。可以确定待量化权值每个维度分别对应的量化参数,根据对应的量化参数分别量化待量化权值的相应维度的数据得到量化权值。可以确定该层待量化神经元对应的量化参数,根据量化参数量化该层神经元得到量化神经元。可以确定 该层待量化偏置对应的量化参数,根据量化参数量化该层偏置得到量化偏置。根据量化 权值、该层的量化神经元和该层的量化偏置进行推理运算。
在神经网络运算的训练过程中,待运算数据可以是随机初始化或者仅进行过少量运 算但还未收敛的神经网络。相应的,待量化数据在训练过程中的变化幅度较大,因此对于整个训练过程而言,待量化数据的量化方法、涉及的量化参数以及量化参数的更新方 式可以有较大的变化,采用上述方法的不同组合方式。例如,在不同的训练阶段,更新 不同量化参数的频率可以不同。又如,对不同的数据而言,更新对应的量化参数的频率 不同,更新对应的量化参数的内容和方式可以不同,如更新参数前是否需要更新数据位 宽和目标迭代间隔。
在神经网络运算的训练过程中,待量化数据可以包括神经元、权值、梯度和偏置中的至少一种,待量化数据规模可以为神经网络训练运算中的所有数据,也可以是部分数据,如待运算的网络层相关的数据,又如指定维度的数据。确定与待量化数据对应的量 化参数,可以包括点位置、缩放系数和偏移量中的至少一种。可以在神经网络运算的训 练过程中,利用本披露中的神经网络运算方法,根据所述的量化参数对所述待量化数据 进行量化,得到量化数据。根据量化数据进行神经网络训练。
在一种可能的实现方式中,目标迭代间隔默认为1,即在训练过程中,量化参数在每 次迭代运算中都会更新。可以根据预设的数据位宽,分别更新与待量化权值、待量化神经元和待量化偏置分别对应的量化参数,包括点位置、缩放系数和偏移量中的至少一种,得到更新后的量化参数。可以利用本披露中的神经网络运算方法,根据更新后的量化参 数量化对应的待量化权值、待量化神经元和待量化偏置。对于待量化梯度,可以计算根 据与待量化梯度对应量化参数进行量化时的量化误差。如果量化误差大于给定阈值1,可 以将待量化梯度的数据位宽增加指定位宽,如增加8位。根据增大后的数据位宽更新相应 的量化参数。可以判断利用更新后的量化参数进行量化的量化误差是否依然大于给定阈 值1。如果是,则可以继续重复上述步骤,增大数据位宽,直到利用更新后的量化参数进 行量化的量化误差不大于给定阈值1。可以根据量化数据进行神经网络训练。
在一种可能的实现方式中,目标迭代间隔可以通过计算得到,即在训练过程中,可以判断当前迭代是否需要更新量化参数,需要则更新量化参数,否则沿用当前的量化参数。例如,当前迭代为第x代,对于第x代,可以对与待量化权值、待量化神经元、待量 化偏置和待量化梯度分别对应的数据位宽和量化参数进行更新,而后利用更新后的量化 参数对对应的待量化权值、待量化神经元、待量化偏置和待量化梯度分别进行更新,并 且计算得到目标迭代间隔为10代。而后在第x+1代至第x+9代,可以利用本披露中的神经 网络运算方法,根据第n代中更新后的量化参数进行量化。在第x+10代,可以重新计算 目标迭代间隔,并更新与待量化数据对应的数据位宽和量化参数。可以根据更新后的量 化参数量化待量化数据,并进行神经网络训练。
在一种可能的实现方式中,目标迭代间隔可以为默认值和计算值混合的情况。在训 练初期,即当前迭代数小于预设迭代数1时,数据变动幅度较大,则每次迭代都可以进行更新量化参数;在训练中期,即当前迭代数大于预设迭代数1且小于预设迭代数2,数据 逐渐趋于平稳,数据变化幅度逐渐降低,此时,可以采用计算的方式,计算得到目标迭 代间隔,从而根据训练情况,适当升高、降低或保持更新量化参数的频率;到了训练后 期,即当前迭代数大于预设迭代数2,数据平稳,数据变化幅度小,可以根据一个较大的 固定的目标迭代间隔更新量化参数。
在神经网络运算的微调过程中,其运算可以是基于基本训练完毕的神经网络,因此 数据变化幅度不大,但需要对神经网络模型进行更加精细的调整。因此其目标迭代间隔可以采用预设数值,也可以采用在运算中的计算值。其运算过程与训练过程类似,因此 待量化数据的量化方法、涉及的量化参数以及量化参数的更新方式也可以采用上述方法 的不同组合方式。
在神经网络运算的微调过程中,待量化数据可以包括神经元、权值、梯度和偏置中的至少一种,待量化数据规模可以为神经网络训练运算中的所有数据,也可以是部分数据,如待运算的网络层相关的数据,又如指定维度的数据。确定与待量化数据对应的量 化参数,可以包括点位置、缩放系数和偏移量中的至少一种。可以在神经网络 运算的微调过程中,利用本披露中的神经网络运算方法,根据所述的量化参数对 所述待量化数据进行量化,得到量化数据,并根据量化数据进行神经网络的 微调运算。
在一种可能的实现方式中,可以判断当前运算是否需要对待量化数据进行量化。如 果需要量化,则可以确定待量化数据的量化参数,判断当前迭代是否需要更新该量化参数。如果需要,则可以更新量化参数得到更新后的量化参数,根据利用本披露中的神经 网络运算方法,根据更新后的量化参数对待量化数据进行量化和微调;如果不需要, 则可以直接利用本披露中的神经网络运算方法,根据当前的量化参数进行量化得到 量化数据,根据得到的量化数据进行后续的微调。例如,在前向传递过程中,当前待量 化神经元的量化参数需要更新,可以通过量化误差调整数据位宽;可以根据调整后的数 据位宽,更新量化参数;可以根据更新后的量化参数量化待量化神经元得到量化神经元; 可以根据量化神经元进行神经网络的微调。在反向传递过程中,对该神经元不进行量 化。
需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本披露并不受所描述的动作顺序的限制, 因为依据本披露,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也 应该知悉,说明书中所描述的实施例均属于可选实施例,所涉及的动作和模块并不一定 是本披露所必须的。
进一步需要说明的是,虽然图1至图18的流程图中的各个步骤按照箭头的指示依次显 示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明, 这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,图1至 图18中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不 必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些子步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。
图17示出了根据本披露实施例的神经网络运算装置的示意图。如图17所示,本披露 提供了一种神经网络运算装置,所述装置包括:
量化参数确定模块10,用于确定与神经网络待量化数据所对应的量化参数,所述待 量化数据包括神经元、权值、梯度、偏置中的至少一种;
量化模块20,用于根据所述量化参数对对应的所述待量化数据进行量化,得到量化 数据;
执行模块30,用于根据所述量化数据对神经网络进行运算。
在一种可能的实现方式中,所述量化参数包括点位置、缩放系数和偏移量中的至少一 种,其中,
所述点位置,用于表示所述量化数据中的小数点的位置;
所述缩放系数,用于表示对所述待量化数据进行缩放的系数;
所述偏移量,用于表示对所述待量化数据进行偏移的量。
在一种可能的实现方式中,所述量化参数确定模块10,包括:
第一量化参数确定子模块,用于通过查找待量化数据与量化参数对应关系,确定与所 述待量化数据所对应的量化参数。
在一种可能的实现方式中,所述量化参数确定模块10,包括:
第二量化参数确定子模块,用于根据待量化数据和对应的数据位宽确定所述量化参数, 其中,所述数据位宽,用于表示量化数据的位数。
在一种可能的实现方式中,所述第二量化参数确定子模块还用于当所述量化参数不 包括偏移量时,根据所述目标数据的绝对值最大值和所述目标数据对应的数据位宽确定 目标数据的点位置,所述目标数据为任意一种待量化数据。
在一种可能的实现方式中,所述第二量化参数确定子模块还用于当所述量化参数包 括偏移量时,根据所述目标数据的最大值、最小值和所述目标数据对应的数据位宽确定目标数据的点位置,所述目标数据为任意一种待量化数据。
在一种可能的实现方式中,所述第二量化参数确定子模块还用于当所述量化参数不包 括偏移量时,根据所述目标数据对应的数据位宽确定所述目标数据的量化后数据的最大 值;根据所述目标数据的绝对值最大值和所述目标数据的量化后数据的最大值,得到所 述目标数据的缩放系数;其中,所述目标数据为任意一种待量化数据。
在一种可能的实现方式中,所述第二量化参数确定子模块还用于当所述量化参数包 括偏移量时,根据所述目标数据对应的数据位宽确定所述目标数据的量化后的最大值;根据所述目标数据的最大值、最小值和所述目标数据的量化后数据的最大值,得到所述 目标数据的缩放系数;其中,所述目标数据为任意一种待量化数据。
在一种可能的实现方式中,所述第二量化参数确定子模块还用于根据所述目标数据的 最大值和最小值确定所述目标数据的偏移量,所述目标数据为任意一种待量化数据。
在一种可能的实现方式中,所述装置还包括:
量化误差确定模块,用于根据目标数据和目标数据对应的量化数据确定所述量化数据 的量化误差,所述目标数据为任意一种待量化数据;
调整位宽确定模块,用于根据所述量化误差和误差阈值,调整所述目标数据对应的数 据位宽得到所述目标数据调整后的数据位宽;
调整量化参数确定模块,用于根据所述目标数据调整后的数据位宽,调整所述目标数 据对应的量化参数得到调整后的量化参数;
调整数据量化模块,用于根据所述调整后的量化参数对所述目标数据进行量化,得到 所述目标数据对应的调整后的量化数据;
调整执行模块,用于根据所述目标数据对应的调整后的量化数据对神经网络进行训练。
在一种可能的实现方式中,所述调整位宽确定模块,包括:
第一调整位宽确定子模块,用于当所述量化误差大于第一误差阈值时,增加所述数据 位宽,得到所述调整后的数据位宽。
在一种可能的实现方式中,所述调整位宽确定模块,还包括:
第一量化误差确定子模块,用于根据调整后的数据位宽和所述目标数据计算所述目标 数据调整后的量化误差;
第二调整位宽确定子模块,用于根据所述调整后的量化误差和所述第一误差阈值继续 增加所述数据位宽,直到根据所述调整后的数据位宽计算得到的调整后的量化误差不大 于所述第一误差阈值。
在一种可能的实现方式中,所述调整位宽确定模块,还包括:
第三调整位宽确定子模块,用于当所述量化误差小于第二误差阈值时,减小所述数据 位宽,得到所述调整后的数据位宽。
在一种可能的实现方式中,所述调整位宽确定模块还包括:
第二量化误差确定子模块,用于根据调整后的数据位宽和所述目标数据计算所述目标 数据调整后的量化误差;
第四调整位宽确定子模块,用于根据所述调整后的量化误差和所述第二误差阈值,继 续减小所述数据位宽,直到根据所述调整后的数据位宽计算得到的调整后的量化误差不 小于所述第二误差阈值。
在一种可能的实现方式中,所述装置还包括:
目标迭代间隔确定模块,用于根据当前迭代中目标数据的数据变动幅度和历史迭代中 所述目标数据的数据变动幅度,确定目标迭代间隔,以使所述神经网络根据所述目标迭 代间隔更新所述目标数据的量化参数;其中,
所述历史迭代为所述当前迭代之前的迭代;
所述目标迭代间隔至少包括一次迭代。
在一种可能的实现方式中,所述装置还包括:
第一目标迭代间隔应用模块,用于根据在当前迭代中目标数据的数据位宽,确定所述 目标数据在所述目标迭代间隔内迭代所对应的数据位宽,以使所述神经网络根据所述目 标数据在所述目标迭代间隔内迭代所对应的数据位宽,确定所述目标数据所对应的量化 参数。
在一种可能的实现方式中,所述装置还包括:
第二目标迭代间隔应用模块,用于根据所述目标数据在所述当前迭代中的点位置,确 定所述目标数据在所述目标迭代间隔内迭代所对应的点位置。
在一种可能的实现方式中,所述目标迭代间隔确定模块,还用于根据在当前迭代中所 述目标数据的点位置的滑动平均值与上一迭代间隔对应迭代的点位置的滑动平均值,确 定所述目标数据的点位置的第一数据变动幅度;根据所述第一数据变动幅度确定所述目 标数据的目标迭代间隔;其中,所述目标迭代间隔与所述第一数据变动幅度反相关。
在一种可能的实现方式中,所述目标迭代间隔确定模块包括:
第一数据变动幅度子模块,用于计算当前迭代的所述目标数据的点位置的滑动平均值 与上一迭代间隔对应迭代的点位置的滑动平均值的差值;
第一目标迭代间隔确定子模块,用于将所述差值的绝对值确定为第一数据变动幅度。
在一种可能的实现方式中,所述目标迭代间隔确定模块还包括:
滑动平均值计算子模块,用于根据历史迭代间隔确定与所述当前迭代的点位置对应的 历史迭代的点位置;根据目标数据在当前迭代的点位置和在所述历史迭代的点位置,确 定目标数据对应的各迭代间隔的点位置的滑动平均值。
在一种可能的实现方式中,所述目标迭代间隔确定模块还包括:
第二数据变动幅度子模块,用于根据当前迭代所述目标数据和所述目标数据对应的量 化数据,得到第二数据变动幅度;
第二目标迭代间隔确定子模块,用于根据所述目标数据的第一数据变动幅度和所述第 二数据变动幅度,确定所述目标数据对应的目标迭代间隔。
在一种可能的实现方式中,所述第二数据变动幅度子模块还用于计算在当前迭代中所 述目标数据和所述目标数据对应的量化数据之间的误差;将所述误差的平方确定为所述 第二数据变动幅度。
在一种可能的实现方式中,所述第二目标迭代间隔确定子模块还用于根据所述第二数 据变动幅度与所述第一变动幅度之间的较大值,确定所述目标数据对应的目标迭代间隔; 其中,所述迭代间隔的数值与所述较大值反相关。
在一种可能的实现方式中,所述数据变动幅度确定模块还包括第三数据变动幅度确定 子模块,用于在当前迭代位于更新周期以外时,获取当前迭代以及历史迭代中目标数据 的数据变动幅度,所述更新周期包括至少一个迭代。
在一种可能的实现方式中,所述装置还包括:
周期间隔确定模块,用于在当前迭代位于预设周期内时,根据当前迭代、在所述预设 周期的下一周期中与所述当前迭代对应的迭代以及当前迭代对应的迭代间隔,确定周期 间隔;
第一周期间隔应用模块,用于根据所述目标数据在当前迭代对应的数据位宽,确定在 所述周期间隔内的迭代中所述目标数据的数据位宽;或
第二周期间隔应用模块,用于根据所述目标数据在当前迭代对应的点位置,确定在 所述周期间隔内的迭代中所述目标数据的点位置。
在一种可能的实现方式中,所述执行模块还用于根据所述量化数据对神经网络进行 推理运算、训练运算和微调运算中的至少一种。
应该理解,上述的装置实施例仅是示意性的,本披露的装置还可通过其它的方式实 现。例如,上述实施例中所述单元/模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。例如,多个单元、模块或组件可以结合,或者可以集成到另一 个系统,或一些特征可以忽略或不执行。
所述作为分离部件说明的单元或模块可以是物理上分开的,也可以不是物理上分开 的。作为单元或模块说明的部件可以是物理单元,也可以不是物理单元,即可以位于一个装置中,或者也可以分布到多个装置上。本披露中实施例的方案可以根据实际的需要 选择其中的部分或者全部单元来实现。
另外,若无特别说明,在本披露各个实施例中的各功能单元/模块可以集成在一个单 元/模块中,也可以是各个单元/模块单独物理存在,也可以两个或两个以上单元/模块集 成在一起。上述集成的单元/模块既可以采用硬件的形式实现,也可以采用软件程序模块 的形式实现。
所述集成的单元/模块如果以硬件的形式实现时,该硬件可以是数字电路,模拟电路 等等。硬件结构的物理实现包括但不局限于晶体管,忆阻器等等。若无特别说明,所述人工智能处理器可以是任何适当的硬件处理器,比如CPU、GPU、FPGA、DSP和ASIC 等等。若无特别说明,所述存储单元可以是任何适当的磁存储介质或者磁光存储介质, 比如,阻变式存储器RRAM(Resistive Random Access Memory)、动态随机存取存储器 DRAM(DynamicRandom Access 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)、移动硬盘、磁碟或者光盘等各种可 以存储程序代码的介质。
在一种可能的实现方式中,本披露还公开了一种计算机设备,包括存储器及处理器, 所述存储器上存储有可在处理器上运行的计算机程序,所述处理器执行所述计算机程序 时实现权利要求1~26中任一项所述方法的步骤。
在一种可能的实现方式中,本披露还公开了一种计算机可读存储介质,其上存储有 计算机程序,所述计算机程序被处理器执行时实现上述所述的方法的步骤。
在一种可能的实现方式中,本披露还公开了一种人工智能芯片,所述芯片包括上述 所述的神经网络运算装置。
在一种可能的实现方式中,本披露还公开了一种电子设备,所述电子设备包括上述所 述的人工智能芯片。
在一种可能的实现方式中,本披露还公开了一种板卡,包括:存储器件、接口装置和控制器件以及上述所述的人工智能芯片;其中,所述人工智能芯片与所述存储器件、 所述控制器件以及所述接口装置分别连接;所述存储器件,用于存储数据;所述接口装 置,用于实现所述人工智能芯片与外部设备之间的数据传输;所述控制器件,用于对所 述人工智能芯片的状态进行监控。
图18示出根据本披露实施例的板卡的结构框图,参阅图18,上述板卡除了包括上述 芯片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超仪和/或心电图仪。
依据以下条款可更好地理解前述内容:
条款A1.一种神经网络运算方法,所述方法包括:
确定与神经网络待量化数据所对应的量化参数,所述待量化数据包括神经元、权值、梯度、偏置中的至少一种;
根据所述量化参数对对应的所述待量化数据进行量化,得到量化数据;
根据所述量化数据对神经网络进行运算。
条款A2.根据条款A1所述的方法,所述量化参数包括点位置、缩放系数和偏移量中的至少一种,其中,
所述点位置,用于表示所述量化数据中的小数点的位置;
所述缩放系数,用于表示对所述待量化数据进行缩放的系数;
所述偏移量,用于表示对所述待量化数据进行偏移的量。
条款A3.根据条款A1或条款A2所述的方法,所述确定与神经网络待量化数据所对应 的量化参数,包括:
通过查找待量化数据与量化参数对应关系,确定与所述待量化数据所对应的量化参数。
条款A4.根据条款A1或条款A2所述的方法,所述确定与神经网络待量化数据所对应 的量化参数,包括:
根据待量化数据和对应的数据位宽确定所述量化参数,其中,所述数据位宽,用于表示量化数据的位数。
条款A5.根据条款A4所述的方法,根据待量化数据和对应的数据位宽确定所述量化 参数,包括:
当所述量化参数不包括偏移量时,目标数据的点位置由所述目标数据的绝对值最大值和所述目标数据对应的数据位宽确定,所述目标数据为任意一种待量化数据。
条款A6.根据条款A4所述的方法,根据待量化数据和对应的数据位宽确定所述量化 参数,包括:
当所述量化参数包括偏移量时,目标数据的点位置由所述目标数据的最大值、最小值和所述目标数据对应的数据位宽确定,所述目标数据为任意一种待量化数据。
条款A7.根据条款A4所述的方法,根据待量化数据和对应的数据位宽确定所述量化 参数,包括:
当所述量化参数不包括偏移量时,根据所述目标数据对应的数据位宽确定所述目标数据的量化后数据的最大值;
根据所述目标数据的绝对值最大值和所述目标数据的量化后数据的最大值,得到所述目标数据的缩放系数;其中,
所述目标数据为任意一种待量化数据。
条款A8.根据条款A4所述的方法,根据待量化数据和对应的数据位宽确定所述量化 参数,包括:
当所述量化参数包括偏移量时,根据所述目标数据对应的数据位宽确定所述目标数据的量化后的最大值;
根据所述目标数据的最大值、最小值和所述目标数据的量化后数据的最大值,得到所述目标数据的缩放系数;其中,
所述目标数据为任意一种待量化数据。
条款A9.根据条款A4所述的方法,根据待量化数据和对应的数据位宽确定所述量化 参数,包括:
所述目标数据的偏移量由所述目标数据的最大值和最小值确定,所述目标数据为任意一种待量化数据。
条款A10.根据条款A1至条款A9中任一项所述的方法,所述根据所述量化数据对神经网络进行运算,包括:
根据目标数据和目标数据对应的量化数据确定所述量化数据的量化误差,所述目标数据为任意一种待量化数据;
根据所述量化误差和误差阈值,调整所述目标数据对应的数据位宽得到所述目标数据调整后的数据位宽;
根据所述目标数据调整后的数据位宽,调整所述目标数据对应的量化参数得到调整后的量化参数;
根据所述调整后的量化参数对所述目标数据进行量化,得到所述目标数据对应的调整后的量化数据;
根据所述目标数据对应的调整后的量化数据对神经网络进行运算。
条款A11.根据条款A10所述的方法,所述根据所述量化误差和误差阈值,调整所述目标数据对应的数据位宽得到所述目标数据调整后的数据位宽,包括:
当所述量化误差大于第一误差阈值时,增加所述数据位宽,得到所述调整后的数据位宽。
条款A12.根据条款A11所述的方法,所述方法还包括:
根据调整后的数据位宽和所述目标数据计算所述目标数据调整后的量化误差;
根据所述调整后的量化误差和所述第一误差阈值继续增加所述数据位宽,直到根据所述调整后的数据位宽计算得到的调整后的量化误差不大于所述第一误差阈值。 条款A13.根据条款A10至条款A12中任一项所述的方法,所述方法还包括:
当所述量化误差小于第二误差阈值时,减小所述数据位宽,得到所述调整后的数据位宽。
条款A14.根据条款A13所述的方法,所述方法还包括:
根据所述调整后的数据位宽和所述目标数据计算所述目标数据调整后的量化误差;
根据所述调整后的量化误差和所述第二误差阈值,继续减小所述数据位宽,直到根据所述调整后的数据位宽计算得到的调整后的量化误差不小于所述第二误差阈值。
条款A15.根据条款A1至条款A14中任一项所述的方法,所述方法还包括:
根据当前迭代中目标数据的数据变动幅度和历史迭代中所述目标数据的数据变动幅度,确定目标迭代间隔,以使所述神经网络根据所述目标迭代间隔更新所述目标 数据的量化参数;其中,
所述历史迭代为所述当前迭代之前的迭代;
所述目标迭代间隔至少包括一次迭代。
条款A16.根据条款A15所述的方法,所述方法还包括:
根据当前迭代中目标数据的数据位宽,确定所述目标数据在所述目标迭代间隔内迭代所对应的数据位宽,以使所述神经网络根据所述目标数据在所述目标迭代间隔内 迭代所对应的数据位宽,确定所述目标数据所对应的量化参数。
条款A17.根据条款A15所述的方法,所述方法还包括:
根据所述目标数据在所述当前迭代中的点位置,确定所述目标数据在所述目标迭代间隔内迭代所对应的点位置。
条款A18.根据条款A15所述的方法,所述根据当前迭代中目标数据的数据变动幅度和历史迭代中所述目标数据的数据变动幅度,确定目标迭代间隔,包括:
根据在当前迭代中所述目标数据的点位置的滑动平均值与上一迭代间隔对应迭代的点位置的滑动平均值,确定所述目标数据的点位置的第一数据变动幅度;
根据所述第一数据变动幅度确定所述目标数据的目标迭代间隔;其中,
所述目标迭代间隔与所述第一数据变动幅度反相关。
条款A19.根据条款A18所述的方法,所述根据在当前迭代中所述目标数据的点位置的滑动平均值与上一迭代间隔对应迭代的点位置的滑动平均值,确定所述目标 数据的点位置的第一数据变动幅度,包括:
计算在当前迭代中所述目标数据的点位置的滑动平均值与上一迭代间隔对应迭代的点位置的滑动平均值的差值;
将所述差值的绝对值确定为第一数据变动幅度。
条款A20.根据条款A18或条款A19所述的方法,所述方法还包括:
根据历史迭代间隔确定与所述当前迭代的点位置对应的历史迭代的点位置;
根据目标数据在当前迭代的点位置和在所述历史迭代的点位置,确定目标数据对应的各迭代间隔的点位置的滑动平均值。
条款A21.根据条款A18至条款A20中任一项所述的方法,所述方法还包括:
根据当前迭代所述目标数据和所述目标数据对应的量化数据,得到第二数据变动幅度;
所述根据当前迭代中目标数据的数据变动幅度和历史迭代中所述目标数据的数据变动幅度,确定目标迭代间隔,包括:
根据所述目标数据的第一数据变动幅度和所述第二数据变动幅度,确定所述目标数据对应的目标迭代间隔。
条款A22.根据条款A21中所述的方法,所述根据当前迭代所述目标数据和所述目标数据对应的量化数据,得到第二数据变动幅度,包括:
计算在当前迭代中所述目标数据和所述目标数据对应的量化数据之间的误差;
将所述误差的平方确定为所述第二数据变动幅度。
条款A23.根据条款A21中所述的方法,所述根据所述目标数据的第一数据变动幅度和第二数据变动幅度,确定所述目标数据对应的目标迭代间隔,还包括:
根据所述第二数据变动幅度与所述第一变动幅度之间的较大值,确定所述目标数据对应的目标迭代间隔;其中,
所述迭代间隔的数值与所述较大值反相关。
条款A24.根据条款A15至条款A23中任一项所述的方法,所述根据当前迭代中目标数据的数据变动幅度和历史迭代中所述目标数据的数据变动幅度,包括:
在当前迭代位于更新周期以外时,获取当前迭代以及历史迭代中目标数据的数据动幅度,所述更新周期包括至少一个迭代。
条款A25.根据条款A1至条款A24中任一项所述的方法,所述方法还包括:
在当前迭代位于预设周期内时,根据当前迭代、在所述预设周期的下一周期中与所述当前迭代对应的迭代以及当前迭代对应的迭代间隔,确定周期间隔;
根据所述目标数据在当前迭代对应的数据位宽,确定在所述周期间隔内的迭代中所述目标数据的数据位宽;或
根据所述目标数据在当前迭代对应的点位置,确定在所述周期间隔内的迭代中所述 标数据的点位置。
条款A26.根据条款A1至条款A25中任一项所述的方法,所述根据所述量化数据 对神经网络进行运算,包括:
根据所述量化数据对神经网络进行推理运算、训练运算和微调运算中 的至少一种。
条款A27.一种神经网络运算装置,包括:
量化参数确定模块,用于确定与神经网络待量化数据所对应的量化参数,所述待量化数据包括神经元、权值、梯度、偏置中的至少一种;
量化模块,用于根据所述量化参数对对应的所述待量化数据进行量化,得到量化数据;
执行模块,用于根据所述量化数据对神经网络进行运算。
条款A28.根据条款A27所述的装置,所述量化参数包括点位置、缩放系数和偏移量中的至少一种,其中,
所述点位置,用于表示所述量化数据中的小数点的位置;
所述缩放系数,用于表示对所述待量化数据进行缩放的系数;
所述偏移量,用于表示对所述待量化数据进行偏移的量。
条款A29.根据条款A27或条款A28所述的装置,所述量化参数确定模块包括:
第一量化参数确定子模块,用于通过查找待量化数据与量化参数对应关系,确定与所述待量化数据所对应的量化参数。
条款A30.根据条款A27或条款A28所述的装置,所述量化参数确定模块包括:
第二量化参数确定子模块,用于根据待量化数据和对应的数据位宽确定所述量化参数,其中,所述数据位宽,用于表示量化数据的位数。
条款A31.根据条款A30所述的装置,所述第二量化参数确定子模块,用于当所述量化参数不包括偏移量时,根据所述目标数据的绝对值最大值和所述目标数据对 应的数据位宽确定目标数据的点位置,所述目标数据为任意一种待量化数据。
条款A32.根据条款A30所述的装置,所述第二量化参数确定子模块,还用于当所述量化参数包括偏移量时,根据所述目标数据的最大值、最小值和所述目标数据 对应的数据位宽确定目标数据的点位置,所述目标数据为任意一种待量化数据。
条款A33.根据条款A30所述的装置,所述第二量化参数确定子模块,还用于当所述量化参数不包括偏移量时,根据所述目标数据对应的数据位宽确定所述目标数 据的量化后数据的最大值;根据所述目标数据的绝对值最大值和所述目标数据的 量化后数据的最大值,得到所述目标数据的缩放系数;其中,所述目标数据为任 意一种待量化数据。
条款A34.根据条款A30所述的装置,所述第二量化参数确定子模块,还用于当所述量化参数包括偏移量时,根据所述目标数据对应的数据位宽确定所述目标数据 的量化后的最大值;根据所述目标数据的最大值、最小值和所述目标数据的量化 后数据的最大值,得到所述目标数据的缩放系数;其中,所述目标数据为任意一 种待量化数据。
条款A35.根据条款A30所述的装置,所述第二量化参数确定子模块,还用于根据所述目标数据的最大值和最小值确定所述目标数据的偏移量,所述目标数据为任 意一种待量化数据。
条款A36.根据条款A27至条款A35中任一项所述的装置,所述装置还包括:
量化误差确定模块,用于根据目标数据和目标数据对应的量化数据确定所述量化数据的量化误差,所述目标数据为任意一种待量化数据;
调整位宽确定模块,用于根据所述量化误差和误差阈值,调整所述目标数据对应的数据位宽得到所述目标数据调整后的数据位宽;
调整量化参数确定模块,用于根据所述目标数据调整后的数据位宽,调整所述目标数据对应的量化参数得到调整后的量化参数;
调整数据量化模块,用于根据所述调整后的量化参数对所述目标数据进行量化,得到所述目标数据对应的调整后的量化数据;
调整执行模块,用于根据所述目标数据对应的调整后的量化数据对神经网络进行训练。
条款A37.根据条款A36所述的装置,所述调整位宽确定模块,包括:
第一调整位宽确定子模块,用于当所述量化误差大于第一误差阈值时,增加所述数据位宽,得到所述调整后的数据位宽。
条款A38.根据条款A36所述的装置,所述调整位宽确定模块,还包括:
第一量化误差确定子模块,用于根据调整后的数据位宽和所述目标数据计算所述目标数据调整后的量化误差;
第二调整位宽确定子模块,用于根据所述调整后的量化误差和所述第一误差阈值继续增加所述数据位宽,直到根据所述调整后的数据位宽计算得到的调整后的量化误 差不大于所述第一误差阈值。
条款A39.根据条款A36所述的装置,所述调整位宽确定模块,还包括:
第三调整位宽确定子模块,用于当所述量化误差小于第二误差阈值时,减小所述数据位宽,得到所述调整后的数据位宽。
条款A40.根据条款A36所述的装置,所述调整位宽确定模块还包括:
第二量化误差确定子模块,用于根据调整后的数据位宽和所述目标数据计算所述目标数据调整后的量化误差;
第四调整位宽确定子模块,用于根据所述调整后的量化误差和所述第二误差阈值, 继续减小所述数据位宽,直到根据所述调整后的数据位宽计算得到的调整后的量化误差不小于所述第二误差阈值。
条款A41.根据条款A27至条款A40中任一项所述的装置,所述装置还包括:
目标迭代间隔确定模块,用于根据当前迭代中目标数据的数据变动幅度和历史迭代中所述目标数据的数据变动幅度,确定目标迭代间隔,以使所述神经网络根据所述 目标迭代间隔更新所述目标数据的量化参数;其中,
所述历史迭代为所述当前迭代之前的迭代;
所述目标迭代间隔用于表征调整所述目标数据的量化参数的迭代所间隔的迭代数量,至少包括一次迭代。
条款A42.根据条款A40所述的装置,所述装置还包括:
第一目标迭代间隔应用模块,用于根据在当前迭代中目标数据的数据位宽,确定所述目标数据在所述目标迭代间隔内迭代所对应的数据位宽,以使所述神经网络根据 所述目标数据在所述目标迭代间隔内迭代所对应的数据位宽,确定所述目标数据所对 应的量化参数。
条款A43.根据条款A40所述的装置,所述装置还包括:
第二目标迭代间隔应用模块,用于根据所述目标数据在所述当前迭代中的点位置, 确定所述目标数据在所述目标迭代间隔内迭代所对应的点位置。
条款A44.根据条款A40所述的装置,所述目标迭代间隔确定模块,还用于根据在当前迭代中所述目标数据的点位置的滑动平均值与上一迭代间隔对应迭代的点 位置的滑动平均值,确定所述目标数据的点位置的第一数据变动幅度;根据所述 第一数据变动幅度确定所述目标数据的目标迭代间隔;其中,所述目标迭代间隔 与所述第一数据变动幅度反相关。
条款A45.根据条款A44所述的装置,所述目标迭代间隔确定模块包括:
第一数据变动幅度子模块,用于计算当前迭代的所述目标数据的点位置的滑动平均值与上一迭代间隔对应迭代的点位置的滑动平均值的差值;
第一目标迭代间隔确定子模块,用于将所述差值的绝对值确定为第一数据变动幅度。
条款A46.根据条款A44或条款A45所述的装置,所述目标迭代间隔确定模块还包括:
滑动平均值计算子模块,用于根据历史迭代间隔确定与所述当前迭代的点位置对应的历史迭代的点位置;根据目标数据在当前迭代的点位置和在所述历史迭代的点位 置,确定目标数据对应的各迭代间隔的点位置的滑动平均值。
条款A47.根据条款A44至条款A46中任一项所述的装置,所述目标迭代间隔确定模块还包括:
第二数据变动幅度子模块,用于根据当前迭代所述目标数据和所述目标数据对应的量化数据,得到第二数据变动幅度;
第二目标迭代间隔确定子模块,用于根据所述目标数据的第一数据变动幅度和所述第二数据变动幅度,确定所述目标数据对应的目标迭代间隔。
条款A48.根据条款A47中所述的方法,所述第二数据变动幅度子模块还用于计算在当前迭代中所述目标数据和所述目标数据对应的量化数据之间的误差;将所述 误差的平方确定为所述第二数据变动幅度。
条款A49.根据条款A47中所述的装置,所述第二目标迭代间隔确定子模块还用于根据所述第二数据变动幅度和所述第一变动幅度之间的较大值,确定所述目标数 据对应的目标迭代间隔;其中,所述迭代间隔的数值与所述较大值反相关。
条款A50.根据条款A36至条款A49中任一项所述的装置,所述数据变动幅度确定模块还包括第三数据变动幅度确定子模块,用于在当前迭代位于更新周期以外时, 获取当前迭代以及历史迭代中目标数据的数据变动幅度,所述更新周期包括至少 一个迭代。
条款A51.根据条款A27至条款A50中任一项所述的装置,所述装置还包括:
周期间隔确定模块,用于在当前迭代位于预设周期内时,根据当前迭代、在 所述预设周期的下一周期中与所述当前迭代对应的迭代以及当前迭代对应的迭 代间隔,确定周期间隔;
第一周期间隔应用模块,用于根据所述目标数据在当前迭代对应的数据位宽, 确定在所述周期间隔内的迭代中所述目标数据的数据位宽;或
第二周期间隔应用模块,用于根据所述目标数据在当前迭代对应的点位置, 确定在所述周期间隔内的迭代中所述目标数据的点位置。
条款A52.根据条款A27至条款A51中任一项所述的装置,所述执行模块还用于根据所述量化数据对神经网络进行推理运算、训练运算和微调运算中的至少一种。
条款A53.一种计算机设备,包括存储器及处理器,所述存储器上存储有可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现条款A1至条款 A26中任一项所述方法的步骤。
条款A54.一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现条款A1至条款A26中任一项所述的方法的步骤。
条款A55.一种人工智能芯片,所述芯片包括如条款A27至条款A52中任意一项所述的神经网络运算装置。
条款A56.一种电子设备,所述电子设备包括如条款A55所述的人工智能芯片。
条款A57.一种板卡,所述板卡包括:存储器件、接口装置和控制器件以及如条款A55所述的人工智能芯片;
其中,所述人工智能芯片与所述存储器件、所述控制器件以及所述接口装置分别连接;
所述存储器件,用于存储数据;
所述接口装置,用于实现所述人工智能芯片与外部设备之间的数据传输;
所述控制器件,用于对所述人工智能芯片的状态进行监控。
条款A58.根据条款A57所述的板卡,
所述存储器件包括:多组存储单元,每一组所述存储单元与所述人工智能芯片通过总线连接,所述存储单元为:DDR SDRAM;
所述芯片包括:DDR控制器,用于对每个所述存储单元的数据传输与数据存储的控制;
所述接口装置为:标准PCIE接口。
以上已经描述了本披露的各实施例,上述说明是示例性的,并非穷尽性的,并且也不 限于所披露的各实施例。在不偏离所说明的各实施例的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。本文中所用术语的选择, 旨在最好地解释各实施例的原理、实际应用或对市场中的技术的改进,或者使本技术领 域的其它普通技术人员能理解本文披露的各实施例。

Claims (58)

1.一种神经网络运算方法,所述方法包括:
确定与神经网络待量化数据所对应的量化参数,所述待量化数据包括神经元、权值、梯度、偏置中的至少一种;
根据所述量化参数对对应的所述待量化数据进行量化,得到量化数据;
根据所述量化数据对神经网络进行运算。
2.根据权利要求1所述的方法,所述量化参数包括点位置、缩放系数和偏移量中的至少一种,其中,
所述点位置,用于表示所述量化数据中的小数点的位置;
所述缩放系数,用于表示对所述待量化数据进行缩放的系数;
所述偏移量,用于表示对所述待量化数据进行偏移的量。
3.根据权利要求1或2所述的方法,所述确定与神经网络待量化数据所对应的量化参数,包括:
通过查找待量化数据与量化参数对应关系,确定与所述待量化数据所对应的量化参数。
4.根据权利要求1或2所述的方法,所述确定与神经网络待量化数据所对应的量化参数,包括:
根据待量化数据和对应的数据位宽确定所述量化参数,其中,所述数据位宽,用于表示量化数据的位数。
5.根据权利要求4所述的方法,根据待量化数据和对应的数据位宽确定所述量化参数,包括:
当所述量化参数不包括偏移量时,目标数据的点位置由所述目标数据的绝对值最大值和所述目标数据对应的数据位宽确定,所述目标数据为任意一种待量化数据。
6.根据权利要求4所述的方法,根据待量化数据和对应的数据位宽确定所述量化参数,包括:
当所述量化参数包括偏移量时,目标数据的点位置由所述目标数据的最大值、最小值和所述目标数据对应的数据位宽确定,所述目标数据为任意一种待量化数据。
7.根据权利要求4所述的方法,根据待量化数据和对应的数据位宽确定所述量化参数,包括:
当所述量化参数不包括偏移量时,根据所述目标数据对应的数据位宽确定所述目标数据的量化后数据的最大值;
根据所述目标数据的绝对值最大值和所述目标数据的量化后数据的最大值,得到所述目标数据的缩放系数;其中,
所述目标数据为任意一种待量化数据。
8.根据权利要求4所述的方法,根据待量化数据和对应的数据位宽确定所述量化参数,包括:
当所述量化参数包括偏移量时,根据所述目标数据对应的数据位宽确定所述目标数据的量化后的最大值;
根据所述目标数据的最大值、最小值和所述目标数据的量化后数据的最大值,得到所述目标数据的缩放系数;其中,
所述目标数据为任意一种待量化数据。
9.根据权利要求4所述的方法,根据待量化数据和对应的数据位宽确定所述量化参数,包括:
所述目标数据的偏移量由所述目标数据的最大值和最小值确定,所述目标数据为任意一种待量化数据。
10.根据权利要求1至9中任一项所述的方法,所述根据所述量化数据对神经网络进行运算,包括:
根据目标数据和目标数据对应的量化数据确定所述量化数据的量化误差,所述目标数据为任意一种待量化数据;
根据所述量化误差和误差阈值,调整所述目标数据对应的数据位宽得到所述目标数据调整后的数据位宽;
根据所述目标数据调整后的数据位宽,调整所述目标数据对应的量化参数得到调整后的量化参数;
根据所述调整后的量化参数对所述目标数据进行量化,得到所述目标数据对应的调整后的量化数据;
根据所述目标数据对应的调整后的量化数据对神经网络进行运算。
11.根据权利要求10所述的方法,所述根据所述量化误差和误差阈值,调整所述目标数据对应的数据位宽得到所述目标数据调整后的数据位宽,包括:
当所述量化误差大于第一误差阈值时,增加所述数据位宽,得到所述调整后的数据位宽。
12.根据权利要求11所述的方法,所述方法还包括:
根据调整后的数据位宽和所述目标数据计算所述目标数据调整后的量化误差;
根据所述调整后的量化误差和所述第一误差阈值继续增加所述数据位宽,直到根据所述调整后的数据位宽计算得到的调整后的量化误差不大于所述第一误差阈值。
13.根据权利要求10至12中任一项所述的方法,所述方法还包括:
当所述量化误差小于第二误差阈值时,减小所述数据位宽,得到所述调整后的数据位宽。
14.根据权利要求13所述的方法,所述方法还包括:
根据所述调整后的数据位宽和所述目标数据计算所述目标数据调整后的量化误差;
根据所述调整后的量化误差和所述第二误差阈值,继续减小所述数据位宽,直到根据所述调整后的数据位宽计算得到的调整后的量化误差不小于所述第二误差阈值。
15.根据权利要求1至14中任一项所述的方法,所述方法还包括:
根据当前迭代中目标数据的数据变动幅度和历史迭代中所述目标数据的数据变动幅度,确定目标迭代间隔,以使所述神经网络根据所述目标迭代间隔更新所述目标数据的量化参数;其中,
所述历史迭代为所述当前迭代之前的迭代;
所述目标迭代间隔至少包括一次迭代。
16.根据权利要求15所述的方法,所述方法还包括:
根据当前迭代中目标数据的数据位宽,确定所述目标数据在所述目标迭代间隔内迭代所对应的数据位宽,以使所述神经网络根据所述目标数据在所述目标迭代间隔内迭代所对应的数据位宽,确定所述目标数据所对应的量化参数。
17.根据权利要求15所述的方法,所述方法还包括:
根据所述目标数据在所述当前迭代中的点位置,确定所述目标数据在所述目标迭代间隔内迭代所对应的点位置。
18.根据权利要求15所述的方法,所述根据当前迭代中目标数据的数据变动幅度和历史迭代中所述目标数据的数据变动幅度,确定目标迭代间隔,包括:
根据在当前迭代中所述目标数据的点位置的滑动平均值与上一迭代间隔对应迭代的点位置的滑动平均值,确定所述目标数据的点位置的第一数据变动幅度;
根据所述第一数据变动幅度确定所述目标数据的目标迭代间隔;其中,
所述目标迭代间隔与所述第一数据变动幅度反相关。
19.根据权利要求18所述的方法,所述根据在当前迭代中所述目标数据的点位置的滑动平均值与上一迭代间隔对应迭代的点位置的滑动平均值,确定所述目标数据的点位置的第一数据变动幅度,包括:
计算在当前迭代中所述目标数据的点位置的滑动平均值与上一迭代间隔对应迭代的点位置的滑动平均值的差值;
将所述差值的绝对值确定为第一数据变动幅度。
20.根据权利要求18或19所述的方法,所述方法还包括:
根据历史迭代间隔确定与所述当前迭代的点位置对应的历史迭代的点位置;
根据目标数据在当前迭代的点位置和在所述历史迭代的点位置,确定目标数据对应的各迭代间隔的点位置的滑动平均值。
21.根据权利要求18至20中任一项所述的方法,所述方法还包括:
根据当前迭代所述目标数据和所述目标数据对应的量化数据,得到第二数据变动幅度;
所述根据当前迭代中目标数据的数据变动幅度和历史迭代中所述目标数据的数据变动幅度,确定目标迭代间隔,包括:
根据所述目标数据的第一数据变动幅度和所述第二数据变动幅度,确定所述目标数据对应的目标迭代间隔。
22.根据权利要求21中所述的方法,所述根据当前迭代所述目标数据和所述目标数据对应的量化数据,得到第二数据变动幅度,包括:
计算在当前迭代中所述目标数据和所述目标数据对应的量化数据之间的误差;
将所述误差的平方确定为所述第二数据变动幅度。
23.根据权利要求21中所述的方法,所述根据所述目标数据的第一数据变动幅度和第二数据变动幅度,确定所述目标数据对应的目标迭代间隔,还包括:
根据所述第二数据变动幅度与所述第一变动幅度之间的较大值,确定所述目标数据对应的目标迭代间隔;其中,
所述迭代间隔的数值与所述较大值反相关。
24.根据权利要求15至23中任一项所述的方法,所述根据当前迭代中目标数据的数据变动幅度和历史迭代中所述目标数据的数据变动幅度,包括:
在当前迭代位于更新周期以外时,获取当前迭代以及历史迭代中目标数据的数据变动幅度,所述更新周期包括至少一个迭代。
25.根据权利要求1至24中任一项所述的方法,所述方法还包括:
在当前迭代位于预设周期内时,根据当前迭代、在所述预设周期的下一周期中与所述当前迭代对应的迭代以及当前迭代对应的迭代间隔,确定周期间隔;
根据所述目标数据在当前迭代对应的数据位宽,确定在所述周期间隔内的迭代中所述目标数据的数据位宽;或
根据所述目标数据在当前迭代对应的点位置,确定在所述周期间隔内的迭代中所述目标数据的点位置。
26.根据权利要求1至25中任一项所述的方法,所述根据所述量化数据对神经网络进行运算,包括:
根据所述量化数据对神经网络进行推理运算、训练运算和微调运算中的至少一种。
27.一种神经网络运算装置,包括:
量化参数确定模块,用于确定与神经网络待量化数据所对应的量化参数,所述待量化数据包括神经元、权值、梯度、偏置中的至少一种;
量化模块,用于根据所述量化参数对对应的所述待量化数据进行量化,得到量化数据;
执行模块,用于根据所述量化数据对神经网络进行运算。
28.根据权利要求27所述的装置,所述量化参数包括点位置、缩放系数和偏移量中的至少一种,其中,
所述点位置,用于表示所述量化数据中的小数点的位置;
所述缩放系数,用于表示对所述待量化数据进行缩放的系数;
所述偏移量,用于表示对所述待量化数据进行偏移的量。
29.根据权利要求27或28所述的装置,所述量化参数确定模块包括:
第一量化参数确定子模块,用于通过查找待量化数据与量化参数对应关系,确定与所述待量化数据所对应的量化参数。
30.根据权利要求27或28所述的装置,所述量化参数确定模块包括:
第二量化参数确定子模块,用于根据待量化数据和对应的数据位宽确定所述量化参数,其中,所述数据位宽,用于表示量化数据的位数。
31.根据权利要求30所述的装置,所述第二量化参数确定子模块,用于当所述量化参数不包括偏移量时,根据所述目标数据的绝对值最大值和所述目标数据对应的数据位宽确定目标数据的点位置,所述目标数据为任意一种待量化数据。
32.根据权利要求30所述的装置,所述第二量化参数确定子模块,还用于当所述量化参数包括偏移量时,根据所述目标数据的最大值、最小值和所述目标数据对应的数据位宽确定目标数据的点位置,所述目标数据为任意一种待量化数据。
33.根据权利要求30所述的装置,所述第二量化参数确定子模块,还用于当所述量化参数不包括偏移量时,根据所述目标数据对应的数据位宽确定所述目标数据的量化后数据的最大值;根据所述目标数据的绝对值最大值和所述目标数据的量化后数据的最大值,得到所述目标数据的缩放系数;其中,所述目标数据为任意一种待量化数据。
34.根据权利要求30所述的装置,所述第二量化参数确定子模块,还用于当所述量化参数包括偏移量时,根据所述目标数据对应的数据位宽确定所述目标数据的量化后的最大值;根据所述目标数据的最大值、最小值和所述目标数据的量化后数据的最大值,得到所述目标数据的缩放系数;其中,所述目标数据为任意一种待量化数据。
35.根据权利要求30所述的装置,所述第二量化参数确定子模块,还用于根据所述目标数据的最大值和最小值确定所述目标数据的偏移量,所述目标数据为任意一种待量化数据。
36.根据权利要求27至35中任一项所述的装置,所述装置还包括:
量化误差确定模块,用于根据目标数据和目标数据对应的量化数据确定所述量化数据的量化误差,所述目标数据为任意一种待量化数据;
调整位宽确定模块,用于根据所述量化误差和误差阈值,调整所述目标数据对应的数据位宽得到所述目标数据调整后的数据位宽;
调整量化参数确定模块,用于根据所述目标数据调整后的数据位宽,调整所述目标数据对应的量化参数得到调整后的量化参数;
调整数据量化模块,用于根据所述调整后的量化参数对所述目标数据进行量化,得到所述目标数据对应的调整后的量化数据;
调整执行模块,用于根据所述目标数据对应的调整后的量化数据对神经网络进行训练。
37.根据权利要求36所述的装置,所述调整位宽确定模块,包括:
第一调整位宽确定子模块,用于当所述量化误差大于第一误差阈值时,增加所述数据位宽,得到所述调整后的数据位宽。
38.根据权利要求36所述的装置,所述调整位宽确定模块,还包括:
第一量化误差确定子模块,用于根据调整后的数据位宽和所述目标数据计算所述目标数据调整后的量化误差;
第二调整位宽确定子模块,用于根据所述调整后的量化误差和所述第一误差阈值继续增加所述数据位宽,直到根据所述调整后的数据位宽计算得到的调整后的量化误差不大于所述第一误差阈值。
39.根据权利要求36所述的装置,所述调整位宽确定模块,还包括:
第三调整位宽确定子模块,用于当所述量化误差小于第二误差阈值时,减小所述数据位宽,得到所述调整后的数据位宽。
40.根据权利要求36所述的装置,所述调整位宽确定模块还包括:
第二量化误差确定子模块,用于根据调整后的数据位宽和所述目标数据计算所述目标数据调整后的量化误差;
第四调整位宽确定子模块,用于根据所述调整后的量化误差和所述第二误差阈值,继续减小所述数据位宽,直到根据所述调整后的数据位宽计算得到的调整后的量化误差不小于所述第二误差阈值。
41.根据权利要求27至40中任一项所述的装置,所述装置还包括:
目标迭代间隔确定模块,用于根据当前迭代中目标数据的数据变动幅度和历史迭代中所述目标数据的数据变动幅度,确定目标迭代间隔,以使所述神经网络根据所述目标迭代间隔更新所述目标数据的量化参数;其中,
所述历史迭代为所述当前迭代之前的迭代;
所述目标迭代间隔用于表征调整所述目标数据的量化参数的迭代所间隔的迭代数量,至少包括一次迭代。
42.根据权利要求40所述的装置,所述装置还包括:
第一目标迭代间隔应用模块,用于根据在当前迭代中目标数据的数据位宽,确定所述目标数据在所述目标迭代间隔内迭代所对应的数据位宽,以使所述神经网络根据所述目标数据在所述目标迭代间隔内迭代所对应的数据位宽,确定所述目标数据所对应的量化参数。
43.根据权利要求40所述的装置,所述装置还包括:
第二目标迭代间隔应用模块,用于根据所述目标数据在所述当前迭代中的点位置,确定所述目标数据在所述目标迭代间隔内迭代所对应的点位置。
44.根据权利要求40所述的装置,所述目标迭代间隔确定模块,还用于根据在当前迭代中所述目标数据的点位置的滑动平均值与上一迭代间隔对应迭代的点位置的滑动平均值,确定所述目标数据的点位置的第一数据变动幅度;根据所述第一数据变动幅度确定所述目标数据的目标迭代间隔;其中,所述目标迭代间隔与所述第一数据变动幅度反相关。
45.根据权利要求44所述的装置,所述目标迭代间隔确定模块包括:
第一数据变动幅度子模块,用于计算当前迭代的所述目标数据的点位置的滑动平均值与上一迭代间隔对应迭代的点位置的滑动平均值的差值;
第一目标迭代间隔确定子模块,用于将所述差值的绝对值确定为第一数据变动幅度。
46.根据权利要求44或45所述的装置,所述目标迭代间隔确定模块还包括:
滑动平均值计算子模块,用于根据历史迭代间隔确定与所述当前迭代的点位置对应的历史迭代的点位置;根据目标数据在当前迭代的点位置和在所述历史迭代的点位置,确定目标数据对应的各迭代间隔的点位置的滑动平均值。
47.根据权利要求44至46中任一项所述的装置,所述目标迭代间隔确定模块还包括:
第二数据变动幅度子模块,用于根据当前迭代所述目标数据和所述目标数据对应的量化数据,得到第二数据变动幅度;
第二目标迭代间隔确定子模块,用于根据所述目标数据的第一数据变动幅度和所述第二数据变动幅度,确定所述目标数据对应的目标迭代间隔。
48.根据权利要求47中所述的方法,所述第二数据变动幅度子模块还用于计算在当前迭代中所述目标数据和所述目标数据对应的量化数据之间的误差;将所述误差的平方确定为所述第二数据变动幅度。
49.根据权利要求47中所述的装置,所述第二目标迭代间隔确定子模块还用于根据所述第二数据变动幅度和所述第一变动幅度之间的较大值,确定所述目标数据对应的目标迭代间隔;其中,所述迭代间隔的数值与所述较大值反相关。
50.根据权利要求36至49中任一项所述的装置,所述数据变动幅度确定模块还包括第三数据变动幅度确定子模块,用于在当前迭代位于更新周期以外时,获取当前迭代以及历史迭代中目标数据的数据变动幅度,所述更新周期包括至少一个迭代。
51.根据权利要求27至50中任一项所述的装置,所述装置还包括:
周期间隔确定模块,用于在当前迭代位于预设周期内时,根据当前迭代、在所述预设周期的下一周期中与所述当前迭代对应的迭代以及当前迭代对应的迭代间隔,确定周期间隔;
第一周期间隔应用模块,用于根据所述目标数据在当前迭代对应的数据位宽,确定在所述周期间隔内的迭代中所述目标数据的数据位宽;或
第二周期间隔应用模块,用于根据所述目标数据在当前迭代对应的点位置,确定在所述周期间隔内的迭代中所述目标数据的点位置。
52.根据权利要求27至51中任一项所述的装置,所述执行模块还用于根据所述量化数据对神经网络进行推理运算、训练运算和微调运算中的至少一种。
53.一种计算机设备,包括存储器及处理器,所述存储器上存储有可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现权利要求1至26中任一项所述方法的步骤。
54.一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现权利要求1至26中任一项所述的方法的步骤。
55.一种人工智能芯片,所述芯片包括如权利要求27至52中任意一项所述的神经网络运算装置。
56.一种电子设备,所述电子设备包括如权利要求55所述的人工智能芯片。
57.一种板卡,所述板卡包括:存储器件、接口装置和控制器件以及如权利要求55所述的人工智能芯片;
其中,所述人工智能芯片与所述存储器件、所述控制器件以及所述接口装置分别连接;
所述存储器件,用于存储数据;
所述接口装置,用于实现所述人工智能芯片与外部设备之间的数据传输;
所述控制器件,用于对所述人工智能芯片的状态进行监控。
58.根据权利要求57所述的板卡,
所述存储器件包括:多组存储单元,每一组所述存储单元与所述人工智能芯片通过总线连接,所述存储单元为:DDR SDRAM;
所述芯片包括:DDR控制器,用于对每个所述存储单元的数据传输与数据存储的控制;
所述接口装置为:标准PCIE接口。
CN201910887544.7A 2019-06-12 2019-09-19 一种神经网络运算方法及装置以及相关产品 Active CN112085183B (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
CN201910570125 2019-06-27
CN2019105701250 2019-06-27

Publications (2)

Publication Number Publication Date
CN112085183A true CN112085183A (zh) 2020-12-15
CN112085183B CN112085183B (zh) 2024-04-02

Family

ID=69185300

Family Applications (14)

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

Application Number Title Priority Date Filing Date
CN201910960385.9A Active CN112085193B (zh) 2019-06-12 2019-09-19 一种神经网络的量化参数确定方法及相关产品
CN201910959851.1A Active CN112085191B (zh) 2019-06-12 2019-09-19 一种神经网络的量化参数确定方法及相关产品
CN201910959360.7A Active CN112085189B (zh) 2019-06-12 2019-09-19 一种神经网络的量化参数确定方法及相关产品
CN201910889339.4A Active CN112085188B (zh) 2019-06-12 2019-09-19 一种神经网络的量化参数确定方法及相关产品
CN201910888626.3A Active CN112085186B (zh) 2019-06-12 2019-09-19 一种神经网络的量化参数确定方法及相关产品
CN201910959831.4A Active CN112085190B (zh) 2019-06-12 2019-09-19 一种神经网络的量化参数确定方法及相关产品

Family Applications After (7)

Application Number Title Priority Date Filing Date
CN201910888150.3A Active CN112085185B (zh) 2019-06-12 2019-09-19 量化参数调整方法、装置及相关产品
CN201980005061.8A Pending CN112400176A (zh) 2019-06-12 2019-09-19 一种神经网络的量化参数确定方法及相关产品
CN201910886577.XA Active CN112085181B (zh) 2019-06-12 2019-09-19 神经网络量化方法及装置以及相关产品
CN201910887861.9A Active CN112085184B (zh) 2019-06-12 2019-09-19 量化参数调整方法、装置及相关产品
CN201910960314.9A Active CN112085192B (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 一种数据处理方法及相关产品

Country Status (6)

Country Link
US (2) US11675676B2 (zh)
EP (4) EP3998554A4 (zh)
JP (3) JP2021530769A (zh)
KR (3) KR102656332B1 (zh)
CN (14) CN112085193B (zh)
WO (2) WO2020248424A1 (zh)

Families Citing this family (27)

* 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
US11169803B2 (en) 2018-02-13 2021-11-09 Shanghai Cambricon Information Technology Co., Ltd. Computing device and method
CN116991225A (zh) 2018-02-14 2023-11-03 上海寒武纪信息科技有限公司 处理器的控制装置、方法及设备
EP3798850A4 (en) 2018-06-27 2022-03-23 Shanghai Cambricon Information Technology Co., Ltd ON-CHIP CODE BREAKPOINT DEBUG METHOD, ON-CHIP PROCESSOR AND CHIP BREAKPOINT DEBUG SYSTEM
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
US11676028B2 (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 中科寒武纪科技股份有限公司 一种用于神经网络的算子融合方法及其相关产品
JP7146952B2 (ja) 2019-08-23 2022-10-04 安徽寒武紀信息科技有限公司 データ処理方法、装置、コンピュータデバイス、及び記憶媒体
CN112487182B (zh) * 2019-09-12 2024-04-12 华为技术有限公司 文本处理模型的训练方法、文本处理方法及装置
WO2021056180A1 (en) * 2019-09-24 2021-04-01 Baidu.Com Times Technology (Beijing) Co., Ltd. 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 安徽寒武纪信息科技有限公司 时钟控制装置及相关产品
KR20220033713A (ko) * 2020-09-10 2022-03-17 에스케이하이닉스 주식회사 데이터 처리 시스템 및 그 동작 방법
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 한국전자기술연구원 딥러닝 네트워크 양자화 처리 방법 및 시스템
KR20230136572A (ko) * 2022-03-18 2023-09-26 인텔렉추얼디스커버리 주식회사 신경망 기반 특징 텐서 압축 방법 및 장치
CN114611697B (zh) * 2022-05-11 2022-09-09 上海登临科技有限公司 神经网络量化及部署方法、系统、电子设备及存储介质
CN117787358A (zh) * 2024-01-16 2024-03-29 之江实验室 一种基于阻变存储器的模型量化方法、装置以及设备
CN117910421A (zh) * 2024-03-15 2024-04-19 南京美辰微电子有限公司 一种基于神经网络的动态近似电路计算部署方法及系统

Citations (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20140046885A1 (en) * 2012-08-07 2014-02-13 Qualcomm Incorporated Method and apparatus for optimized representation of variables in neural systems
CN106529668A (zh) * 2015-11-17 2017-03-22 中国科学院计算技术研究所 加速深度神经网络算法的加速芯片的运算装置及方法
WO2017168427A1 (en) * 2016-03-31 2017-10-05 Clear Px Technologies Ltd Temperature controlling device and system having static cooling capacity
CN107480770A (zh) * 2017-07-27 2017-12-15 中国科学院自动化研究所 可调节量化位宽的神经网络量化与压缩的方法及装置
CN108288089A (zh) * 2018-01-29 2018-07-17 百度在线网络技术(北京)有限公司 用于生成卷积神经网络的方法和装置
US20180322391A1 (en) * 2017-05-05 2018-11-08 Nvidia Corporation Loss-scaling for deep neural network training with reduced precision
CN109121435A (zh) * 2017-04-19 2019-01-01 上海寒武纪信息科技有限公司 处理装置和处理方法
US20190050710A1 (en) * 2017-08-14 2019-02-14 Midea Group Co., Ltd. Adaptive bit-width reduction for neural networks
CN109472353A (zh) * 2018-11-22 2019-03-15 济南浪潮高新科技投资发展有限公司 一种卷积神经网络量化电路及量化方法
US20190122100A1 (en) * 2017-10-19 2019-04-25 Samsung Electronics Co., Ltd. Method and apparatus with neural network parameter quantization
CN109754074A (zh) * 2018-12-29 2019-05-14 北京中科寒武纪科技有限公司 一种神经网络量化方法、装置以及相关产品
US20190164057A1 (en) * 2019-01-30 2019-05-30 Intel Corporation Mapping and quantification of influence of neural network features for explainable artificial intelligence

Family Cites Families (237)

* 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
EP0509576B1 (en) * 1991-04-18 1998-01-28 Ampex Systems Corporation Method and apparatus for determining a quantizing factor for processes involving multiple compression/decompression of data
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
ATE354688T1 (de) 2000-09-07 2007-03-15 Nippon Steel Corp Sechswertiges chrom-freies oberflächenbehandlungsmittel für auf sn- oder al- basis beschichtetes stahlblech, und oberflächenbehandltes stahlblech
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
US8051118B2 (en) 2007-04-26 2011-11-01 International Business Machines Corporation Composition of decimal floating point data
US8051117B2 (en) 2007-04-26 2011-11-01 International Business Machines Corporation Shift significand 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
US8478507B2 (en) 2010-04-21 2013-07-02 Toyota Jidosha Kabushiki Kaisha Control device for internal combustion engine
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系统的接收系统及降低接收系统内存的方法
CN103534664B (zh) 2011-05-12 2016-08-31 苹果公司 存在感测
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
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 天津市天祥世联网络科技有限公司 基于浮点数运算内联函数库的神经网络优化方法
US20150369963A1 (en) 2012-11-22 2015-12-24 Keio University Acrylic copolymer, optical film, polarizing plate and liquid crystal display device
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 杭州朗和科技有限公司 深度神经网络学习方法、处理器和深度神经网络学习系统
CN115100017A (zh) 2015-06-10 2022-09-23 无比视视觉技术有限公司 用于处理图像的图像处理器和方法
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
EP3353745A1 (en) 2015-09-30 2018-08-01 Piksel, Inc. Improved 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 阿里巴巴集团控股有限公司 一种基于神经网络的数据处理方法和装置
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
CN106991478B (zh) 2016-01-20 2020-05-08 中科寒武纪科技股份有限公司 用于执行人工神经网络反向训练的装置和方法
CN106991477B (zh) * 2016-01-20 2020-08-14 中科寒武纪科技股份有限公司 一种人工神经网络压缩编码装置和方法
CN106997236B (zh) 2016-01-25 2018-07-13 亮风台(上海)信息科技有限公司 基于多模态输入进行交互的方法和设备
US10664766B2 (en) 2016-01-27 2020-05-26 Bonsai AI, Inc. Graphical user interface to an artificial intelligence engine utilized to generate one or more trained artificial intelligence models
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
US10552119B2 (en) 2016-04-29 2020-02-04 Intel Corporation Dynamic management of numerical representation in a distributed matrix processor architecture
CN107330515A (zh) 2016-04-29 2017-11-07 北京中科寒武纪科技有限公司 一种用于执行人工神经网络正向运算的装置和方法
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
CN107657316B (zh) 2016-08-12 2020-04-07 北京深鉴智能科技有限公司 通用处理器与神经网络处理器的协同系统设计
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 南京地平线机器人技术有限公司 用于神经网络的复合运算单元、方法和电子设备
US10332302B2 (en) 2017-04-17 2019-06-25 Intel Corporation Scatter gather engine
US10402932B2 (en) 2017-04-17 2019-09-03 Intel Corporation Power-based and target-based graphics quality adjustment
CN108734287A (zh) * 2017-04-21 2018-11-02 展讯通信(上海)有限公司 深度神经网络模型的压缩方法及装置、终端、存储介质
CN107025629B (zh) 2017-04-27 2021-03-26 维沃移动通信有限公司 一种图像处理方法及移动终端
KR102034661B1 (ko) * 2017-04-28 2019-10-21 서울대학교산학협력단 뉴럴네트워크를 위한 데이터 양자화 방법 및 장치
US10019668B1 (en) 2017-05-19 2018-07-10 Google Llc Scheduling neural network processing
KR102526650B1 (ko) * 2017-05-25 2023-04-27 삼성전자주식회사 뉴럴 네트워크에서 데이터를 양자화하는 방법 및 장치
CN107239826A (zh) * 2017-06-06 2017-10-10 上海兆芯集成电路有限公司 在卷积神经网络中的计算方法及装置
CN107256422A (zh) * 2017-06-06 2017-10-17 上海兆芯集成电路有限公司 数据量化方法及装置
TWI675335B (zh) 2017-06-09 2019-10-21 宏達國際電子股份有限公司 訓練任務優化系統、訓練任務優化方法及其非暫態電腦可讀媒體
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
EP3646164A4 (en) 2017-06-30 2021-01-20 INTEL Corporation HETEROGENIC MULTIPLIER
CN107451654B (zh) 2017-07-05 2021-05-18 深圳市自行科技有限公司 卷积神经网络的加速运算方法、服务器及存储介质
CN109214509B (zh) 2017-07-05 2021-07-06 中国科学院沈阳自动化研究所 一种用于深度神经网络高速实时量化结构和运算实现方法
US10427306B1 (en) 2017-07-06 2019-10-01 X Development Llc Multimodal object identification
CN107992329B (zh) 2017-07-20 2021-05-11 上海寒武纪信息科技有限公司 一种计算方法及相关产品
CN107451658B (zh) 2017-07-24 2020-12-15 杭州菲数科技有限公司 浮点运算定点化方法及系统
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 삼성전자주식회사 뉴럴 네트워크의 파라미터들을 양자화하는 방법 및 장치
US11593644B2 (en) 2017-08-08 2023-02-28 Samsung Electronics Co., Ltd. Method and apparatus for determining memory requirement in a network
EP3679524A4 (en) * 2017-09-05 2020-10-28 Panasonic Intellectual Property Corporation of America EXECUTION METHOD, EXECUTION DEVICE, LEARNING METHOD, LEARNING DEVICE AND PROGRAM FOR A DEEP NEURONAL NETWORK
CN107644254A (zh) * 2017-09-09 2018-01-30 复旦大学 一种卷积神经网络权重参数量化训练方法及系统
KR20190034985A (ko) * 2017-09-25 2019-04-03 삼성전자주식회사 인공 신경망의 양자화 방법 및 장치
KR102380494B1 (ko) 2017-09-29 2022-03-29 상하이 캠브리콘 인포메이션 테크놀로지 컴퍼니 리미티드 화상처리장치 및 방법
US10224954B1 (en) 2017-09-29 2019-03-05 Intel Corporation Floating point to fixed point conversion
CN107679490B (zh) * 2017-09-29 2019-06-28 百度在线网络技术(北京)有限公司 用于检测图像质量的方法和装置
US10223114B1 (en) 2017-09-29 2019-03-05 Intel Corporation Fixed point to floating point conversion
US11437032B2 (en) 2017-09-29 2022-09-06 Shanghai Cambricon Information Technology Co., Ltd Image processing apparatus and method
US11450319B2 (en) 2017-09-29 2022-09-20 Cambricon (Xi'an) Semiconductor Co., Ltd. Image processing apparatus and method
JP6540770B2 (ja) * 2017-10-17 2019-07-10 富士通株式会社 演算処理回路、演算処理回路を含む演算処理装置、演算処理装置を含む情報処理装置、および方法
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 百度在线网络技术(北京)有限公司 用于生成卷积神经网络的方法和装置
US20190251429A1 (en) 2018-02-12 2019-08-15 Kneron, Inc. Convolution operation device and method of scaling convolution input for convolution neural network
US11169803B2 (en) 2018-02-13 2021-11-09 Shanghai Cambricon Information Technology Co., Ltd. Computing device and method
US11630666B2 (en) 2018-02-13 2023-04-18 Shanghai Cambricon Information Technology Co., Ltd Computing device and method
US11106598B2 (en) 2018-02-13 2021-08-31 Shanghai Cambricon Information Technology Co., Ltd. Computing device and method
CN116991225A (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 西安交通大学 一种基于全卷积网络的探地雷达目标检测方法
CN109146057B (zh) * 2018-06-26 2020-12-08 杭州雄迈集成电路技术股份有限公司 一种基于查表计算的高精度的神经网络工程化方法
CN109102064B (zh) * 2018-06-26 2020-11-13 杭州雄迈集成电路技术股份有限公司 一种高精度的神经网络量化压缩方法
EP3798850A4 (en) 2018-06-27 2022-03-23 Shanghai Cambricon Information Technology Co., Ltd ON-CHIP CODE BREAKPOINT DEBUG METHOD, ON-CHIP PROCESSOR AND CHIP BREAKPOINT DEBUG SYSTEM
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 上海寒武纪信息科技有限公司 信号处理装置、信号处理方法及相关产品
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
CN111385462A (zh) 2018-12-28 2020-07-07 上海寒武纪信息科技有限公司 信号处理装置、信号处理方法及相关产品
CN109740739B (zh) * 2018-12-29 2020-04-24 中科寒武纪科技股份有限公司 神经网络计算装置、神经网络计算方法及相关产品
CN109740754B (zh) * 2018-12-29 2020-04-14 中科寒武纪科技股份有限公司 神经网络计算装置、神经网络计算方法及相关产品
CN109800865B (zh) * 2019-01-24 2021-03-23 北京市商汤科技开发有限公司 神经网络生成及图像处理方法和装置、平台、电子设备
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位整型量化推理方法
CN110059733A (zh) 2019-04-01 2019-07-26 苏州科达科技股份有限公司 卷积神经网络的优化及快速目标检测方法、装置
CN109993296B (zh) 2019-04-01 2020-12-29 安徽寒武纪信息科技有限公司 量化实现方法及相关产品
US20200334522A1 (en) 2019-04-18 2020-10-22 Cambricon Technologies Corporation Limited Data processing method and related products
CN111832737B (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
US11676028B2 (en) * 2019-06-12 2023-06-13 Shanghai Cambricon Information Technology Co., Ltd Neural network quantization parameter determination method and related products
US20210374510A1 (en) 2019-08-23 2021-12-02 Anhui Cambricon Information Technology Co., Ltd. Data processing method, device, computer equipment and storage medium
JP7146952B2 (ja) 2019-08-23 2022-10-04 安徽寒武紀信息科技有限公司 データ処理方法、装置、コンピュータデバイス、及び記憶媒体
EP4020329A4 (en) 2019-08-23 2023-07-05 Anhui Cambricon Information Technology Co., Ltd. DATA PROCESSING METHOD AND APPARATUS, COMPUTER EQUIPMENT, AND STORAGE MEDIA
JP7146953B2 (ja) 2019-08-27 2022-10-04 安徽寒武紀信息科技有限公司 データ処理方法、装置、コンピュータデバイス、及び記憶媒体
CN110780845B (zh) 2019-10-17 2021-11-30 浙江大学 一种用于量化卷积神经网络的可配置近似乘法器及其实现方法

Patent Citations (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20140046885A1 (en) * 2012-08-07 2014-02-13 Qualcomm Incorporated Method and apparatus for optimized representation of variables in neural systems
CN106529668A (zh) * 2015-11-17 2017-03-22 中国科学院计算技术研究所 加速深度神经网络算法的加速芯片的运算装置及方法
WO2017168427A1 (en) * 2016-03-31 2017-10-05 Clear Px Technologies Ltd Temperature controlling device and system having static cooling capacity
CN109121435A (zh) * 2017-04-19 2019-01-01 上海寒武纪信息科技有限公司 处理装置和处理方法
US20180322391A1 (en) * 2017-05-05 2018-11-08 Nvidia Corporation Loss-scaling for deep neural network training with reduced precision
CN107480770A (zh) * 2017-07-27 2017-12-15 中国科学院自动化研究所 可调节量化位宽的神经网络量化与压缩的方法及装置
US20190050710A1 (en) * 2017-08-14 2019-02-14 Midea Group Co., Ltd. Adaptive bit-width reduction for neural networks
US20190122100A1 (en) * 2017-10-19 2019-04-25 Samsung Electronics Co., Ltd. Method and apparatus with neural network parameter quantization
CN108288089A (zh) * 2018-01-29 2018-07-17 百度在线网络技术(北京)有限公司 用于生成卷积神经网络的方法和装置
CN109472353A (zh) * 2018-11-22 2019-03-15 济南浪潮高新科技投资发展有限公司 一种卷积神经网络量化电路及量化方法
CN109754074A (zh) * 2018-12-29 2019-05-14 北京中科寒武纪科技有限公司 一种神经网络量化方法、装置以及相关产品
US20190164057A1 (en) * 2019-01-30 2019-05-30 Intel Corporation Mapping and quantification of influence of neural network features for explainable artificial intelligence

Also Published As

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

Similar Documents

Publication Publication Date Title
CN112085183B (zh) 一种神经网络运算方法及装置以及相关产品
JP7146953B2 (ja) データ処理方法、装置、コンピュータデバイス、及び記憶媒体
WO2021036908A1 (zh) 数据处理方法、装置、计算机设备和存储介质
WO2021036904A1 (zh) 数据处理方法、装置、计算机设备和存储介质
WO2021036890A1 (zh) 数据处理方法、装置、计算机设备和存储介质
CN112085176B (zh) 数据处理方法、装置、计算机设备和存储介质
CN112085187A (zh) 数据处理方法、装置、计算机设备和存储介质
CN112085151A (zh) 数据处理方法、装置、计算机设备和存储介质
CN114819051A (zh) 用于执行神经网络计算的模拟电路的校准方法及装置
CN112085150A (zh) 量化参数调整方法、装置及相关产品
CN112085177A (zh) 数据处理方法、装置、计算机设备和存储介质
CN113298843B (zh) 数据量化处理方法、装置、电子设备和存储介质
WO2021036412A1 (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
GR01 Patent grant
GR01 Patent grant