CN112085184A - 量化参数调整方法、装置及相关产品 - Google Patents

量化参数调整方法、装置及相关产品 Download PDF

Info

Publication number
CN112085184A
CN112085184A CN201910887861.9A CN201910887861A CN112085184A CN 112085184 A CN112085184 A CN 112085184A CN 201910887861 A CN201910887861 A CN 201910887861A CN 112085184 A CN112085184 A CN 112085184A
Authority
CN
China
Prior art keywords
iteration
data
target
bit width
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
CN201910887861.9A
Other languages
English (en)
Other versions
CN112085184B (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 CN112085184A publication Critical patent/CN112085184A/zh
Application granted granted Critical
Publication of CN112085184B publication Critical patent/CN112085184B/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)
  • General Health & Medical Sciences (AREA)
  • Molecular Biology (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示出本披露又一实施例的量化参数调整方法的流程图;
图19示出本披露再一实施例的量化参数调整方法的流程图;
图20示出本披露一实施例的量化参数调整装置的结构框图;
图21示出本披露一实施例的量化参数调整装置的结构框图;
图22示出本披露一实施例的量化参数调整装置的结构框图;
图23示出本披露一实施例的量化参数调整装置的结构框图;
图24示出本披露一实施例的量化参数调整装置的结构框图;
图25示出根据本披露实施例的板卡的结构框图。
具体实施方式
下面将结合本披露实施例中的附图,对本披露实施例中的技术方案进行清楚、完整 地描述,显然,所描述的实施例是本披露一部分实施例,而不是全部的实施例。基于本披露中的实施例,本领域技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本披露保护的范围。
应当理解,本披露的权利要求、说明书及附图中的术语“第一”、“第二”等是用于区别不同对象,而不是用于描述特定顺序。本披露的说明书和权利要求书中使用的术语“包括”和“包含”指示所描述特征、整体、步骤、操作、元素和/或组件的存在,但并不排除 一个或多个其它特征、整体、步骤、操作、元素、组件和/或其集合的存在或添加。
还应当理解,在此本披露说明书中所使用的术语仅仅是出于描述特定实施例的目的, 而并不意在限定本披露。如在本披露说明书和权利要求书中所使用的那样,除非上下文 清楚地指明其它情况,否则单数形式的“一”、“一个”及“该”意在包括复数形式。还应当进 一步理解,在本披露说明书和权利要求书中使用的术语“和/或”是指相关联列出的项中的 一个或多个的任何组合以及所有可能组合,并且包括这些组合。
随着人工智能算法的复杂度提高,待处理数据的数据量和数据维度也在不断增大, 而传统的神经网络算法通常采用浮点数据格式来执行神经网络运算,这就使得不断增大 的数据量等对运算装置的数据处理效率、存储装置的存储容量及访存效率等提出了较大 的挑战。为解决上述问题,可以对神经网络运算过程涉及的运算数据进行量化,即将浮点表示的运算数据转化为定点表示的运算数据,从而减小存储装置的存储容量及访存效率,并提高运算装置的运算效率。但传统的量化方法是在神经网络的整个训练过程中均 采用相同的数据位宽和量化参数(如小数点的位置)对神经网络的不同运算数据进行量 化,由于不同的运算数据之间具有差异性,或者,训练过程中不同阶段的运算数据具有 差异性,使得采用上述量化方法进行量化时,往往会导致精度不够,从而会影响运算结 果。
基于此,本披露提供了一种神经网络的量化参数调整方法,该方法可以应用于包含 存储器110和处理器120的量化参数调整装置中。图1为该量化参数调整装置100的结 构框图,其中,该量化参数调整装置100的处理器120可以是通用处理器,该量化参数 调整装置100的处理器120也可以是人工智能处理器,该量化参数调整装置100的处理 器还可以包含通用处理器和人工智能处理器,此处不做具体限定。该存储器110可以用 于存储神经网络运算过程中的运算数据,该运算数据可以是神经元数据、权值数据或梯 度数据中的一种或多种。该存储器110还可以用于存储计算机程序,该计算机程序被上 述的处理器120执行时,能够实现本披露实施例中的量化参数调整方法。该方法能够应 用于神经网络的训练或微调过程中,并根据神经网络的训练或微调过程的不同阶段的运 算数据的分布特性,动态地调整运算数据的量化参数,从而提高神经网络的量化过程的 精度,进而保证运算结果的准确性和可靠性。
若无特别说明,所述人工智能处理器可以是任何适当的硬件处理器,比如CPU、GPU、 FPGA、DSP和ASIC等等。若无特别说明,所述存储器可以是任何适当的磁存储介质或者磁光存储介质,比如,阻变式存储器RRAM(Resistive Random Access Memory)、动态 随机存取存储器DRAM(Dynamic Random Access Memory)、静态随机存取存储器SRAM (StaticRandom-Access Memory)、增强动态随机存取存储器EDRAM(Enhanced Dynamic RandomAccess Memory)、高带宽内存HBM(High-Bandwidth Memory)或混合存储立方 HMC(HybridMemory Cube)等等。
为更好地理解本披露的内容,以下首先介绍本披露实施例中量化过程及量化过程涉 及到的量化参数。
本披露实施例中,量化是指将第一数据格式的运算数据转化为第二数据格式的运算 数据。其中,该第一数据格式的运算数据可以是浮点表示的运算数据,该第二数据格式的运算数据可以是定点表示的运算数据。由于浮点表示的运算数据通常会占用较大的存储空间,因此通过将浮点表示的运算数据转换为定点表示的运算数据,可以节约存储空间,并提高运算数据的访存效率及运算效率等。
可选地,量化过程中的量化参数可以包括点位置和/或缩放系数,其中,点位置是指 量化后的运算数据中小数点的位置。缩放系数是指量化数据的最大值与待量化数据的最 大绝对值之间的比值。进一步地,量化参数还可以包括偏移量,偏移量是针对非对称的待量化数据而言,是指该待量化数据中多个元素的中间值,具体地,偏移量可以是待量 化数据中多个元素的中点值。当该待量化数据为对称的待量化数据时,量化参数可以不 包含偏移量,此时可以根据该待量化数据确定点位置和/或缩放系数等量化参数。
如图2所示,待量化数据为相对于原点对称的数据,假设Z1为待量化数据中元素的绝对值的最大值,待量化数据对应的数据位宽为n,A为用数据位宽n对待量化数据进行 量化后的量化数据可以表示的最大值,A为2s(2n-1-1),A需要包含Z1,且Z1要大于
Figure BDA0002207851400000041
因 此有公式(1)的约束:
2s(2n-1-1)≥Z1>2s-1(2n-1-1) 公式(1)
处理器可以根据待量化数据中的绝对值最大值Z1和数据位宽n,计算得到点位置s。 例如,可以利用如下公式(2)计算得到待量化数据对应的点位置s:
Figure BDA0002207851400000042
其中,ceil为向上取整,Z1为待量化数据中的绝对值最大值,s为点位置,n为数据位 宽。
此时,当采用点位置s对待量化数据进行量化时,浮点表示的待量化数据Fx可以表示为:Fx≈Ix×2s,其中,Ix是指量化后的n位二进制表示值,s表示点位置。其中,该 待量化数据对应的量化数据为:
Figure BDA0002207851400000051
其中,s为点位置,Ix为量化数据,Fx为待量化数据,round为进行四舍五入的取整运算。可以理解的是,也可以采用其他的取整运算方法,例如采用向上取整、向下取整、 向零取整等取整运算,替换公式(3)中的四舍五入的取整运算。可以理解的是,在数据 位宽一定的情况下,根据点位置量化得到的量化数据中,小数点后的位数越多,量化数 据的量化精度越大。
进一步地,该待量化数据对应的中间表示数据Fx1可以是:
Figure BDA0002207851400000052
其中,s为根据上述公式(2)确定的点位置,Fx为待量化数据,round为进行四舍五入的取整运算。Fx1可以是对上述的量化数据Ix进行反量化获得的数据,该中间表示数据 Fx1的数据表示格式与上述的待量化数据Fx的数据表示格式一致,该中间表示数据Fx1可 以用于计算量化误差,详见下文。其中,反量化是指量化的逆过程。
可选地,缩放系数可以包括第一缩放系数,该第一缩放系数可以按照如下方 式进行计算:
Figure BDA0002207851400000053
其中,Z1为待量化数据中的绝对值最大值,A为用数据位宽n对待量化数据进行 量化后数据的量化数据可以表示的最大值,A为2s(2n-1-1)。
此时,处理器可以采用点位置和第一缩放系数结合的方式对待量化数据Fx进行量化,获 得量化数据:
Figure BDA0002207851400000054
其中,s为根据上述公式(2)确定的点位置,f1为第一缩放系数,Ix为量化数据,Fx为待 量化数据,round为进行四舍五入的取整运算。可以理解的是,也可以采用其他的取整运算方法,例如采用向上取整、向下取整、向零取整等取整运算,替换公式(6)中的四 舍五入的取整运算。
进一步地,该待量化数据对应的中间表示数据Fx1可以是:
Figure BDA0002207851400000055
其中,s为根据上述公式(2)确定的点位置,f1为缩放系数,Fx为待量化数据,round为 进行四舍五入的取整运算。Fx1可以是对上述的量化数据Ix进行反量化获得的数据,该中间表示数据Fx1的数据表示格式与上述的待量化数据Fx的数据表示格式一致,该中间表示数据Fx1可以用于计算量化误差,详见下文。其中,反量化是指量化的逆过程。
可选地,该缩放系数还可以包括第二缩放系数,该第二缩放系数可以按照如下方式 进行计算:
Figure BDA0002207851400000061
处理器可以单独使用第二缩放系数对待量化数据Fx进行量化,获得量化数据:
Figure BDA0002207851400000062
其中,f2为第二缩放系数,Ix为量化数据,Fx为待量化数据,round为进行四舍五入的取整运算。可以理解的是,也可以采用其他的取整运算方法,例如采用向上取整、向 下取整、向零取整等取整运算,替换公式(9)中的四舍五入的取整运算。可以理解的是, 在数据位宽一定的情况下,采用不同的缩放系数,可以调整量化后数据的数值范围。
进一步地,该待量化数据对应的中间表示数据Fx1可以是:
Figure BDA0002207851400000063
其中,f2为第二缩放系数,Fx为待量化数据,round为进行四舍五入的取整运算。Fx1可 以是对上述的量化数据Ix进行反量化获得的数据,该中间表示数据Fx1的数据表示格式与 上述的待量化数据Fx的数据表示格式一致,该中间表示数据Fx1可以用于计算量化误差,详见下文。其中,反量化是指量化的逆过程。
进一步地,上述第二缩放系数可以是根据点位置和第一缩放系数f1确定。即第二缩 放系数可以按照如下公式进行计算:
f2=2s×f1 公式(11)
其中,s为根据上述公式(2)确定的点位置,f1是按照上述公式(5)计算获 得的第一缩放系数。
可选地,本披露实施例的量化方法不仅能够实现对称数据的量化,还可以实现对非 对称数据的量化。此时,处理器可以将非对称的数据转化为对称数据,以避免数据的“溢出”。具体地,量化参数还可以包括偏移量,该偏移量可以是待量化数据的中点值,该偏 移量可以用于表示待量化数据的中点值相对于原点的偏移量。如图3所示,处理器可以对 待量化数据的数据分布进行统计,获得待量化数据中所有元素中的最小值Zmin,以及该 待量化数据中所有元素中的最大值Zmax,之后处理器可以根据该最小值Zmin和最大值 Zmax计算获得上述偏移量。具体的偏移量计算方式如下:
Figure BDA0002207851400000064
其中,o表示偏移量,Zmin表示待量化数据所有元素中的最小值,Zmax表示待量化数据所有元素中的最大值。
进一步地,处理器可以根据该待量化数据所有元素中的最小值Zmin和最大值Zmax确定该待量化数据中的绝对值最大值Z2
Figure BDA0002207851400000065
这样,处理器可以根据偏移量o将待量化数据进行平移,将非对称的待量化数据转化 为对称的待量化数据,如图3所示。处理器还可以根据该待量化数据中的绝对值最大值Z2进一步确定点位置s,其中,点位置可以按照如下公式进行计算:
Figure BDA0002207851400000071
其中,ceil为向上取整,s为点位置,n为数据位宽。
之后,处理器可以根据该偏移量及其对应的点位置对待量化数据进行量化,获得量 化数据:
Figure BDA0002207851400000072
其中,s为根据上述公式(14)确定的点位置,o为偏移量,Ix为量化数据,Fx为待量化数据,round为进行四舍五入的取整运算。可以理解的是,也可以采用其他的取整运 算方法,例如采用向上取整、向下取整、向零取整等取整运算,替换公式(15)中的四 舍五入的取整运算。
进一步地,该待量化数据对应的中间表示数据Fx1可以是:
Figure BDA0002207851400000073
其中,s为根据上述公式(14)确定的点位置,o为偏移量,Fx为待量化数据,round为进 行四舍五入的取整运算。Fx1可以是对上述的量化数据Ix进行反量化获得的数据,该中间表示数据Fx1的数据表示格式与上述的待量化数据Fx的数据表示格式一致,该中间表示数据Fx1可以用于计算量化误差,详见下文。其中,反量化是指量化的逆过程。
进一步可选地,处理器可以根据该待量化数据中的绝对值最大值Z2进一步确定点位 置s和第一缩放系数f1,其中,点位置s具体计算方式可参见上述公式(14)。第一缩放系数f1可以按照如下公式进行计算:
Figure BDA0002207851400000074
处理器可以根据偏移量及其对应的第一缩放系数f1和点位置s,对待量化 数据进行量化,获得量化数据:
Figure BDA0002207851400000075
其中,f1为第一缩放系数,s为根据上述公式(14)确定的点位置,o为偏移量,Ix为量化数据,Fx为待量化数据,round为进行四舍五入的取整运算。可以理解的是,也可以 采用其他的取整运算方法,例如采用向上取整、向下取整、向零取整等取整运算,替换 公式(18)中的四舍五入的取整运算。
进一步地,该待量化数据对应的中间表示数据Fx1可以是:
Figure BDA0002207851400000076
其中,f1为第一缩放系数,s为根据上述公式(14)确定的点位置,o为偏移量,Fx为待量化数据,round为进行四舍五入的取整运算。Fx1可以是对上述的量化数据Ix进行反 量化获得的数据,该中间表示数据Fx1的数据表示格式与上述的待量化数据Fx的数据表示 格式一致,该中间表示数据Fx1可以用于计算量化误差,详见下文。其中,反量化是指量 化的逆过程。
可选地,该缩放系数还可以包括第二缩放系数,该第二缩放系数可以按照如下方式 进行计算:
Figure BDA0002207851400000081
处理器可以单独使用第二缩放系数对待量化数据Fx进行量化,获得量化数据:
Figure BDA0002207851400000082
其中,f2为第二缩放系数,Ix为量化数据,Fx为待量化数据,round为进行四舍五入的取整运算。可以理解的是,也可以采用其他的取整运算方法,例如采用向上取整、向 下取整、向零取整等取整运算,替换公式(21)中的四舍五入的取整运算。可以理解的 是,在数据位宽一定的情况下,采用不同的缩放系数,可以调整量化后数据的数值范围。
进一步地,该待量化数据对应的中间表示数据Fx1可以是:
Figure BDA0002207851400000083
其中,f2为第二缩放系数,Fx为待量化数据,round为进行四舍五入的取整运算。Fx1可 以是对上述的量化数据Ix进行反量化获得的数据,该中间表示数据Fx1的数据表示格式与 上述的待量化数据Fx的数据表示格式一致,该中间表示数据Fx1可以用于计算量化误差,详见下文。其中,反量化是指量化的逆过程。
进一步地,上述第二缩放系数可以根据点位置和第一缩放系数f1确定。即第二缩放 系数可以按照如下公式进行计算:
f2=2s×f1 公式(23)
其中,s为根据上述公式(14)确定的点位置,f1是按照上述公式(17)计算 获得的第一缩放系数。
可选地,处理器还可以根据偏移量o对待量化数据进行量化,此时点位置s和/或缩放 系数可以为预设值。此时,处理器根据偏移量对待量化数据进行量化,获得量化数据:
Ix=round(Fx-o) 公式(24)
其中,o为偏移量,Ix为量化数据,Fx为待量化数据,round为进行四舍五入的取整运算。可以理解的是,也可以采用其他的取整运算方法,例如采用向上取整、向下取整、 向零取整等取整运算,替换公式(24)中的四舍五入的取整运算。可以理解的是,在数 据位宽一定的情况下,采用不同的偏移量,可以调整量化后数据的数值与量化前数据之 间的偏移量。
进一步地,该待量化数据对应的中间表示数据Fx1可以是:
Fx1=round(Fx-o)+o 公式(25)
其中,o为偏移量,Fx为待量化数据,round为进行四舍五入的取整运算。Fx1可以是对上述的量化数据Ix进行反量化获得的数据,该中间表示数据Fx1的数据表示格式与上述的待量化数据Fx的数据表示格式一致,该中间表示数据Fx1可以用于计算量化误差,详见 下文。其中,反量化是指量化的逆过程。
本披露的量化操作不仅可以用于上述浮点数据的量化,还可以用于实现定点数据的 量化。可选地,该第一数据格式的运算数据也可以是定点表示的运算数据,该第二数据格式的运算数据可以是定点表示的运算数据,且第二数据格式的运算数据的数据表示范围小于第一数据格式的数据表示范围,第二数据格式的小数点位数大于第一数据格式的小数点位数,即第二数据格式的运算数据相较于第一数据格式的运算数据具有更高的精度。例如,该第一数据格式的运算数据为占用16位的定点数据,该第二数据格式可以是 占用8位的定点数据。本披露实施例中,可以通过定点表示的运算数据进行量化处理,从 而进一步减小运算数据占用的存储空间,提高运算数据的访存效率及运算效率。
本披露一实施例的量化参数调整方法,能够应用于神经网络的训练或微调过程中, 从而在神经网络的训练或微调过程中,动态地调整神经网络运算过程中运算数据的量化 参数,以提高该神经网络的量化精度。其中,神经网络可以是深度神经网络或卷积神经网络等等,此处不做具体限定。
应当清楚的是,神经网络的训练(Training)是指对神经网络(该神经网络的权值可 以是随机数)进行多次迭代运算(iteration),使得神经网络的权值能够满足预设条件的 过程。其中,一次迭代运算一般包括一次正向运算、一次反向运算和一次权值更新运算。正向运算是指根据神经网络的输入数据进行正向推理,获得正向运算结果的过程。反向 运算是根据正向运算结果与预设参考值确定损失值,并根据该损失值确定权值梯度值和/ 或输入数据梯度值的过程。权值更新运算是指根据权值梯度值调整神经网络的权值的过 程。具体地,神经网络的训练过程如下:处理器可以采用权值为随机数的神经网络对输 入数据进行正向运算,获得正向运算结果。之后处理器根据该正向运算结果与预设参考 值确定损失值,根据该损失值确定权值梯度值和/或输入数据梯度值。最后,处理器可以 根据权值梯度值更新神经网络的梯度值,获得新的权值,完成一次迭代运算。处理器循 环执行多次迭代运算,直至神经网络的正向运算结果满足预设条件。例如,当神经网络 的正向运算结果收敛于预设参考值时,结束训练。或者,当神经网络的正向运算结果与 预设参考值确定的损失值小于或等于预设精度时,结束训练。
微调是指对神经网络(该神经网络的权值已经处于收敛状态而非随机数)进行多次 迭代运算,以使得神经网络的精度能够满足预设需求的过程。该微调过程与上述训练过程基本一致,可以认为是对处于收敛状态的神经网络进行重训练的过程。推理(Inference)是指采用权值满足预设条件的神经网络进行正向运算,从而实现识别或分类等功能的过程,如采用神经网络进行图像识别等等。
本披露实施例中,在上述神经网络的训练或微调过程中,可以在神经网络运算的不 同阶段采用不同的量化参数对神经网络的运算数据进行量化,并根据量化后的数据进行 迭代运算,从而可以减小神经网络运算过程中的数据存储空间,提高数据访存效率及运算效率。如图4所示,上述方法可以包括:
S100、获取待量化数据的数据变动幅度。
可选地,处理器可以直接读取该待量化数据的数据变动幅度,该待量化数据的数据 变动幅度可以是用户输入的。
可选地,处理器也可以根据当前迭代的待量化数据和历史迭代的待量化数据,计算 获得上述的待量化数据的数据变动幅度,其中当前迭代是指当前执行的迭代运算,历史迭代是指在当前迭代之前执行的迭代运算。例如,处理器可以获取当前迭代的待量化数 据中元素的最大值以及元素的平均值,以及各个历史迭代的待量化数据中元素的最大值 以及元素的平均值,并根据各次迭代中元素的最大值和元素的平均值,确定待量化数据 的变动幅度。若当前迭代的待量化数据中元素的最大值与预设数量的历史迭代的待量化 数据中元素的最大值较为接近,且当前迭代的待量化数据中元素的平均值与预设数量的 历史迭代的待量化数据中元素的平均值较为接近时,则可以确定上述的待量化数据的数 据变动幅度较小。否则,则可以确定待量化数据的数据变动幅度较大。再如,该待量化 数据的数据变动幅度可以采用待量化数据的滑动平均值或方差等进行表示,此处不做具 体限定。
本披露实施例中,该待量化数据的数据变动幅度可以用于确定是否需要调整待量化 数据的量化参数。例如,若待量化数据的数据变动幅度较大,则可以说明需要及时调整量化参数,以保证量化精度。若待量化数据的数据变动幅度较小,则当前检验迭代及其 之后一定数量的迭代可以沿用历史迭代的量化参数,从而可以避免频繁的调整量化参数, 提高量化效率。
其中,每次迭代涉及至少一个待量化数据,该待量化数据可以是浮点表示的运算数 据,也可以是定点表示的运算数据。可选地,每次迭代的待量化数据可以是神经元数据、权值数据或梯度数据中的至少一种,梯度数据还可以包括神经元梯度数据和权值梯度数据等。
S200、根据所述待量化数据的数据变动幅度,确定目标迭代间隔,以根据该目标迭代间隔调整神经网络运算中的量化参数,其中,所述目标迭代间隔包括至少一次迭代, 所述神经网络的量化参数用于实现对所述神经网络运算中待量化数据的量化操作。
可选地,该量化参数可以包括上述的点位置和/或缩放系数,其中,缩放系数可以包 括第一缩放系数和第二缩放系数。具体的点位置计算方法可以参见上述的公式(2),缩放系数的计算方法可参见上述的公式(5)或(8),此处不再赘述。可选地,该量化参数 还可以包括偏移量,该偏移量的计算方法可参见上述的公式(12);更进一步地,处理器 还可以根据按照公式(14)确定点位置,根据上述的公式(17)或(20)确定缩放系数。 本申请实施例中,处理器可以根据确定的目标迭代间隔,更新上述的点位置、缩放系数 或偏移量中的至少一种,以调整该神经网络运算中的量化参数。也就是说,该神经网络 运算中的量化参数可以根据神经网络运算中待量化数据的数据变动幅度进行更新,从而 可以保证量化精度。
可以理解的是,通过对神经网络训练或微调过程中的运算数据的变化趋势进行统计 和分析,可以得到待量化数据的数据变动曲线。如图5所示,根据该数据变动曲线可以获知,在神经网络训练或微调的初期,不同迭代的待量化数据的数据变动较为剧烈,随 着训练或微调运算的进行,不同迭代的待量化数据的数据变动逐渐趋于平缓。因此,在 神经网络训练或微调的初期,可以较为频繁地调整量化参数;在神经网络训练或微调的 中期和后期,可以间隔多次迭代或训练周期再调整量化参数。本披露的方法即是通过确 定合适的迭代间隔,以取得量化精度和量化效率的平衡。
具体地,处理器可以通过待量化数据的数据变动幅度,确定目标迭代间隔,以根据该目标迭代间隔调整神经网络运算中的量化参数。可选地,该目标迭代间隔可以随着待 量化数据的数据变动幅度的减小而增大。也就是说,该待量化数据的数据变动幅度越大 时,则该目标迭代间隔越小,表明量化参数的调整越频繁。该待量化数据的数据变动幅 度越小时,则该目标迭代间隔越大,表明量化参数的调整越不频繁。当然,在其他实施 例中,上述的目标迭代间隔还可以是超参数,例如,该目标迭代间隔可以是用户自定义 设置的。
可选地,上述的权值数据、神经元数据及梯度数据等各种待量化数据可以分别具有 的不同的迭代间隔。相应地,处理器可以分别获取各种待量化数据对应的数据变动幅度, 以分别根据每种待量化数据的数据变动幅度,确定相应种类的待量化数据对应的目标迭 代间隔。也就是说,各种待量化数据的量化过程可以是异步进行的。本披露实施例中,由于不同种类的待量化数据之间具有差异性,因此可以采用不同的待量化数据的数据变动幅度,确定相应的目标迭代间隔,并分别根据相应的目标迭代间隔确定对应的量化参数,从而可以保证待量化数据的量化精度,进而保证神经网络的运算结果的正确性。
当然,在其他实施例中,针对不同种类的待量化数据还可以确定相同的目标迭代间 隔,以根据该目标迭代间隔调整相应待量化数据对应的量化参数。例如,处理器可以分别获取各种待量化数据的数据变动幅度,并根据最大的待量化数据的数据变动幅度确定目标迭代间隔,并根据该目标迭代间隔分别确定各种待量化数据的量化参数。更进一步地,不同种类的待量化数据还可以采用相同的量化参数。
进一步可选地,上述的神经网络可以包括至少一个运算层,该待量化数据可以是各 个运算层涉及的神经元数据、权值数据或梯度数据中的至少一种。此时,处理器可以获得当前运算层涉及的待量化数据,并根据上述方法确定当前运算层中各种待量化数据的数据变动幅度及对应的目标迭代间隔。
可选地,处理器可以在每次迭代运算过程中均确定一次上述的待量化数据的数据变 动幅度,并根据相应的待量化数据的数据变动幅度确定一次目标迭代间隔。也就是说,处理器可以在每次迭代均计算一次目标迭代间隔。具体的目标迭代间隔的计算方式可参见下文中的描述。进一步地,处理器可以根据预设条件从各次迭代中选定检验迭代,在 各次检验迭代处确定待量化数据的变动幅度,并根据检验迭代对应的目标迭代间隔对量 化参数等的更新调整。此时,若该迭代不是选定检验迭代,处理器可以忽略该迭代对应 的目标迭代间隔。
可选地,每个目标迭代间隔可以对应一检验迭代,该检验迭代可以是该目标迭代间 隔的起始迭代,也可以是该目标迭代间隔的终止迭代。处理器可以在各个目标迭代间隔的检验迭代处调整神经网络的量化参数,以实现根据目标迭代间隔调整神经网络运算的量化参数。其中,检验迭代可以是用于核查当前量化参数是否满足待量化数据的需求的 时间点。该调整前的量化参数可以与调整后的量化参数相同,也可以与调整后的量化参 数不同。可选地,相邻的检验迭代之间的间隔可以大于或等于一个目标迭代间隔。
例如,该目标迭代间隔可以从当前检验迭代开始计算迭代数量,该当前检验迭代可 以是该目标迭代间隔的起始迭代。例如,当前检验迭代为第100次迭代,处理器根据待量化数据的数据变动幅度,确定目标迭代间隔的迭代间隔为3,则处理器可以确定该目标迭代间隔包括3次迭代,分别为第100次迭代、第101次迭代和第102次迭代。处理器可以在 该第100次迭代处调整神经网络运算中的量化参数。其中,当前检验迭代是处理器当前执 行量化参数更新调整时对应的迭代运算。
可选地,目标迭代间隔还可以是从当前检验迭代的下一次迭代开始计算迭代数量, 该当前检验迭代可以是当前检验迭代之前的上一迭代间隔的终止迭代。例如,当前检验 迭代为第100次迭代,处理器根据待量化数据的数据变动幅度,确定目标迭代间隔的迭代 间隔为3,则处理器可以确定该目标迭代间隔包括3次迭代,分别为第101次迭代、第102次迭代和第103次迭代。处理器可以在该第100次迭代和第103次迭代处调整神经网络运算中的量化参数。本披露对目标迭代间隔的确定方式不做具体限定。
在一个实施例中,根据上文中点位置、缩放系数及偏移量的计算公式可以看出,量化参数往往与待量化数据相关,因此,上述操作S100中,待量化数据的数据变动幅度也 可以通过量化参数的变动幅度间接确定,该待量化数据的数据变动幅度可以通过量化参 数的变动幅度进行表征。具体地,如图6所示,上述操作S100可以包括:
S110、获取点位置的变动幅度;其中,所述点位置的变动幅度能够用于表征所述待量化数据的数据变动幅度,所述点位置的变动幅度与所述待量化数据的数据变动幅度正相关。
可选地,点位置的变动幅度能够间接反应待量化数据的变动幅度。该点位置的变动 幅度可以是根据当前检验迭代的点位置和至少一次历史迭代的点位置确定的。其中,当前检验迭代的点位置及各次历史迭代的点位置可以根据公式(2)进行确定。当然,当前 检验迭代的点位置及各次历史迭代的点位置还可以根据公式(14)进行确定。
例如,处理器还可以计算当前检验迭代的点位置和历史迭代的点位置的方差等,并 根据该方差确定点位置的变动幅度。再如,处理器可以根据当前检验迭代的点位置和历史迭代的点位置的平均值,确定点位置的变动幅度。具体地,如图7所示,上述操作S110 可以包括:
S111、根据所述当前检验迭代之前的上一检验迭代对应的点位置,以及所述上一检 验迭代之前的历史迭代对应的点位置,确定第一均值。其中,上一检验迭代为上一次调整所述量化参数时对应的迭代,上一检验迭代与所述当前检验迭代之间间隔至少一个迭代间隔。
可选地,至少一次历史迭代可以分属于至少一个迭代间隔中,每个迭代间隔可以对 应有一个检验迭代,相邻的两个检验迭代可以具有一个迭代间隔。上述操作S111中的上一检验迭代可以是目标迭代间隔之前的上一迭代间隔对应的检验迭代。
可选地,该第一均值可以按照如下公式进行计算:
M1=a1×st-1+a2×st-2+a3×st-3+…+am×s1 公式(26)
其中,a1~am是指各次迭代的点位置对应的计算权重,st-1是指上一检验迭代对应的 点位置,st-2,st-3…s1是指上一检验迭代之前的历史迭代对应的点位置,M1是指上述 的第一均值。进一步地,根据数据的分布特性,历史迭代与该上一检验迭代距离越远, 对该上一检验迭代附近的迭代的点位置的分布及变动幅度影响越小,因此,上述计算权 重可以按照a1~am的顺序依次减小。
例如,上一检验迭代为神经网络运算的第100次迭代,历史迭代可以是第1次迭代至 第99次迭代,则处理器可以获得该第100次迭代的点位置(即st-1),并获得该第100次迭代之前的历史迭代的点位置,即s1可以指神经网络的第1次迭代对应的点位置……,st-3可以指神经网络的第98次迭代对应的点位置,st-2可以指神经网络的第99次迭代对应的点 位置。进一步地,处理器可以根据上述公式计算获得第一均值。
更进一步地,该第一均值可以根据各个迭代间隔对应的检验迭代的点位置进行计算。 例如,该第一均值可以按照如下公式进行计算:
M1=a1×st-1+a2×st-2+a3×st-3+…+am×s1
其中,a1~am是指各次检验迭代的点位置对应的计算权重,st-1是指上一检验迭代对 应的点位置,st-2,st-3…s1是指上一检验迭代之前的预设数量的迭代间隔的检验迭代对应的点位置,M1是指上述的第一均值。
例如,上一检验迭代为神经网络运算的第100次迭代,历史迭代可以是第1次迭代至 第99次迭代,该99次历史迭代可以分属于11个迭代间隔。比如,第1次迭代至第9次迭代属于第1个迭代间隔,第10次迭代至第18次迭代属于第2个迭代间隔,……,第90次迭代 至第99次迭代属于第11个迭代间隔。则处理器可以获得该第100次迭代的点位置(即st-1), 并获得该第100次迭代之前的迭代间隔中检验迭代的点位置,即s1可以指神经网络的第1 个迭代间隔的检验迭代对应的点位置(比如s1可以指神经网络的第1次迭代对应的点位置),……,st-3可以指神经网络的第10个迭代间隔的检验迭代对应的点位置(比如st-3可 以指神经网络的第81次迭代对应的点位置),st-2可以指神经网络的第11个迭代间隔的检 验迭代对应的点位置(比如,st-2可以指神经网络的第90次迭代对应的点位置)。进一步 地,处理器可以根据上述公式计算获得第一均值M1。
本披露实施例中,为方便举例说明,假定该迭代间隔包含的迭代数量相同。而在实际使用过程中,该迭代间隔包含的迭代数量可以不相同。可选地,该迭代间隔包含的迭 代数量随迭代的增加而增加,即随着神经网络训练或微调的进行,迭代间隔可以越来越 大。
再进一步地,为进一步简化计算,降低数据占用的存储空间,上述第一均值M1可以采用如下公式进行计算:
M1=α×st-1+(1-α)×M0 公式(27)
其中,α是指上一检验迭代对应的点位置的计算权重,st-1是指上一检验迭代对应的 点位置,M0是指该上一检验迭代之前的检验迭代对应的滑动平均值,该M0的具体计算方式可参照上述的M1的计算方式,此处不再赘述。
S112、根据当前检验迭代对应的点位置及所述当前检验迭代之前的历史迭代的点位 置,确定第二均值。其中,当前检验迭代对应的点位置可以根据当前检验迭代的目标数据位宽和待量化数据确定。
可选地,该第二均值M2可以按照如下公式进行计算:
M2=b1×st+b2×st-1+b3×st-2+…+bm×s1 公式(28)
其中,b1~bm是指各次迭代的点位置对应的计算权重,st是指当前检验迭代对应的点 位置,st-1,st-2…s1是指当前检验迭代之前的历史迭代对应的点位置,M2是指上述的第二均值。进一步地,根据数据的分布特性,历史迭代与该当前检验迭代距离越远,对 该当前检验迭代附近的迭代的点位置的分布及变动幅度影响越小,因此,上述计算权重 可以按照b1~bm的顺序依次减小。
例如,当前检验迭代为神经网络运算的第101次迭代,该当前检验迭代之前的历史迭 代是指第1次迭代至第100次迭代。则处理器可以获得该第101次迭代的点位置(即st),并获得该第101次迭代之前的历史迭代的点位置,即s1可以指神经网络的第1次迭代对应的点位置……,st-2可以指神经网络的第99次迭代对应的点位置,st-1可以指神经网络的 第100次迭代对应的点位置。进一步地,处理器可以根据上述公式计算获得第二均值M2。
可选地,该第二均值可以根据各个迭代间隔对应的检验迭代的点位置进行计算。具 体地,如图8所示,上述操作S112可以包括如下操作:
S1121、获取预设数量的中间滑动平均值,其中,各个所述中间滑动平均值是根据所 述当前检验迭代之前所述预设数量的检验迭代确定,所述检验迭代为调整所述神经网络 量化过程中的参数时对应的迭代;
S1122、根据所述当前检验迭代的点位置以及所述预设数量的中间滑动平均值,确定 所述第二均值。
例如,该第二均值可以按照如下公式进行计算:
M2=b1×st+b2×st-1+b3×st-2+…+bm×s1
其中,b1~bm是指各次迭代的点位置对应的计算权重,st是指当前检验迭代对应的点 位置,st-1,st-2…s1是指当前检验迭代之前的检验迭代对应的点位置,M2是指上述的第二均值。
例如,当前检验迭代为第100次迭代,历史迭代可以是第1次迭代至第99次迭代,该99次历史迭代可以分属于11个迭代间隔。比如,第1次迭代至第9次迭代属于第1个迭代间隔,第10次迭代至第18次迭代属于第2个迭代间隔,……,第90次迭代至第99次迭代属于 第11个迭代间隔。则处理器可以获得该第100次迭代的点位置(即st),并获得该第100次 迭代之前的迭代间隔中检验迭代的点位置,即s1可以指神经网络的第1个迭代间隔的检验 迭代对应的点位置(比如s1可以指神经网络的第1次迭代对应的点位置),……,st-2可以 指神经网络的第10个迭代间隔的检验迭代对应的点位置(比如st-2可以指神经网络的第 81次迭代对应的点位置),st-1可以指神经网络的第11个迭代间隔的检验迭代对应的点位 置(比如,st-1可以指神经网络的第90次迭代对应的点位置)。进一步地,处理器可以根 据上述公式计算获得第二均值M2。
本披露实施例中,为方便举例说明,假定该迭代间隔包含的迭代数量相同。而在实际使用过程中,该迭代间隔包含的迭代数量可以不相同。可选地,该迭代间隔包含的迭 代数量随迭代的增加而增加,即随着神经网络训练或微调的进行,迭代间隔可以越来越 大。
更进一步地,为简便计算,降低数据占用的存储空间,处理器可以根据所述当前检验迭代对应的点位置以及所述第一均值,确定所述第二均值,即上述第二均值可以采用 如下公式进行计算:
M2=β×st+(1-β)×M1 公式(29)
其中,β是指当前检验迭代对应的点位置的计算权重,M1是指上述的第一均值。
S113、根据所述第一均值和所述第二均值确定第一误差,所述第一误差用于表征所 述当前检验迭代及所述历史迭代的点位置的变动幅度。
可选地,第一误差可以等于第二均值与上述的第一均值之间的差值的绝对值。具体 地,上述的第一误差可以按照如下公式进行计算:
diffupdate 1=|M2-M1|=β|s(t)-M1| 公式(30)
可选地,上述的当前检验迭代的点位置可以根据当前检验迭代的待量化数据和当前 检验迭代对应的目标数据位宽确定,具体的点位置计算方式可以参见上文的公式(2)或公式(14)。其中,上述当前检验迭代对应的目标数据位宽可以是超参数。进一步可选地, 该当前检验迭代对应的目标数据位宽可以是用户自定义输入的。可选地,在神经网络训 练或微调过程中的待量化数据对应的数据位宽可以是不变的,即同一神经网络的同种待 量化数据采用同一数据位宽进行量化,例如,针对该神经网络在各次迭代中的神经元数 据均采用8比特的数据位宽进行量化。
可选地,神经网络训练或微调过程中的待量化数据对应的数据位宽为可变的,以保 证数据位宽能够满足待量化数据的量化需求。也就是说,处理器可以根据待量化数据,自适应的调整该待量化数据对应的数据位宽,获得该待量化数据对应的目标数据位宽。 此时,处理器可以首先确定当前检验迭代对应的目标数据位宽,之后,处理器可以根据 该当前检验迭代对应的目标数据位宽及该当前检验迭代对应的待量化数据,确定当前检 验迭代对应的点位置等量化参数。
具体地,如图9所示,神经网络训练或微调过程中的待量化数据对应的数据位宽的调 整过程可以包括:
S114、根据所述当前检验迭代的待量化数据和所述当前检验迭代的量化数据,确定 量化误差,其中,所述当前检验迭代的量化数据是通过对所述当前检验迭代的待量化数据进行量化获得。
可选地,上述处理器可以采用初始数据位宽对待量化数据进行量化,获得上述的量 化数据。该当前检验迭代的初始数据位宽可以是超参数,该当前检验迭代的初始数据位宽也可以是根据该当前检验迭代之前的上一检验迭代的待量化数据确定的。
具体地,处理器可以根据当前检验迭代的待量化数据和当前检验迭代的量化数据, 确定中间表示数据。可选地,所述中间表示数据与上述的待量化数据的表示格式一致。例如,处理器可以对上述的量化数据进行反量化,获得与待量化数据的表示格式一致的 中间表示数据,其中,反量化是指量化的逆过程。例如,该量化数据可以采用上述公式 (3)获得,处理器还可以按照上述公式(4)对量化数据进行反量化,获得相应的中间 表示数据,并根据待量化数据和中间表示数据确定量化误差。
进一步地,处理器可以根据待量化数据及其对应的中间表示数据计算获得量化误差。 设当前检验迭代的待量化数据为Fx=[z1,z2…,zm],该待量化数据对应的中间表示数据为 Fx1=[z1 (n),z2 (n)…,zm (n)]。处理器可以根据该待量化数据Fx及其对应的中间表示数据Fx1确定误差项,并根据该误差项确定量化误差。
可选地,处理器可以根据中间表示数据Fx1中各元素的和,以及待量化数据Fx中各元 素的和确定上述的误差项,该误差项可以是中间表示数据Fx1中各元素的和与待量化数据 Fx中各元素的和的差值。之后,处理器可以根据该误差项确定量化误差。具体的量化误差可以按照如下公式进行确定:
Figure BDA0002207851400000161
其中,zi为待量化数据中的元素,zi (n)为中间表示数据Fx1的元素。
可选地,处理器可以分别计算待量化数据中各元素与中间表示数据Fx1中相应元素的 差值,获得m个差值,并将该m个差值的和作为误差项。之后,处理器可以根据该误差项确定量化误差。具体的量化误差可以按照如下公式确定:
Figure BDA0002207851400000162
其中,zi为待量化数据中的元素,zi (n)为中间表示数据Fx1的元素。
可选地,上述待量化数据中各元素与中间表示数据Fx1中相应元素的差值可以约等于 2s-1,因此,上述量化误差还可以按照如下公式确定:
Figure BDA0002207851400000163
其中,m为目标数据对应的中间表示数据Fx1的数量,s为点位置,zi为待量化数据中的元素。
可选地,所述中间表示数据也可以与上述的量化数据的数据表示格式一致,并根据 该中间表示数据和量化数据确定量化误差。例如,待量化数据可以表示为:Fx≈Ix×2s,则可以确定出中间表示数据
Figure BDA0002207851400000164
该中间表示数据Ix1可以与上述的量化数 据具有相同的数据表示格式。此时处理器可以根据中间表示数据Ix1和上述公 式(3)计算获得的
Figure BDA0002207851400000165
确定量化误差。具体的量化误差确定方式可参 照上述的公式(31)~公式(33)。
S115、根据所述量化误差,确定所述当前检验迭代对应的目标数据位宽。
具体地,处理器可以根据该量化误差,自适应地调整当前检验迭代对应的数据位宽, 确定该当前检验迭代调整后的目标数据位宽。当该量化误差满足预设条件时,则可以保 持当前检验迭代对应的数据位宽不变,即该当前检验迭代的目标数据位宽可以等于初始 数据位宽。当量化误差不满足预设条件时,处理器可以调整当前检验迭代的待量化数据对应的数据位宽,获得当前检验迭代对应的目标数据位宽。当处理器采用该目标数据位 宽对当前检验迭代的待量化数据进行量化时,量化误差满足上述的预设条件。可选地, 上述的预设条件可以是用户设置的预设阈值。
可选地,如图10所示,上述操作S115可以包括:
S1150、处理器可以判断上述的量化误差是否大于或等于第一预设阈值。
若所述量化误差大于或等于第一预设阈值,则可以执行操作S1151,增大所述当前检 验迭代对应的数据位宽,获得当前检验迭代的目标数据位宽。当量化误差小于第一预设阈值时,则可以保持当前检验迭代的数据位宽不变。
进一步可选地,处理器可以经过一次调整获得上述的目标数据位宽。例如,当前检验迭代的初始数据位宽为n1,处理器可以经一次调整确定该目标数据位宽n2=n1+t,其中,t为数据位宽的调整值。其中,采用该目标数据位宽n2对当前检验迭代的待量化数据进行量化时,获得的量化误差可以小于所述第一预设阈值。
进一步可选地,处理器可以经过多次调整获得目标数据位宽,直至量化误差小于第 一预设阈值,并将该量化误差小于第一预设阈值时的数据位宽作为目标数据位宽。具体地,若所述量化误差大于或等于第一预设阈值,则根据第一预设位宽步长确定第一中间 数据位宽;之后处理器可以根据该第一中间数据位宽对当前检验迭代的待量化数据进行 量化,获得量化数据,并根据所述当前检验迭代中待量化数据和所述当前检验迭代的量 化数据,确定量化误差,直至所述量化误差小于所述第一预设阈值。处理器可以将该量 化误差小于第一预设阈值时对应的数据位宽,作为该目标数据位宽。
例如,当前检验迭代的初始数据位宽为n1,处理器可以采用该初始数据位宽n1对当 前检验迭代的待量化数据A进行量化,获得量化数据B1,并根据该待量化数据A和量化数据B1计算获得量化误差C1。在量化误差C1大于或等于第一预设阈值时,处理器确定第一 中间数据位宽n2=n1+t1,其中,t1为第一预设位宽步长。之后,处理器可以根据该第一中 间数据位宽n2对当前检验迭代的待量化数据进行量化,获得当前检验迭代的量化数据B2, 并根据该待量化数据A和量化数据B2计算获得量化误差C2。若该量化误差C2大于或等于 第一预设阈值时,处理器确定第一中间数据位宽n2=n1+t1+t1,之后根据该新的第一中间 数据位宽对当前检验迭代的待量化数据A进行量化,并计算相应的量化误差,直至量化误 差小于第一预设阈值。若量化误差C1小于第一预设阈值,则可以保持该初始数据位宽n1 不变。
更进一步地,上述的第一预设位宽步长可以是恒定值,例如,每当量化误差大于第一预设阈值时,则处理器可以将当前检验迭代对应的数据位宽增大相同的位宽值。可选地,上述的第一预设位宽步长也可以是可变值,例如,处理器可以计算量化误差与第一 预设阈值的差值,若该量化误差与第一预设阈值的差值越小,则第一预设位宽步长的值 越小。
可选地,如图11所示,上述操作S115还可以包括:
S1152、处理器可以判断上述的量化误差是否小于或等于第一预设阈值。
若所述量化误差小于或等于第二预设阈值,则可以执行操作S1153,减小所述当前检 验迭代对应的数据位宽,获得当前检验迭代的目标数据位宽。当量化误差大于第二预设阈值时,则可以保持当前检验迭代的数据位宽不变。
进一步可选地,处理器可以经过一次调整获得上述的目标数据位宽。例如,当前检验迭代的初始数据位宽为n1,处理器可以经一次调整确定该目标数据位宽n2=n1-t,其中,t为数据位宽的调整值。其中,采用该目标数据位宽n2对当前检验迭代的待量化数据进行量化时,获得的量化误差可以大于所述第二预设阈值。
进一步可选地,处理器可以经过多次调整获得目标数据位宽,直至量化误差大于第 二预设阈值,并将该量化误差大于第二预设阈值时的数据位宽作为目标数据位宽。具体地,若所述量化误差小于或等于第一预设阈值,则根据第二预设位宽步长确定第二中间 数据位宽;之后处理器可以根据该第二中间数据位宽对当前检验迭代的待量化数据进行 量化,获得量化数据,并根据所述当前检验迭代中待量化数据和所述当前检验迭代的量 化数据,确定量化误差,直至所述量化误差大于所述第二预设阈值。处理器可以将该量 化误差大于第二预设阈值时对应的数据位宽,作为该目标数据位宽。
例如,当前检验迭代的初始数据位宽为n1,处理器可以采用该初始数据位宽n1对当 前检验迭代的待量化数据A进行量化,获得量化数据B1,并根据该待量化数据A和量化数据B1计算获得量化误差C1。在量化误差C1小于或等于第二预设阈值时,处理器确定第二 中间数据位宽n2=n1-t2,其中,t2为第二预设位宽步长。之后,处理器可以根据该第二中 间数据位宽n2对当前检验迭代的待量化数据进行量化,获得当前检验迭代的量化数据B2, 并根据该待量化数据A和量化数据B2计算获得量化误差C2。若该量化误差C2小于或等于 第二预设阈值时,处理器确定第二中间数据位宽n2=n1-t2-t2,之后根据该新的第二中间 数据位宽对当前检验迭代的待量化数据A进行量化,并计算相应的量化误差,直至量化误 差大于第二预设阈值。若量化误差C1大于第二预设阈值,则可以保持该初始数据位宽n1 不变。
更进一步地,上述的第二预设位宽步长可以是恒定值,例如,每当量化误差小于第二预设阈值时,则处理器可以将当前检验迭代对应的数据位宽减小相同的位宽值。可选地,上述的第二预设位宽步长也可以是可变值,例如,处理器可以计算量化误差与第二 预设阈值的差值,若该量化误差与第二预设阈值的差值越小,则第二预设位宽步长的值 越小。
可选地,如图12所示,当处理器确定量化误差小于第一预设阈值,且量化误差大于第二预设阈值时,可以保持当前检验迭代的数据位宽不变,其中,第一预设阈值大于第 二预设阈值。即当前检验迭代的目标数据位宽可以等于初始数据位宽。其中,图12中仅 以举例的方式说明本披露一实施例的数据位宽确定方式,图12中各个操作的顺序可以适 应性调整,此处并不做具体限定。
本披露实施例中,由于当前检验迭代的数据位宽发生变化时,会相应的带来点位置 的变化。但此时点位置的变化并非是待量化数据的数据变动引起的,根据上述公式(30)确定的第一误差计算获得的目标迭代间隔可能不准确,从而会影响量化的精度。因此, 在当前检验迭代的数据位宽发生变化时,可以相应的调整上述的第二均值,以保证第一 误差能够准确的反映点位置的变动幅度,进而保证目标迭代间隔的准确性和可靠性。具 体地,如图13所示,上述方法还可以包括:
S116、根据所述目标数据位宽,确定所述当前检验迭代的数据位宽调整值;
具体地,处理器可以根据当前检验迭代的目标数据位宽和初始数据位宽,确定当前 检验迭代的数据位宽调整值。其中,该数据位宽调整值=目标数据位宽-初始数据位宽。当然,处理器还可以直接获得当前检验迭代的数据位宽调整值。
S117、根据所述当前检验迭代的数据位宽调整值,更新上述的第二均值。
具体地,若数据位宽调整值大于预设参数(例如,该预设参数可以等于零)时,即当前检验迭代的数据位宽增加时,处理器可以相应地减少第二均值。若数据位宽调整值 小于预设参数(例如,该预设参数可以等于零)时,即当前检验迭代的数据位宽减少时, 处理器可以相应地增加第二均值。若数据位宽调整值等于预设参数,即当数据位宽调整 值等于0时,此时当前迭代对应的待量化数据未发生改变,更新后的第二均值等于更新前 的第二均值,该更新前的第二均值根据上述公式(29)计算获得。可选地,若数据位宽 调整值等于预设参数,即当数据位宽调整值等于0时,处理器可以不更新第二均值,即处 理器可以不执行上述操作S117。
例如,更新前的第二均值M2=β×st+(1-β)×M1;当前检验迭代对应的目标数 据位宽n2=初始数据位宽n1+Δn时,其中,Δn表示数据位宽调整值。此时,更新后的第二 均值M2=β×(st-Δn)+(1-β)×(M1-Δn)。当前检验迭代对应的目标数据位 宽n2=初始数据位宽n1-Δn时,其中,Δn表示数据位宽调整值,此时,更新后的第二均值 M2=β×(st-Δn)+(1-β)×(M1+Δn),其中,st是指当前检验迭代是根据目 标数据位宽确定的点位置。
再如,更新前的第二均值M2=β×st+(1-β)×M1;当前检验迭代对应的目标数 据位宽n2=初始数据位宽n1+Δn时,其中,Δn表示数据位宽调整值。此时,更新后的第二 均值M2=β×st+(1-β)×M1-Δn。再如,当前检验迭代对应的目标数据位宽n2=初 始数据位宽n1-Δn时,其中,Δn表示数据位宽调整值,此时,更新后的第二均值 M2=β×st+(1-β)×M1+Δn,其中,st是指当前检验迭代是根据目标数据位宽确定 的点位置。
进一步地,如图6所示,上述操作S200可以包括:
S210、根据点位置的变动幅度,确定目标迭代间隔,其中,该目标迭代间隔与上述的点位置的变动幅度负相关。即上述的点位置的变动幅度越大,则该目标迭代间隔越小。上述的点位置的变动幅度越小,则该目标迭代间隔越大。
如上所述,上述的第一误差可以表征点位置的变动幅度,因此,如图7所示,上述操作S210可以包括:
S211、处理器可以根据所述第一误差确定所述目标迭代间隔,其中,目标迭代间隔与所述第一误差负相关。即第一误差越大,则说明点位置的变化幅度越大,进而表明待 量化数据的数据变动幅度越大,此时,目标迭代间隔越小。
具体地,处理器可以根据以下公式计算得到目标迭代间隔I:
Figure BDA0002207851400000191
其中,I为目标迭代间隔,diffupdate 1表示上述的第一误差,δ和γ可以为超参数。
可以理解的是,第一误差可以用于衡量点位置的变动幅度,第一误差越大,表明点位置的变动幅度越大,进而说明待量化数据的数据变动幅度越大,目标迭代间隔需要设 置得越小。也就是说,第一误差越大,量化参数的调整越频繁。
在本实施例中,通过计算点位置的变动幅度(第一误差),并根据点位置的变动幅度 确定目标迭代间隔。由于量化参数根据目标迭代间隔确定,也就使得根据量化参数进行量化得到的量化数据,能够更加符合目标数据的点位置的变动趋势,在保证量化精度的 同时,提高神经网络的运行效率。
可选地,处理器在当前检验迭代处确定目标迭代间隔后,可以进一步在当前检验迭 代处确定目标迭代间隔对应的量化参数和数据位宽等参数,从而根据目标迭代间隔更新 量化参数。其中,量化参数可以包括点位置和/或缩放系数。进一步地,该量化参数还可以包括偏移量。该量化参数的具体计算方式可参见上文中的描述。如图14所示,上述方 法还可以包括:
S300、处理器根据目标迭代间隔调整神经网络运算中的量化参数。
具体地,处理器可以根据目标迭代间隔确定检验迭代,并在各个检验迭代处更新目 标迭代间隔,还可以在各个检验迭代处更新量化参数。例如,神经网络运算中的数据位宽保持不变,此时,处理器可以在各个检验迭代处直接根据检验迭代的待量化数据,调 整点位置等量化参数。再如,神经网络运算中的数据位宽可变,此时,处理器可以在各 个检验迭代处更新数据位宽,并根据更新后的数据位宽和该检验迭代的待量化数据,调 整点位置等量化参数。
本申请实施例中,处理器在各个检验迭代处更新量化参数,以保证当前量化参数满 足待量化数据的量化需求。其中,更新前的目标迭代间隔与更新后的目标迭代间隔可以相同,也可以不同。更新前的数据位宽与更新后的数据位宽可以相同,也可以不同;即 不同迭代间隔的数据位宽可以相同,也可以不同。更新前的量化参数与更新后的量化参 数可以相同,也可以不同;即不同迭代间隔的量化参数可以相同,也可以不同。
可选地,上述操作S300中,处理器可以在检验迭代处确定目标迭代间隔中的量化参 数,以调整神经网络运算中的量化参数。可选地,处理器可以根据当前检验迭代的待量化数据,确定目标迭代间隔中的量化参数,以调整神经网络运算中的量化参数。该量化 参数可以包括点位置和/或缩放系数。可选地,该量化参数还可以包括偏移量。其中,点 位置、缩放系数和偏移量的具体计算方式可以参见上文中的描述,此处不再赘述。
在一种情况下,该神经网络运算中的各次迭代对应的数据位宽均不发生变化,即该 神经网络运算中各次迭代对应的数据位宽均相同,此时,处理器可以通过确定目标迭代间隔中的点位置等量化参数,实现根据目标迭代间隔对神经网络运算中的量化参数的调整的目的。其中,该目标迭代间隔中迭代对应的量化参数可以是一致的。也就是说,目 标迭代间隔中的各次迭代均采用同一点位置,仅在各次检验迭代处更新确定点位置等量 化参数,从而可以避免每次迭代都对量化参数进行更新调整,从而减少了量化过程中的 计算量,提高了量化操作的效率。
可选地,针对上述数据位宽不变的情况,目标迭代间隔中迭代对应的点位置可以保 持一致。具体地,处理器可以根据当前检验迭代的待量化数据和该当前检验迭代对应的目标数据位宽,确定当前检验迭代对应的点位置,并将该当前检验迭代对应的点位置作 为该目标迭代间隔对应的点位置,该目标迭代间隔中迭代均沿用当前检验迭代对应的点 位置。可选地,该当前检验迭代对应的目标数据位宽可以是超参数。例如,该当前检验 迭代对应的目标数据位宽是由用户自定义输入的。该当前检验迭代对应的点位置可以参 见上文的公式(2)或公式(14)计算。
在一种情况下,该神经网络运算中的各次迭代对应的数据位宽可以发生变化,即不 同目标迭代间隔对应的数据位宽可以不一致,但目标迭代间隔中各次迭代的数据位宽保 持不变。其中,该目标迭代间隔中迭代对应的数据位宽可以是超参数,例如,该目标迭代间隔中迭代对应的数据位宽可以是用户自定义输入的。在一种情况下,该目标迭代间 隔中迭代对应的数据位宽也可以是处理器计算获得的,即处理器可以根据当前检验迭代 的待量化数据,确定目标迭代间隔中迭代对应的数据位宽。例如,处理器可以根据当前 检验迭代的待量化数据,确定当前检验迭代对应的目标数据位宽,并将该当前检验迭代 对应的目标数据位宽作为目标迭代间隔对应的数据位宽。
此时,为简化量化过程中的计算量,该目标迭代间隔中对应的点位置等量化参数也 可以保持不变。也就是说,目标迭代间隔中的各次迭代均采用同一点位置,仅在各次检验迭代处更新确定点位置等量化参数以及数据位宽,从而可以避免每次迭代都对量化参数进行更新调整,从而减少了量化过程中的计算量,提高了量化操作的效率。
可选地,针对上述目标迭代间隔对应的数据位宽不变的情况,目标迭代间隔中迭代 对应的点位置可以保持一致。具体地,处理器可以根据当前检验迭代的待量化数据和该当前检验迭代对应的目标数据位宽,确定当前检验迭代对应的点位置,并将该当前检验 迭代对应的点位置作为该目标迭代间隔对应的点位置,该目标迭代间隔中迭代均沿用当 前检验迭代对应的点位置。可选地,该当前检验迭代对应的目标数据位宽可以是超参数。 例如,该当前检验迭代对应的目标数据位宽是由用户自定义输入的。该当前检验迭代对 应的点位置可以参见上文的公式(2)或公式(14)计算。
可选地,目标迭代间隔中迭代对应的缩放系数可以一致。处理器可以根据当前检验 迭代的待量化数据,确定当前检验迭代对应的缩放系数,并将该当前检验迭代对应的缩放系数作为目标迭代间隔中各次迭代的缩放系数。其中,该目标迭代间隔中迭代对应的 缩放系数一致。
可选地,目标迭代间隔中迭代对应的偏移量一致。处理器可以根据当前检验迭代的 待量化数据,确定当前检验迭代对应的偏移量,并将该当前检验迭代对应的偏移量作为目标迭代间隔中各次迭代的偏移量。进一步地,处理器还可以确定待量化数据所有元素 中的最小值和最大值,并进一步确定点位置和缩放系数等量化参数,具体可参见上文中 的描述。该目标迭代间隔中迭代对应的偏移量一致。
例如,该目标迭代间隔可以从当前检验迭代开始计算迭代数量,即目标迭代间隔对 应的检验迭代可以是目标迭代间隔的起始迭代。例如,当前检验迭代为第100次迭代,处理器根据待量化数据的数据变动幅度,确定目标迭代间隔的迭代间隔为3,则处理器可以确定该目标迭代间隔包括3次迭代,分别为第100次迭代、第101次迭代和第102次迭代。 进而处理器可以根据第100次迭代对应的待量化数据和目标数据位宽,确定该第100次迭 代对应的点位置等量化参数,并可以采用该第100次迭代对应的点位置等量化参数对第 100次迭代、第101次迭代和第102次迭代进行量化。这样,处理器在第101次迭代和第102 次迭代无需计算点位置等量化参数,减少了量化过程中的计算量,提高了量化操作的效 率。
可选地,目标迭代间隔还可以是从当前检验迭代的下一次迭代开始计算迭代数量, 即该目标迭代间隔对应的检验迭代也可以是该目标迭代间隔的终止迭代。例如,当前检 验迭代为第100次迭代,处理器根据待量化数据的数据变动幅度,确定目标迭代间隔的迭 代间隔为3。则处理器可以确定该目标迭代间隔包括3次迭代,分别为第101次迭代、第102 次迭代和第103次迭代。进而处理器可以根据第100次迭代对应的待量化数据和目标数据 位宽,确定该第100次迭代对应的点位置等量化参数,并可以采用该第100次迭代对应的点位置等量化参数对第101次迭代、第102次迭代和第103次迭代进行量化。这样,处理器 在第102次迭代和第103次迭代无需计算点位置等量化参数,减少了量化过程中的计算量, 提高了量化操作的效率。
本披露实施例中,同一目标迭代间隔中各次迭代对应的数据位宽及量化参数均一致, 即同一目标迭代间隔中各次迭代对应的数据位宽、点位置、缩放系数及偏移量均保持不 变,从而在神经网络的训练或微调过程中,可以避免频繁地调整待量化数据的量化参数, 减少了量化过程中的计算量,从而可以提高量化效率。并且,通过在训练或微调的不同阶段根据数据变动幅度,动态地调整量化参数,可以保证量化精度。
在另一情况下,该神经网络运算中的各次迭代对应的数据位宽可以发生变化,但目 标迭代间隔中各次迭代的数据位宽保持不变。此时,目标迭代间隔中迭代对应的点位置等量化参数也可以不一致。处理器还可以根据当前检验迭代对应的目标数据位宽,确定 目标迭代间隔对应的数据位宽,其中,目标迭代间隔中迭代对应的数据位宽一致。之后, 处理器可以根据该目标迭代间隔对应的数据位宽和点位置迭代间隔,调整神经网络运算 过程中的点位置等量化参数。可选地,如图15所示,上述操作S300还可以包括:
S310、根据当前检验迭代的待量化数据,确定目标迭代间隔对应的数据位宽;其中, 该目标迭代间隔中迭代对应的数据位宽一致。也就是说,神经网络运算过程中的数据位 宽每隔一个目标迭代间隔更新一次。可选地,该目标迭代间隔对应的数据位宽可以为当前检验迭代的目标数据位宽。该当前检验迭代的目标数据位宽可参见上文中的操作S114和S115,此处不再赘述。
例如,该目标迭代间隔可以从当前检验迭代开始计算迭代数量,即目标迭代间隔对 应的检验迭代可以是目标迭代间隔的起始迭代。例如,当前检验迭代为第100次迭代,处理器根据待量化数据的数据变动幅度,确定目标迭代间隔的迭代间隔为6,则处理器可以确定该目标迭代间隔包括6次迭代,分别为第100次迭代至第105次迭代。此时,处理器可 以确定第100次迭代的目标数据位宽,且第101次迭代至第105次迭代沿用该第100次迭代 的目标数据位宽,无需在第101次迭代至第105次迭代计算目标数据位宽,从而减少计算 量,提高量化效率及运算效率。之后,第106次迭代可以作为当前检验迭代,并重复上述 确定目标迭代间隔,以及更新数据位宽的操作。
可选地,目标迭代间隔还可以是从当前检验迭代的下一次迭代开始计算迭代数量, 即该目标迭代间隔对应的检验迭代也可以是该目标迭代间隔的终止迭代。例如,当前检 验迭代为第100次迭代,处理器根据待量化数据的数据变动幅度,确定目标迭代间隔的迭 代间隔为6。则处理器可以确定该目标迭代间隔包括6次迭代,分别为第101次迭代至第106 次迭代。此时,处理器可以确定第100次迭代的目标数据位宽,且第101次迭代至106次迭 代沿用该第100次迭代的目标数据位宽,无需在第101次迭代至106次迭代计算目标数据位 宽,从而减少计算量,提高量化效率及运算效率。之后,第106次迭代可以作为当前检验迭代,并重复上述确定目标迭代间隔,以及更新数据位宽的操作。
S320、处理器根据获取的点位置迭代间隔和所述目标迭代间隔对应的数据位宽,调 整所述目标迭代间隔中迭代对应的点位置,以调整所述神经网络运算中的点位置等量化 参数。
其中,所述点位置迭代间隔包含至少一次迭代,所述点位置迭代间隔中迭代的点位 置一致。可选地,该点位置迭代间隔可以是超参数,例如,该点位置迭代间隔可以是用户自定义输入的。
可选地,所述点位置迭代间隔小于或等于所述目标迭代间隔。当该点位置迭代间隔 与上述的目标迭代间隔相同时,处理器可以在当前检验迭代处同步更新数据位宽和点位 置等量化参数。进一步可选地,目标迭代间隔中迭代对应的缩放系数可以一致。更进一步地,目标迭代间隔中迭代对应的偏移量一致。此时,该目标迭代间隔中的迭代对应的 数据位宽和点位置等量化参数均相同,从而可以降低计算量,提高量化效率和运算效率。 具体实现过程与上述实施例基本一致,可参见上文的描述,此处不再赘述。
当点位置迭代间隔小于上述的目标迭代间隔时,处理器可以在目标迭代间隔对应的 检验迭代处更新数据位宽和点位置等量化参数,并在该点位置迭代间隔确定的子检验迭 代处更新点位置等量化参数。由于在数据位宽不变的情况下,点位置等量化参数可以根据待量化数据进行微调,因此,在同一目标迭代间隔内也可以对点位置等量化参数进行 调整,以进一步提高量化精度。
具体地,处理器可以根据当前检验迭代和点位置迭代间隔确定子检验迭代,该子检 验迭代用于调整点位置,该子检验迭代可以是目标迭代间隔中的迭代。进一步地,处理器可以根据子检验迭代的待量化数据和目标迭代间隔对应的数据位宽,调整目标迭代间隔中迭代对应的点位置,其中,点位置的确定方式可以参照上述的公式(2)或公式(14), 此处不再赘述。
例如,当前检验迭代为第100次迭代,该目标迭代间隔为6,该目标迭代间隔包含的迭代为第100次迭代至第105次迭代。处理器获取的点位置迭代间隔为Is1=3,则可以从当前检验迭代开始间隔三次迭代调整一次点位置。具体地,处理器可以将第100次迭代作为上述的子检验迭代,并计算获得该第100次迭代对应的点位置s1,在第100次迭代、第101 次迭代和第102次迭代共用点位置s1进行量化。之后,处理器可以根据点位置迭代间隔Is1将第103次迭代作为上述的子检验迭代,同时处理器还可以根据第103次迭代对应的待量 化数据和目标迭代间隔对应的数据位宽n确定第二个点位置迭代间隔对应的点位置s2,则 在第103次迭代至第105次迭代中可以共用上述的点位置s2进行量化。本披露实施例中, 上述的更新前的点位置s1与更新后的点位置s2的值可以相同,也可以不同。进一步地, 处理器可以在第106次迭代重新根据待量化数据的数据变动幅度,确定下一目标迭代间隔 以及该下一目标迭代间隔对应的数据位宽及点位置等量化参数。
再如,当前检验迭代为第100次迭代,该目标迭代间隔为6,该目标迭代间隔包含的迭代为第101次迭代至第106次迭代。处理器获取的点位置迭代间隔为Is1=3,则可以从当前检验迭代开始间隔三次迭代调整一次点位置。具体地,处理器可以根据当前检验迭代 的待量化数据和当前检验迭代对应的目标数据位宽n1,确定第一个点位置迭代间隔对应 的点位置为s1,则在第101次迭代、第102次迭代和103次迭代共用上述的点位置s1进行量 化。之后,处理器可以根据点位置迭代间隔Is1将第104次迭代作为上述的子检验迭代,同 时处理器还可以根据第104次迭代对应的待量化数据和目标迭代间隔对应的数据位宽n1 确定第二个点位置迭代间隔对应的点位置s2,则在第104次迭代至第106次迭代中可以共 用上述的点位置s2进行量化。本披露实施例中,上述的更新前的点位置s1与更新后的点 位置s2的值可以相同,也可以不同。进一步地,处理器可以在106次迭代重新根据待量化 数据的数据变动幅度,确定下一目标迭代间隔以及该下一目标迭代间隔对应的数据位宽 及点位置等量化参数。
可选地,该点位置迭代间隔可以等于1,即每次迭代均更新一次点位置。可选地,该点位置迭代间隔可以相同,也可以不同。例如,该目标迭代间隔包含的至少一个点位置 迭代间隔可以是依次增大的。此处仅以举例的说明本实施例的实现方式,并不用于限定 本披露。
可选地,该目标迭代间隔中迭代对应的缩放系数也可以不一致。进一步可选地,该缩放系数可以与上述的点位置同步更新,也就是说,该缩放系数对应的迭代间隔可以等 于上述的点位置迭代间隔。即每当处理器更新确定点位置时,会相应地更新确定缩放系 数。
可选地,该目标迭代间隔中迭代对应的偏移量也可以不一致。进一步地,该偏移量可以与上述的点位置同步更新,也就是说,该偏移量对应的迭代间隔可以等于上述的点 位置迭代间隔。即每当处理器更新确定点位置时,会相应地更新确定偏移量。当然,该 偏移量也可以与上述地点位置或数据位宽异步更新,此处不做具体限定。更进一步地, 处理器还可以确定待量化数据所有元素中的最小值和最大值,并进一步确定点位置和缩 放系数等量化参数,具体可参见上文中的描述。
在另一种实施例中,处理器可以根据点位置的变动幅度和待量化数据的数据位宽的 变化,综合确定待量化数据的数据变动幅度,并根据该待量化数据的数据变动幅度确定目标迭代间隔,其中,该目标迭代间隔可以用于更新确定数据位宽,即处理器可以在每 个目标迭代间隔的检验迭代处更新确定数据位宽。由于点位置可以反映定点数据的精度, 数据位宽可以反映定点数据的数据表示范围,因而通过综合点位置的变动幅度和待量化 数据的数据位宽变化,可以保证量化后的数据既能够兼顾精度,也能够满足数据表示范 围。可选地,点位置的变化幅度可以采用上述的第一误差进行表征,数据位宽的变化可 以根据上述的量化误差进行确定。具体地,如图16所示,上述方法可以包括:
S400、获取第一误差,第一误差能够表征点位置的变动幅度,该点位置的变动幅度可以表示待量化数据的数据变动幅度;具体地,上述第一误差的计算方式可参见上文中 操作S110中的描述,此处不再赘述。
S500、获取第二误差,所述第二误差用于表征所述数据位宽的变化。
可选地,上述的第二误差可以根据量化误差进行确定,该第二误差与上述的量化误 差正相关。具体地,如图16所示,上述操作S500可以包括:
S510、根据所述当前检验迭代中待量化数据和所述当前检验迭代的量化数据,确定 量化误差,其中,所述当前检验迭代的量化数据根据初始数据位宽对所述当前检验迭代的待量化数据进行量化获得。其中,具体的量化误差确定方式可参见上文中操作S114中 的描述,此处不再赘述。
S520、根据所述量化误差确定所述第二误差,所述第二误差与所述量化误差正相关。
具体地,第二误差可以按照如下公式进行计算:
diffupdate 2=θ*diffbit 2 公式(34)
其中,diffupdate 2表示上述的第二误差,diffbit表示上述的量化误差,θ可以为超参数。
S600、根据所述第二误差和所述第一误差,确定所述目标迭代间隔。
具体地,处理器可以根据第一误差和第二误差计算获得目标误差,并根据目标误差 确定目标迭代间隔。可选地,目标误差可以是第一误差和第二误差进行加权平均计算获得。例如,目标误差=K*第一误差+(1-K)*第二误差,其中,K为超参数。之后,处理 器可以根据该目标误差确定目标迭代间隔,目标迭代间隔与该目标误差负相关。即目标 误差越大,目标迭代间隔越小。
可选地,该目标误差还可以根据第一误差和第二误差中的最值进行确定,此时第一 误差或第二误差的权重取值为0。具体地,如图17所示,上述操作S600可以包括:
S610、将所述第一误差和所述第二误差中最大值作为目标误差。
具体地,处理器可以比较第一误差diffupdate 1和第二误差diffupdate 2的大小,当第一误 差diffupdate 1大于第二误差diffupdate 2时,则该目标误差等于第一误差diffupdate 1。当第一 误差diffupdate 1小于第二误差时,则该目标误差等于第二误差diffupdate 2。当第一误差 diffupdate 1等于第二误差时,则该目标误差可以时第一误差diffupdate 1或第二误差diffupdate 2。即目标误差diffupdate可以按照如下公式进行确定:
diffupdate=max(diffupdate 1,diffupdate 2)公式(35)
其中,diffupdate是指目标误差,diffupdate 1是指第一误差,diffupdate 2是指第二误差。
S620、根据所述目标误差确定所述目标迭代间隔,其中,所述目标误差与所述目标迭代间隔负相关。具体地,目标迭代间隔可以按照如下方式进行确定,
可以根据以下公式计算得到目标迭代间隔:
Figure BDA0002207851400000261
其中,I表示目标迭代间隔,diffupdate表示上述的目标误差,δ和γ可以为超参数。
可选地,上述实施例中,神经网络运算中数据位宽可变,并可以通过第二误差衡量数据位宽的变化趋势。此种情况下,如图17所示,处理器在确定目标迭代间隔后,可以 执行操作S630,确定目标迭代间隔中迭代对应的数据位宽,其中,该目标迭代间隔中迭 代对应的数据位宽一致。具体地,处理器可以根据当前检验迭代的待量化数据,确定目 标迭代间隔对应的数据位宽。也就是说,神经网络运算过程中的数据位宽每隔一个目标 迭代间隔更新一次。可选地,该目标迭代间隔对应的数据位宽可以为当前检验迭代的目 标数据位宽。该当前检验迭代的目标数据位宽可参见上文中的操作S114和S115,此处不 再赘述。
例如,该目标迭代间隔可以从当前检验迭代开始计算迭代数量,即目标迭代间隔对 应的检验迭代可以是目标迭代间隔的起始迭代。例如,当前检验迭代为第100次迭代,处理器根据待量化数据的数据变动幅度,确定目标迭代间隔的迭代间隔为6,则处理器可以确定该目标迭代间隔包括6次迭代,分别为第100次迭代至第105次迭代。此时,处理器可 以确定第100次迭代的目标数据位宽,且第101次迭代至第105次迭代沿用该第100次迭代 的目标数据位宽,无需在第101次迭代至第105次迭代计算目标数据位宽,从而减少计算 量,提高量化效率及运算效率。之后,第106次迭代可以作为当前检验迭代,并重复上述 确定目标迭代间隔,以及更新数据位宽的操作。
可选地,目标迭代间隔还可以是从当前检验迭代的下一次迭代开始计算迭代数量, 即该目标迭代间隔对应的检验迭代也可以是该目标迭代间隔的终止迭代。例如,当前检 验迭代为第100次迭代,处理器根据待量化数据的数据变动幅度,确定目标迭代间隔的迭 代间隔为6。则处理器可以确定该目标迭代间隔包括6次迭代,分别为第101次迭代至第106 次迭代。此时,处理器可以确定第100次迭代的目标数据位宽,且第101次迭代至106次迭 代沿用该第100次迭代的目标数据位宽,无需在第101次迭代至106次迭代计算目标数据位 宽,从而减少计算量,提高量化效率及运算效率。之后,第106次迭代可以作为当前检验迭代,并重复上述确定目标迭代间隔,以及更新数据位宽的操作。
再进一步地,处理器还可以在检验迭代处确定目标迭代间隔中的量化参数,以根据 目标迭代间隔调整神经网络运算中的量化参数。即该神经网络运算中的点位置等量化参 数可以与数据位宽同步更新。
在一种情况下,该目标迭代间隔中迭代对应的量化参数可以是一致的。可选地,处理器可以根据当前检验迭代的待量化数据和该当前检验迭代对应的目标数据位宽,确定当前检验迭代对应的点位置,并将该当前检验迭代对应的点位置作为该目标迭代间隔对应的点位置,其中该目标迭代间隔中迭代对应的点位置一致。也就是说,目标迭代间隔 中的各次迭代均沿用当前检验迭代的点位置等量化参数,避免了每次迭代都对量化参数 进行更新调整,从而减少了量化过程中的计算量,提高了量化操作的效率。
可选地,目标迭代间隔中迭代对应的缩放系数可以一致。处理器可以根据当前检验 迭代的待量化数据,确定当前检验迭代对应的缩放系数,并将该当前检验迭代对应的缩放系数作为目标迭代间隔中各次迭代的缩放系数。其中,该目标迭代间隔中迭代对应的 缩放系数一致。
可选地,目标迭代间隔中迭代对应的偏移量一致。处理器可以根据当前检验迭代的 待量化数据,确定当前检验迭代对应的偏移量,并将该当前检验迭代对应的偏移量作为目标迭代间隔中各次迭代的偏移量。进一步地,处理器还可以确定待量化数据所有元素 中的最小值和最大值,并进一步确定点位置和缩放系数等量化参数,具体可参见上文中 的描述。该目标迭代间隔中迭代对应的偏移量一致。
例如,该目标迭代间隔可以从当前检验迭代开始计算迭代数量,即目标迭代间隔对 应的检验迭代可以是目标迭代间隔的起始迭代。例如,当前检验迭代为第100次迭代,处理器根据待量化数据的数据变动幅度,确定目标迭代间隔的迭代间隔为3,则处理器可以确定该目标迭代间隔包括3次迭代,分别为第100次迭代、第101次迭代和第102次迭代。 进而处理器可以根据第100次迭代对应的待量化数据和目标数据位宽,确定该第100次迭 代对应的点位置等量化参数,并可以采用该第100次迭代对应的点位置等量化参数对第 100次迭代、第101次迭代和第102次迭代进行量化。这样,处理器在第101次迭代和第102 次迭代无需计算点位置等量化参数,减少了量化过程中的计算量,提高了量化操作的效 率。
可选地,目标迭代间隔还可以是从当前检验迭代的下一次迭代开始计算迭代数量, 即该目标迭代间隔对应的检验迭代也可以是该目标迭代间隔的终止迭代。例如,当前检 验迭代为第100次迭代,处理器根据待量化数据的数据变动幅度,确定目标迭代间隔的迭 代间隔为3。则处理器可以确定该目标迭代间隔包括3次迭代,分别为第101次迭代、第102 次迭代和第103次迭代。进而处理器可以根据第100次迭代对应的待量化数据和目标数据 位宽,确定该第100次迭代对应的点位置等量化参数,并可以采用该第100次迭代对应的点位置等量化参数对第101次迭代、第102次迭代和第103次迭代进行量化。这样,处理器 在第102次迭代和第103次迭代无需计算点位置等量化参数,减少了量化过程中的计算量, 提高了量化操作的效率。
本披露实施例中,同一目标迭代间隔中各次迭代对应的数据位宽及量化参数均一致, 即同一目标迭代间隔中各次迭代对应的数据位宽、点位置、缩放系数及偏移量均保持不 变,从而在神经网络的训练或微调过程中,可以避免频繁地调整待量化数据的量化参数, 减少了量化过程中的计算量,从而可以提高量化效率。并且,通过在训练或微调的不同阶段根据数据变动幅度,动态地调整量化参数,可以保证量化精度。
在另一种情况下,处理器还可以根据点位置等量化参数对应的点位置迭代间隔确定 目标迭代间隔中的量化参数,以根据调整神经网络运算中的量化参数。即该神经网络运算中的点位置等量化参数可以与数据位宽异步更新,处理器可以在目标迭代间隔的检验迭代处更新数据位宽和点位置等量化参数,处理器还可以根据点位置迭代间隔单独更新目标迭代间隔中迭代对应的点位置。
具体地,处理器还可以根据当前检验迭代对应的目标数据位宽,确定目标迭代间隔 对应的数据位宽,其中,目标迭代间隔中迭代对应的数据位宽一致。之后,处理器可以根据该目标迭代间隔对应的数据位宽和点位置迭代间隔,调整神经网络运算过程中的点位置等量化参数。即如图17所示,在确定目标迭代间隔对应的数据位宽之后,处理器还 可以执行操作S640,根据获取的点位置迭代间隔和所述目标迭代间隔对应的数据位宽, 调整所述目标迭代间隔中迭代对应的点位置,以调整所述神经网络运算中的点位置。其 中,所述点位置迭代间隔包含至少一次迭代,所述点位置迭代间隔中迭代的点位置一致。 可选地,该点位置迭代间隔可以是超参数,例如,该点位置迭代间隔可以是用户自定义 输入的。
可选地,所述点位置迭代间隔小于或等于所述目标迭代间隔。当该点位置迭代间隔 与上述的目标迭代间隔相同时,处理器可以在当前检验迭代处同步更新数据位宽和点位 置等量化参数。进一步可选地,目标迭代间隔中迭代对应的缩放系数可以一致。更进一步地,目标迭代间隔中迭代对应的偏移量一致。此时,该目标迭代间隔中的迭代对应的 数据位宽和点位置等量化参数均相同,从而可以降低计算量,提高量化效率和运算效率。 具体实现过程与上述实施例基本一致,可参见上文的描述,此处不再赘述。
当点位置迭代间隔小于上述的目标迭代间隔时,处理器可以在目标迭代间隔对应的 检验迭代处更新数据位宽和点位置等量化参数,并在该点位置迭代间隔确定的子检验迭 代处更新点位置等量化参数。由于在数据位宽不变的情况下,点位置等量化参数可以根据待量化数据进行微调,因此,在同一目标迭代间隔内也可以对点位置等量化参数进行 调整,以进一步提高量化精度。
具体地,处理器可以根据当前检验迭代和点位置迭代间隔确定子检验迭代,该子检 验迭代用于调整点位置,该子检验迭代可以是目标迭代间隔中的迭代。进一步地,处理器可以根据子检验迭代的待量化数据和目标迭代间隔对应的数据位宽,调整目标迭代间隔中迭代对应的点位置,其中,点位置的确定方式可以参照上述的公式(2)或公式(14), 此处不再赘述。
例如,当前检验迭代为第100次迭代,该目标迭代间隔为6,该目标迭代间隔包含的迭代为第100次迭代至第105次迭代。处理器获取的点位置迭代间隔为Is1=3,则可以从当前检验迭代开始间隔三次迭代调整一次点位置。具体地,处理器可以将第100次迭代作为上述的子检验迭代,并计算获得该第100次迭代对应的点位置s1,在第100次迭代、第101 次迭代和第102次迭代共用点位置s1进行量化。之后,处理器可以根据点位置迭代间隔Is1将第103次迭代作为上述的子检验迭代,同时处理器还可以根据第103次迭代对应的待量 化数据和目标迭代间隔对应的数据位宽n确定第二个点位置迭代间隔对应的点位置s2,则 在第103次迭代至第105次迭代中可以共用上述的点位置s2进行量化。本披露实施例中, 上述的更新前的点位置s1与更新后的点位置s2的值可以相同,也可以不同。进一步地, 处理器可以在第106次迭代重新根据待量化数据的数据变动幅度,确定下一目标迭代间隔 以及该下一目标迭代间隔对应的数据位宽及点位置等量化参数。
再如,当前检验迭代为第100次迭代,该目标迭代间隔为6,该目标迭代间隔包含的迭代为第101次迭代至第106次迭代。处理器获取的点位置迭代间隔为Is1=3,则可以从当前检验迭代开始间隔三次迭代调整一次点位置。具体地,处理器可以根据当前检验迭代 的待量化数据和当前检验迭代对应的目标数据位宽n1,确定第一个点位置迭代间隔对应 的点位置为s1,则在第101次迭代、第102次迭代和103次迭代共用上述的点位置s1进行量 化。之后,处理器可以根据点位置迭代间隔Is1将第104次迭代作为上述的子检验迭代,同 时处理器还可以根据第104次迭代对应的待量化数据和目标迭代间隔对应的数据位宽n1 确定第二个点位置迭代间隔对应的点位置s2,则在第104次迭代至第106次迭代中可以共 用上述的点位置s2进行量化。本披露实施例中,上述的更新前的点位置s1与更新后的点 位置s2的值可以相同,也可以不同。进一步地,处理器可以在第106次迭代重新根据待量 化数据的数据变动幅度,确定下一目标迭代间隔以及该下一目标迭代间隔对应的数据位 宽及点位置等量化参数。
可选地,该点位置迭代间隔可以等于1,即每次迭代均更新一次点位置。可选地,该点位置迭代间隔可以相同,也可以不同。例如,该目标迭代间隔包含的至少一个点位置 迭代间隔可以是依次增大的。此处仅以举例的说明本实施例的实现方式,并不用于限定 本披露。
可选地,该目标迭代间隔中迭代对应的缩放系数也可以不一致。进一步可选地,该缩放系数可以与上述的点位置可以同步更新,也就是说,该缩放系数对应的迭代间隔可 以等于上述的点位置迭代间隔。即每当处理器更新确定点位置时,会相应的更新确定缩 放系数。
可选地,该目标迭代间隔中迭代对应的偏移量也可以不一致。进一步地,该偏移量可以与上述的点位置可以同步更新,也就是说,该偏移量对应的迭代间隔可以等于上述 的点位置迭代间隔。即每当处理器更新确定点位置时,会相应地更新确定偏移量。当然, 该偏移量也可以与上述地点位置或数据位宽异步更新,此处不做具体限定。更进一步地, 处理器还可以确定待量化数据所有元素中的最小值和最大值,并进一步确定点位置和缩 放系数等量化参数,具体可参见上文中的描述。
在其他可选的实施例中,点位置、缩放系数和偏移量三个量化参数之间也可以是异 步的,即点位置迭代间隔、缩放系数迭代间隔和偏移量迭代间隔中的一个或三个均不相同。其中,点位置迭代间隔和缩放系数迭代间隔均小于或等于目标迭代间隔。偏移量迭 代间隔可以小于目标迭代间隔。由于偏移量只与待量化数据的分布相关,因此,在一种 可选的实施方式中,该偏移量也可以与目标迭代间隔完全异步,即偏移量迭代间隔也可 以大于目标迭代间隔。
在一种可选的实施例中,上述的方法可以用于神经网络的训练或微调过程中,以实 现对神经网络微调或训练过程涉及的运算数据的量化参数进行调整,以提高神经网络运 算过程中涉及的运算数据的量化精度及效率。该运算数据可以是神经元数据、权值数据或梯度数据中的至少一种。如图5所示,根据待量化数据的数据变动曲线可知,在训练 或微调的初期阶段,各次迭代的待量化数据之间的差异性较大,待量化数据的数据变动 幅度较为剧烈,此时可以目标迭代间隔的值可以较小,以及时地更新目标迭代间隔中的 量化参数,保证量化精度。在训练或微调的中期阶段,待量化数据的数据变动幅度逐渐 趋于平缓,此时可以增大目标迭代间隔的值,以避免频繁地更新量化参数,以提高量化 效率及运算效率。在训练或微调的后期阶段,此时神经网络的训练或微调趋于稳定(即 当神经网络的正向运算结果趋近于预设参考值时,该神经网络的训练或微调趋于稳定), 此时可以继续增大目标迭代间隔的值,以进一步提高量化效率及运算效率。基于上述数 据变动趋势,可以在神经网络的训练或微调的不同阶段采用不同的方式确定目标迭代间 隔,以在保证量化精度的基础上,提高量化效率及运算效率。
具体地,如图18所示,当该方法用于神经网络的训练或微调过程中时,该方法还可以包括:
S710、处理器确定当前迭代是否大于第一预设迭代;
其中,当前迭代是指处理器当前执行的迭代运算。可选地,该第一预设迭代可以是超参数,该第一预设迭代可以是根据待量化数据的数据变动曲线确定的,该第一预设迭 代也可以是用户自定义设置的。可选地,该第一预设迭代可以小于一个训练周期(epoch) 包含的迭代总数,其中,一个训练周期是指数据集中的所有待量化数据均完成一次正向 运算和一次反向运算。
在所述当前迭代小于或等于所述第一预设迭代时,则处理器可以执行操作S711,将 第一预设迭代间隔作为所述目标迭代间隔,并根据所述第一预设迭代间隔调整量化参数。 可选地,处理器可以读取用户输入的第一预设迭代,并根据该第一预设迭代与第一预设 迭代间隔的对应关系,确定第一预设迭代间隔。可选地,该第一预设迭代间隔可以是超参数,该第一预设迭代间隔也可以是用户自定义设置的。此时,处理器可以直接读取用 户输入的第一预设迭代和第一预设迭代间隔,并根据该第一预设迭代间隔更新神经网络 运算中的量化参数。本披露实施例中,处理器无需根据待量化数据的数据变动幅度,确 定目标迭代间隔。
例如,用户输入的第一预设迭代为第100次迭代,第一预设迭代间隔为5,则在当前迭代小于或等于第100次迭代时,可以根据第一预设迭代间隔更新量化参数。即处理器 可以确定在神经网络的训练或微调的第1次迭代至第100次迭代,每间隔5次迭代更新 一次量化参数。具体地,处理器可以确定第1次迭代对应的数据位宽n1及点位置s1等 量化参数,并采用该数据位宽n1和点位置s1等量化参数对第1次迭代至第5次迭代的 待量化数据进行量化,即第1次迭代至第5次迭代可以采用相同的量化参数。之后,处 理器可以确定第6次迭代对应的数据位宽n2及点位置s2等量化参数,并采用该数据位 宽n2和点位置s2等量化参数对第6次迭代至第10次迭代的待量化数据进行量化,即第 6次迭代至第10次迭代可以采用相同的量化参数。同理,处理器可以按照上述量化方式 直至完成第100次迭代。其中,每个迭代间隔中数据位宽及点位置等量化参数的确定方 式可以参见上文的描述,此处不再赘述。
再如,用户输入的第一预设迭代为第100次迭代,第一预设迭代间隔为1,则在当前迭代小于或等于第100次迭代时,可以根据第一预设迭代间隔更新量化参数。即处理器 可以确定在神经网络的训练或微调的第1次迭代至第100次迭代,每次迭代均更新量化 参数。具体地,处理器可以确定第1次迭代对应的数据位宽n1及点位置s1等量化参数, 并采用该数据位宽n1和点位置s1等量化参数对第1次迭代的待量化数据进行量化。之 后,处理器可以确定第2次迭代对应的数据位宽n2及点位置s2等量化参数,并采用该 数据位宽n2和点位置s2等量化参数对第2次迭代的待量化数据进行量化,……。同理, 处理器可以确定出第100次迭代的数据位宽n100以及点位置s100等量化参数,并采用 该数据位宽n100和点位置s100等量化参数对第100次迭代的待量化数据进行量化。其 中,每个迭代间隔中数据位宽及点位置等量化参数的确定方式可以参见上文的描述,此 处不再赘述。
上文仅以数据位宽和量化参数同步更新的方式举例说明,在其他可选的实施例中, 在每个目标迭代间隔中,处理器还可以根据点位置的变动幅度确定点位置的迭代间隔, 并根据该点位置迭代间隔更新点位置等量化参数。
可选地,在当前迭代大于第一预设迭代时,可以表明神经网络的训练或微调处于中 期阶段,此时可以获得历史迭代的待量化数据的数据变动幅度,并根据该待量化数据的数据变动幅度确定目标迭代间隔,该目标迭代间隔可以大于上述的第一预设迭代间隔, 从而可以减少量化参数的更新次数,提高量化效率及运算效率。具体地,在所述当前迭 代大于第一预设迭代时,则处理器可以执行操作S713,根据所述待量化数据的数据变动 幅度确定目标迭代间隔,并根据所述目标迭代间隔调整量化参数。
承接上例,用户输入的第一预设迭代为第100次迭代,第一预设迭代间隔为1,则在当前迭代小于或等于第100次迭代时,可以根据第一预设迭代间隔更新量化参数。即处理器可以确定在神经网络的训练或微调的第1次迭代至第100次迭代,每次迭代均更新量化参数,具体实现方式可以参见上文中的描述。在当前迭代大于第100次迭代时,处理器可 以根据当前迭代的待量化数据及其之前的历史迭代的待量化数据,确定待量化数据的数 据变动幅度,并根据该待量化数据的数据变动幅度确定目标迭代间隔。具体地,在当前 迭代大于第100次迭代时,处理器可以自适应地调整当前迭代对应的数据位宽,获得该当 前迭代对应的目标数据位宽,并将该当前迭代对应的目标数据位宽作为目标迭代间隔的 数据位宽,其中,目标迭代间隔中迭代对应的数据位宽一致。同时,处理器可以根据当 前迭代对应的目标数据位宽和待量化数据,确定当前迭代对应的点位置,并根据当前迭 代对应的点位置确定第一误差。处理器还可以根据当前迭代对应的待量化数据,确定量 化误差,并根据量化误差确定第二误差。之后,处理器可以根据第一误差和第二误差确 定目标迭代间隔,该目标迭代间隔可以大于上述的第一预设迭代间隔。进一步地,处理 器可以确定目标迭代间隔中的点位置或缩放系数等量化参数,具体确定方式可参见上文 中的描述。
例如,当前迭代为第100次迭代,处理器根据待量化数据的数据变动幅度,确定目标 迭代间隔的迭代间隔为3,则处理器可以确定该目标迭代间隔包括3次迭代,分别为第100 次迭代、第101次迭代和第102次迭代。处理器还可以根据第100次迭代的待量化数据确定 量化误差,并根据量化误差确定第二误差和第100次迭代对应的目标数据位宽,将该目标 数据位宽作为目标迭代间隔对应的数据位宽,其中,第100次迭代、第101次迭代和第102次迭代对应的数据位宽均为该第100次迭代对应的目标数据位宽。处理器还可以根据该第100次迭代的待量化数据和该第100次迭代对应的目标数据位宽确定该第100次迭代对应的点位置和缩放系数等量化参数。之后,采用该第100次迭代对应的量化参数对第100次 迭代、第101次迭代和第102次迭代进行量化。
进一步地,如图19所示,上述方法还可以包括:
在当前迭代大于第一预设迭代时,处理器还可以执行操作S712,即处理器可以进一 步确定当前迭代是否大于第二预设迭代。其中,所述第二预设迭代大于所述第一预设迭代,所述第二预设迭代间隔大于所述第一预设迭代间隔。可选地,上述第二预设迭代可 以是超参数,第二预设迭代可以大于至少一个训练周期的迭代总数。可选地,第二预设 迭代可以根据待量化数据的数据变动曲线确定。可选地,第二预设迭代也可以是用户自 定义设置的。
在所述当前迭代大于或等于第二预设迭代时,则处理器可以执行操作S714,将第二 预设迭代间隔作为所述目标迭代间隔,并根据所述第二预设迭代间隔调整所述神经网络 量化过程中的参数。在当前迭代大于第一预设迭代,且当前迭代小于第二预设迭代时,则处理器可以执行上述的操作S713,根据所述待量化数据的数据变动幅度确定目标迭代间隔,并根据所述目标迭代间隔调整量化参数。
可选地,处理器可以读取用户设置的第二预设迭代,并根据第二预设迭代与第二预 设迭代间隔的对应关系,确定第二预设迭代间隔,该第二预设迭代间隔大于第一预设迭代间隔。可选地,当所述神经网络的收敛程度满足预设条件时,则确定所述当前迭代大 于或等于第二预设迭代。例如,在当前迭代的正向运算结果趋近于预设参考值时,可以 确定该神经网络的收敛程度满足预设条件,此时可以确定当前迭代大于或等于第二预设 迭代。或者,在当前迭代对应的损失值小于或等于预设阈值时,则可以确定该神经网络 的收敛程度满足预设条件。
可选地,上述的第二预设迭代间隔可以是超参数,该第二预设迭代间隔可以大于或 等于至少一个训练周期的迭代总数。可选地,该第二预设迭代间隔可以是用户自定义设置的。处理器可以直接读取用户输入的第二预设迭代和第二预设迭代间隔,并根据该第 二预设迭代间隔更新神经网络运算中的量化参数。例如,该第二预设迭代间隔可以等于 一个训练周期的迭代总数,即每个训练周期(epoch)更新一次量化参数。
再进一步地,上述方法还包括:
当所述当前迭代大于或等于第二预设迭代,处理器还可以在每次检验迭代处确定当 前数据位宽是否需要调整。如果当前数据位宽需要调整,则处理器可以从上述的操作S714 切换至操作S713,以重新确定数据位宽,使得数据位宽能够满足待量化数据的需求。
具体地,处理器可以根据上述的第二误差确定数据位宽是否需要调整。处理器还可 以执行上述操作S715,确定第二误差是否大于预设误差值,当所述当前迭代大于或等于第二预设迭代且所述第二误差大于预设误差值时,则切换执行操作S713,根据所述待量 化数据的数据变动幅度确定迭代间隔,以根据所述迭代间隔重新确定所述数据位宽。若 当前迭代大于或等于第二预设迭代,且第二误差小于或等于预设误差值,则继续执行操 作S714,将第二预设迭代间隔作为所述目标迭代间隔,并根据所述第二预设迭代间隔调 整所述神经网络量化过程中的参数。其中,预设误差值可以是根据量化误差对应的预设 阈值确定的,当第二误差大于预设误差值时,此时说明数据位宽可能需要进一步调整, 处理器可以根据所述待量化数据的数据变动幅度确定迭代间隔,以根据所述迭代间隔重 新确定所述数据位宽。
例如,第二预设迭代间隔为一个训练周期的迭代总数。在当前迭代大于或等于第二 预设迭代时,处理器可以按照第二预设迭代间隔更新量化参数,即每个训练周期(epoch) 更新一次量化参数。此时,每个训练周期的起始迭代作为一个检验迭代,在每个训练周 期的起始迭代处,处理器可以根据该检验迭代的待量化数据确定量化误差,根据量化误 差确定第二误差,并根据如下公式确定第二误差是否大于预设误差值:
diffupdate 2=θ*diffbit 2>T
其中,diffupdate 2表示第二误差,diffbit表示量化误差,θ表示超参数,T表示预设误差值。可选地,该预设误差值可以等于第一预设阈值除以超参数。当然,该预设误差值 也可以是超参数。例如,该预设误差值可以按照如下公式计算获得:T=th/10,其中,th 表示第一预设阈值,超参数的取值为10。
若第二误差diffupdate 2大于预设误差值T,则说明数据位宽可能不能满足预设要求, 此时,可以不再采用第二预设迭代间隔更新量化参数,处理器可以按照待量化数据的数 据变动幅度确定目标迭代间隔,以保证数据位宽满足预设要求。即在第二误差diffupdate 2大于预设误差值T时,处理器从上述的操作S714切换至上述的操作S713。
当然,在其他实施例中,处理器可以根据上述的量化误差,确定数据位宽是否需要调整。例如,第二预设迭代间隔为一个训练周期的迭代总数。在当前迭代大于或等于第 二预设迭代时,处理器可以按照第二预设迭代间隔更新量化参数,即每个训练周期(epoch)更新一次量化参数。其中,每个训练周期的起始迭代作为一个检验迭代。在每个训练周 期的起始迭代处,处理器可以根据该检验迭代的待量化数据确定量化误差,并在该量化 误差大于或等于第一预设阈值时,则说明数据位宽可能不能满足预设要求,即处理器从 上述的操作S714切换至上述的操作S713。
在一个可选的实施例中,上述的点位置、缩放系数和偏移量等量化参数可以通过显 示装置进行显示。此时,用户可以通过显示装置获知神经网络运算过程中的量化参数,用户还可以自适应修改处理器确定的量化参数。同理,上述的数据位宽和目标迭代间隔 等也可以通过显示装置进行显示。此时,用户可以通过显示装置获知神经网络运算过程 中的目标迭代间隔和数据位宽等参数,用户还可以自适应修改处理器确定的目标迭代间 隔和数据位宽等参数。
需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本披露并不受所描述的动作顺序的限制, 因为依据本披露,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也 应该知悉,说明书中所描述的实施例均属于可选实施例,所涉及的动作和模块并不一定 是本披露所必须的。
本披露一实施例还提供了一种神经网络的量化参数调整装置200,该量化参数调整装 置200可以设置于一处理器中。例如,该量化参数调整装置200可以置于通用处理器中, 再如,该量化参数调整装置也可以置于一人工智能处理器中。如图20所示,所述装置200 包括:
获取模块210,用于获取待量化数据的数据变动幅度;
迭代间隔确定模块220,用于根据所述待量化数据的数据变动幅度,确定目标迭代间 隔,以根据所述目标迭代间隔调整所述神经网络运算中的量化参数,其中,所述目标迭代间隔包括至少一次迭代,所述神经网络的量化参数用于实现对所述神经网络运算中待量化数据的量化操作。
可选地,所述量化参数包括点位置,所述点位置为所述待量化数据对应的量化数据 中小数点的位置。如图21所示,所述装置还包括:
量化参数确定模块230,用于根据当前检验迭代对应的目标数据位宽和所述当前检验 迭代的待量化数据,确定所述目标迭代间隔中迭代对应的点位置,以调整所述神经网络 运算中的点位置;
其中,所述目标迭代间隔中迭代对应的点位置一致。
可选地,所述量化参数包括点位置,所述点位置为所述待量化数据对应的量化数据 中小数点的位置;如图23或图24所示,所述装置还包括:
数据位宽确定模块240,用于根据所述当前检验迭代对应的目标数据位宽,确定所述 目标迭代间隔对应的数据位宽,其中,所述目标迭代间隔中迭代对应的数据位宽一致;
量化参数确定模块230,用于根据获取的点位置迭代间隔和所述目标迭代间隔对应的 数据位宽,调整所述目标迭代间隔中迭代对应的点位置,以调整所述神经网络运算中的 点位置;
其中,所述点位置迭代间隔包含至少一次迭代,所述点位置迭代间隔中迭代的点位 置一致。
可选地,所述点位置迭代间隔小于或等于所述目标迭代间隔。
可选地,所述量化参数还包括缩放系数,所述缩放系数与所述点位置同步更新。
可选地,所述量化参数还包括偏移量,所述偏移量与所述点位置同步更新。
可选地,如图24所示,所述数据位宽确定模块240包括:
量化误差确定单元241,用于根据所述当前检验迭代的待量化数据和所述当前检验迭 代的量化数据,确定量化误差,其中,所述当前检验迭代的量化数据是对所述当前检验 迭代的待量化数据进行量化获得的;
数据位宽确定单元242,用于根据所述量化误差,确定所述当前检验迭代对应的目标 数据位宽。
可选地,所述数据位宽确定单元242用于根据所述量化误差,确定所述当前检验迭代 对应的目标数据位宽时,具体用于:
若所述量化误差大于或等于第一预设阈值,则增加所述当前检验迭代对应的数据位 宽,获得所述当前检验迭代对应的目标数据位宽;或者,
若所述量化误差小于或等于第二预设阈值,则减小所述当前检验迭代对应的数据位 宽,获得所述当前检验迭代对应的目标数据位宽。
可选地,所述数据位宽确定单元242用于在若所述量化误差大于或等于第一预设阈值, 则增加所述当前检验迭代对应的数据位宽,获得所述当前检验迭代对应的目标数据位宽 时,具体用于:
若所述量化误差大于或等于第一预设阈值,则根据第一预设位宽步长确定第一中间 数据位宽;
返回根据所述当前检验迭代中待量化数据和所述当前检验迭代的量化数据,确定量 化误差,直至所述量化误差小于所述第一预设阈值;其中,所述当前检验迭代的量化数据是根据所述第一中间数据位宽对所述当前检验迭代的待量化数据进行量化获得。
可选地,所述数据位宽确定单元242用于在若所述量化误差小于或等于第二预设阈值, 则减小所述当前检验迭代对应的数据位宽,获得所述当前检验迭代对应的目标数据位宽 时,具体用于:
若所述量化误差小于或等于第二预设阈值,则根据第二预设位宽步长确定第二中间 数据位宽;
返回根据所述当前检验迭代中待量化数据和所述当前检验迭代的量化数据,确定量 化误差,直至所述量化误差大于所述第二预设阈值;其中,所述当前检验迭代的量化数据是根据所述第二中间数据位宽对所述当前检验迭代的待量化数据进行量化获得。
可选地,所述获取模块210包括:
第一获取模块211,用于获取点位置的变动幅度;其中,所述点位置的变动幅度能够 用于表征所述待量化数据的数据变动幅度,所述点位置的变动幅度与所述待量化数据的 数据变动幅度正相关。
可选地,如图23或图24所示,所述第一获取模块211包括:
第一均值确定单元2110,用于根据当前检验迭代之前的上一检验迭代对应的点位置, 以及所述上一检验迭代之前的历史迭代对应的点位置,确定第一均值,其中,所述上一检验迭代为所述目标迭代间隔之前的上一迭代间隔对应的检验迭代;
第二均值确定单元2111,用于根据所述当前检验迭代对应的点位置及所述当前检验 迭代之前的历史迭代的点位置,确定第二均值;其中,所述当前检验迭代对应的点位置根据所述当前检验迭代对应的目标数据位宽和待量化数据确定;
第一误差确定单元2112,用于根据所述第一均值和所述第二均值确定第一误差,所 述第一误差用于表征所述点位置的变动幅度。
可选地,所述第二均值确定单元2111具体用于:
获取预设数量的中间滑动平均值,其中,各个所述中间滑动平均值是根据所述当前 检验迭代之前所述预设数量的检验迭代确定的;
根据所述当前检验迭代的点位置以及所述预设数量的中间滑动平均值,确定所述第 二均值。
可选地,所述第二均值确定单元2111具体用于根据所述当前检验迭代对应的点位置 以及所述第一均值,确定所述第二均值。
可选地,所述第二均值确定单元2111还用于根据获取的所述当前检验迭代的数据位 宽调整值,更新所述第二均值;
其中,所述当前检验迭代的数据位宽调整值根据所述当前检验迭代的目标数据位宽 和初始数据位宽确定。
可选地,所述第二均值确定单元2111用于根据获取的所述当前检验迭代的数据位宽 调整值,更新所述第二均值时,具体用于:
当所述当前检验迭代的数据位宽调整值大于预设参数时,则根据所述当前检验迭代 的数据位宽调整值减小所述第二均值;
当所述当前检验迭代的数据位宽调整值小于预设参数时,则根据所述当前检验迭代 的数据位宽调整值增大所述第二均值。
可选地,所述迭代间隔确定模块220用于根据所述第一误差确定所述目标迭代间隔, 所述目标迭代间隔与所述第一误差负相关。
可选地,所述获取模块210还包括:
第二获取模块212,用于获取数据位宽的变化趋势;根据所述点位置的变动幅度和所 述数据位宽的变化趋势,确定所述待量化数据的数据变动幅度。
可选地,所述迭代间隔确定模块220用于根据获取的第一误差和第二误差,确定所述 目标迭代间隔;其中,所述第一误差用于表征点位置的变动幅度,所述第二误差用于表征数据位宽的变化趋势。
可选地,所述根迭代间隔确定模块220用于根据获取的第一误差和第二误差,确定所 述目标迭代间隔时,具体用于:
将所述第一误差和所述第二误差中最大值作为目标误差;
根据所述目标误差确定所述目标迭代间隔,其中,所述目标误差与所述目标迭代间 隔负相关。
可选地,所述第二误差根据量化误差确定;其中,所述量化误差根据所述当前检验迭代中待量化数据和所述当前检验迭代的量化数据确定,所述第二误差与所述量化误差正相关。
可选地,所述装置用于实现神经网络的训练或微调;所述迭代间隔确定模块220还用 于:
当所述当前迭代大于第一预设迭代时,则根据所述待量化数据的数据变动幅度确定 目标迭代间隔,并根据所述目标迭代间隔调整所述量化参数。
可选地,所述迭代间隔确定模块220还用于:当所述当前迭代小于或等于所述第一预 设迭代时,则将第一预设迭代间隔作为所述目标迭代间隔,并根据所述第一预设迭代间隔调整所述量化参数。
可选地,所述迭代间隔确定模块220还用于:
当所述当前迭代大于或等于第二预设迭代时,则将第二预设迭代间隔作为所述目标 迭代间隔,并根据所述第二预设迭代间隔调整所述量化参数;
其中,当所述神经网络的收敛程度满足预设条件时,则确定所述当前检验迭代大于 或等于第二预设迭代;
所述第二预设迭代大于所述第一预设迭代,所述第二预设迭代间隔大于所述第一预 设迭代间隔。
可选地,所述迭代间隔确定模块220还用于:当所述当前迭代大于或等于第二预设迭 代,且第二误差大于预设误差值时,则根据所述待量化数据的数据变动幅度确定迭代间隔,以根据所述迭代间隔重新确定所述数据位宽。
应当清楚的是,本申请实施例各个模块或单元的工作原理与上述方法中各个操作的 实现过程基本一致,具体可参见上文的描述,此处不再赘述。应该理解,上述的装置实施例仅是示意性的,本披露的装置还可通过其它的方式实现。例如,上述实施例中所述 单元/模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。例如, 多个单元、模块或组件可以结合,或者可以集成到另一个系统,或一些特征可以忽略或 不执行。上述集成的单元/模块既可以采用硬件的形式实现,也可以采用软件程序模块的 形式实现。所述集成的单元/模块如果以硬件的形式实现时,该硬件可以是数字电路,模 拟电路等等。硬件结构的物理实现包括但不局限于晶体管,忆阻器等等。
所述集成的单元/模块如果以软件程序模块的形式实现并作为独立的产品销售或使用 时,可以存储在一个计算机可读取存储器中。基于这样的理解,本披露的技术方案本质 上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形 式体现出来,该计算机软件产品存储在一个存储器中,包括若干指令用以使得一台计算机设备(可为个人计算机、服务器或者网络设备等)执行本披露各个实施例所述方法的 全部或部分步骤。而前述的存储器包括:U盘、只读存储器(ROM,Read-Only Memory)、 随机存取存储器(RAM,Random Access Memory)、移动硬盘、磁碟或者光盘等各种可 以存储程序代码的介质。
在一个实施例中,本披露还提供了一种计算机可读存储介质,该存储介质中存储有 计算机程序,该计算机程序被处理器或装置执行时,实现如上述任一实施例中的方法。具体地,该计算机程序被处理器或装置执行时,实现如下方法:
获取待量化数据的数据变动幅度;
根据所述待量化数据的数据变动幅度,确定目标迭代间隔,以根据所述目标迭代间 隔调整所述神经网络运算中的量化参数,其中,所述目标迭代间隔包括至少一次迭代,所述神经网络的量化参数用于实现对所述神经网络运算中待量化数据的量化操作。
应当清楚的是,本申请实施例各个操作的实现与上述方法中各个操作的实现过程基 本一致,具体可参见上文的描述,此处不再赘述。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分, 可以参见其他实施例的相关描述。上述实施例的各技术特征可以进行任意的组合,为使 描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
在一种可能的实现方式中,还公开了一种人工智能芯片,其包括了上述量化参数调 整装置。
在一种可能的实现方式中,还公开了一种板卡,其包括存储器件、接口装置和控制器件以及上述人工智能芯片;其中,所述人工智能芯片与所述存储器件、所述控制器件 以及所述接口装置分别连接;所述存储器件,用于存储数据;所述接口装置,用于实现 所述人工智能芯片与外部设备之间的数据传输;所述控制器件,用于对所述人工智能芯 片的状态进行监控。
图25示出根据本披露实施例的板卡的结构框图,参阅图25,上述板卡除了包括上述 芯片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所述的方法,其特征在于,所述量化参数包括点位置,所述点位置为所述待量化数据对应的量化数据中小数点的位置;所述方法还包括:
根据所述当前检验迭代对应的目标数据位宽,确定所述目标迭代间隔对应的数据位 宽,其中,所述目标迭代间隔中迭代对应的数据位宽一致;
根据获取的点位置迭代间隔和所述目标迭代间隔对应的数据位宽,调整所述目标迭 代间隔中迭代对应的点位置,以调整所述神经网络运算中的点位置;
其中,所述点位置迭代间隔包含至少一次迭代,所述点位置迭代间隔中迭代的点位 置一致。
A4、根据条款A2或A3所述的方法,所述点位置迭代间隔小于或等于所述目标迭代间 隔。
A5、根据条款A1-A4任一项所述的方法,所述量化参数还包括缩放系数,所述缩放系数与所述点位置同步更新。
A6、根据条款A1-A5任一项所述的方法,所述量化参数还包括偏移量,所述偏移量与所述点位置同步更新。
A7、根据条款A1-A6任一项所述的方法,所述方法还包括:
根据所述当前检验迭代的待量化数据和所述当前检验迭代的量化数据,确定量化误 差,其中,所述当前检验迭代的量化数据对所述当前检验迭代的待量化数据进行量化获得;
根据所述量化误差,确定所述当前检验迭代对应的目标数据位宽。
A8、根据条款A1-A7所述的方法,所述根据所述量化误差,确定所述当前检验迭代对应的目标数据位宽,包括:
若所述量化误差大于或等于第一预设阈值,则增加所述当前检验迭代对应的数据位 宽,获得所述当前检验迭代对应的目标数据位宽;或者,
若所述量化误差小于或等于第二预设阈值,则减小所述当前检验迭代对应的数据位 宽,获得所述当前检验迭代对应的目标数据位宽。
A9、根据条款A8所述的方法,若所述量化误差大于或等于第一预设阈值,则增加所述当前检验迭代对应的数据位宽,获得所述当前检验迭代对应的目标数据位宽,包括:
若所述量化误差大于或等于第一预设阈值,则根据第一预设位宽步长确定第一中间 数据位宽;
返回根据所述当前检验迭代中待量化数据和所述当前检验迭代的量化数据,确定量 化误差,直至所述量化误差小于所述第一预设阈值;其中,所述当前检验迭代的量化数据是根据所述第一中间数据位宽对所述当前检验迭代的待量化数据进行量化获得。
A10、根据条款A8所述的方法,所述若所述量化误差小于或等于第二预设阈值,则减小所述当前检验迭代对应的数据位宽,包括:
若所述量化误差小于或等于第二预设阈值,则根据第二预设位宽步长确定第二中间 数据位宽;
返回根据所述当前检验迭代中待量化数据和所述当前检验迭代的量化数据,确定量 化误差,直至所述量化误差大于所述第二预设阈值;其中,所述当前检验迭代的量化数据是根据所述第二中间数据位宽对所述当前检验迭代的待量化数据进行量化获得。
A11、根据条款A1-A10任一项所述的方法,所述获取待量化数据的数据变动幅度,包括:
获取点位置的变动幅度;其中,所述点位置的变动幅度能够用于表征所述待量化数 据的数据变动幅度,所述点位置的变动幅度与所述待量化数据的数据变动幅度正相关。
A12、根据条款A1-A11所述的方法,所述获取点位置的变动幅度,包括:
根据当前检验迭代之前的上一检验迭代对应的点位置,以及所述上一检验迭代之前 的历史迭代对应的点位置,确定第一均值,其中,所述上一检验迭代为所述目标迭代间隔之前的上一迭代间隔对应的检验迭代;
根据所述当前检验迭代对应的点位置及所述当前检验迭代之前的历史迭代的点位置, 确定第二均值;其中,所述当前检验迭代对应的点位置根据所述当前检验迭代对应的目 标数据位宽和待量化数据确定;
根据所述第一均值和所述第二均值确定第一误差,所述第一误差用于表征所述点位 置的变动幅度。
A13、根据条款A12所述的方法,所述根据当前检验迭代对应的点位置及所述当前检 验迭代之前的历史迭代的点位置,确定第二均值,包括:
获取预设数量的中间滑动平均值,其中,各个所述中间滑动平均值是根据所述当前 检验迭代之前所述预设数量的检验迭代确定的;
根据所述当前检验迭代的点位置以及所述预设数量的中间滑动平均值,确定所述第 二均值。
A14、根据条款A12所述的方法,所述根据所述当前检验迭代对应的点位置及所述当 前检验迭代之前的历史迭代的点位置,确定第二均值,包括:
根据所述当前检验迭代对应的点位置以及所述第一均值,确定所述第二均值。
A15、根据条款A12所述的方法,所述方法还包括:
根据获取的所述当前检验迭代的数据位宽调整值,更新所述第二均值;其中,所述当前检验迭代的数据位宽调整值根据所述当前检验迭代的目标数据位宽和初始数据位宽确定。
A16、根据条款A15所述的方法,所述根据获取的所述当前检验迭代的数据位宽调整 值,更新所述第二均值,包括:
当所述当前检验迭代的数据位宽调整值大于预设参数时,则根据所述当前检验迭代 的数据位宽调整值减小所述第二均值;
当所述当前检验迭代的数据位宽调整值小于预设参数时,则根据所述当前检验迭代 的数据位宽调整值增大所述第二均值。
A17、根据条款A12所述的方法,所述根据所述待量化数据的数据变动幅度,确定目标迭代间隔,包括:
根据所述第一误差确定所述目标迭代间隔,所述目标迭代间隔与所述第一误差负相 关。
A18、根据条款A11-A17任一项所述的方法,所述获取待量化数据的数据变动幅度,还包括:
获取数据位宽的变化趋势;
根据所述点位置的变动幅度和所述数据位宽的变化趋势,确定所述待量化数据的数 据变动幅度。
A19、根据条款A18所述的方法,根据所述待量化数据的数据变动幅度,确定目标迭代间隔,还包括:
根据获取的第一误差和第二误差,确定所述目标迭代间隔;其中,所述第一误差用于表征点位置的变动幅度,所述第二误差用于表征数据位宽的变化趋势。
A20、根据条款A19所述的方法,所述根据获取的所述第二误差和所述第一误差,确定所述目标迭代间隔,包括:
将所述第一误差和所述第二误差中最大值作为目标误差;
根据所述目标误差确定所述目标迭代间隔,其中,所述目标误差与所述目标迭代间 隔负相关。
A21、根据条款A19或A20所述的方法,所述第二误差根据量化误差确定;
其中,所述量化误差根据所述当前检验迭代中待量化数据和所述当前检验迭代的量 化数据确定,所述第二误差与所述量化误差正相关。
A22、根据条款A1-A21任一项所述的方法,所述方法用于神经网络的训练或微调,所述方法还包括:
当所述当前迭代大于第一预设迭代时,则根据所述待量化数据的数据变动幅度确定 目标迭代间隔,并根据所述目标迭代间隔调整所述量化参数。
A23、根据条款A22所述的方法,所述方法还包括:
当所述当前迭代小于或等于所述第一预设迭代时,则将第一预设迭代间隔作为所述 目标迭代间隔,并根据所述第一预设迭代间隔调整所述量化参数。
A24、根据条款A22或A23所述的方法,所述方法还包括:
当所述当前迭代大于或等于第二预设迭代时,则将第二预设迭代间隔作为所述目标 迭代间隔,并根据所述第二预设迭代间隔调整所述量化参数;
其中,所述第二预设迭代大于所述第一预设迭代,所述第二预设迭代间隔大于所述 第一预设迭代间隔。
A25、根据条款A24所述的方法,所述方法还包括:
当所述神经网络的收敛程度满足预设条件时,则确定所述当前检验迭代大于或等于 第二预设迭代。
A26、根据条款A24所述的方法,所述方法还包括:
当所述当前迭代大于或等于第二预设迭代,且第二误差大于预设误差值时,则根据 所述待量化数据的数据变动幅度确定迭代间隔,以根据所述迭代间隔重新确定所述数据 位宽。
A27、根据条款A1-A26任一项所述的方法,所述待量化数据为神经元数据、权值数据或梯度数据中的至少一种。
A28、一种神经网络的量化参数调整装置,包括存储器和处理器,所述存储器存储有 计算机程序,所述处理器执行所述计算机程序时,实现如条款A1-A27任一项所述的方法的步骤。
A29、一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机程序,所 述计算机程序被执行时,实现如条款A1-A27任一项所述的方法的步骤。
A30、一种神经网络的量化参数调整装置,所述装置包括:
获取模块,用于获取待量化数据的数据变动幅度;
迭代间隔确定模块,用于根据所述待量化数据的数据变动幅度,确定目标迭代间隔, 以根据所述目标迭代间隔调整所述神经网络运算中的量化参数,其中,所述目标迭代间 隔包括至少一次迭代,所述神经网络的量化参数用于实现对所述神经网络运算中待量化 数据的量化操作。
A31、根据条款A30所述的装置,所述量化参数包括点位置,所述点位置为所述待量化数据对应的量化数据中小数点的位置;所述装置还包括:
量化参数确定模块,用于根据当前检验迭代对应的目标数据位宽和所述当前检验迭 代的待量化数据,确定所述目标迭代间隔中迭代对应的点位置,以调整所述神经网络运算中的点位置;
其中,所述目标迭代间隔中迭代对应的点位置一致。
A 32、根据条款A30所述的装置,所述量化参数包括点位置,所述点位置为所述待量化数据对应的量化数据中小数点的位置;所述装置还包括:
数据位宽确定模块,用于根据所述当前检验迭代对应的目标数据位宽,确定所述目 标迭代间隔对应的数据位宽,其中,所述目标迭代间隔中迭代对应的数据位宽一致;
量化参数确定模块,用于根据获取的点位置迭代间隔和所述目标迭代间隔对应的数 据位宽,调整所述目标迭代间隔中迭代对应的点位置,以调整所述神经网络运算中的点位置;
其中,所述点位置迭代间隔包含至少一次迭代,所述点位置迭代间隔中迭代的点位 置一致。
A33、根据条款A 32所述的装置,所述点位置迭代间隔小于或等于所述目标迭代间隔。
A 34、根据条款A 31-A 33任一项所述的装置,所述量化参数还包括缩放系数,所述 缩放系数与所述点位置同步更新。
A 35、根据条款A 31-A 33任一项所述的装置,所述量化参数还包括偏移量,所述偏 移量与所述点位置同步更新。
A 36、根据条款A31-A33任一项所述的装置,所述数据位宽确定模块包括:
量化误差确定单元,用于根据所述当前检验迭代的待量化数据和所述当前检验迭代 的量化数据,确定量化误差,其中,所述当前检验迭代的量化数据对所述当前检验迭代的待量化数据进行量化获得;
数据位宽确定单元,用于根据所述量化误差,确定所述当前检验迭代对应的目标数 据位宽。
A37、根据条款A36所述的装置,所述数据位宽确定单元用于根据所述量化误差,确定所述当前检验迭代对应的目标数据位宽时,具体用于:
若所述量化误差大于或等于第一预设阈值,则增加所述当前检验迭代对应的数据位 宽,获得所述当前检验迭代对应的目标数据位宽;或者,
若所述量化误差小于或等于第二预设阈值,则减小所述当前检验迭代对应的数据位 宽,获得所述当前检验迭代对应的目标数据位宽。
A38、根据条款A 37所述的装置,所述数据位宽确定单元用于若所述量化误差大于或 等于第一预设阈值,则增加所述当前检验迭代对应的数据位宽,获得所述当前检验迭代对应的目标数据位宽时,具体用于:
若所述量化误差大于或等于第一预设阈值,则根据第一预设位宽步长确定第一中间 数据位宽;
返回根据所述当前检验迭代中待量化数据和所述当前检验迭代的量化数据,确定量 化误差,直至所述量化误差小于所述第一预设阈值;其中,所述当前检验迭代的量化数据是根据所述第一中间数据位宽对所述当前检验迭代的待量化数据进行量化获得。
A39、根据条款A 37所述的装置,所述数据位宽确定单元用于若所述量化误差小于或 等于第二预设阈值,则减小所述当前检验迭代对应的数据位宽,获得所述当前检验迭代对应的目标数据位宽时,具体用于:
若所述量化误差小于或等于第二预设阈值,则根据第二预设位宽步长确定第二中间 数据位宽;
返回根据所述当前检验迭代中待量化数据和所述当前检验迭代的量化数据,确定量 化误差,直至所述量化误差大于所述第二预设阈值;其中,所述当前检验迭代的量化数据是根据所述第二中间数据位宽对所述当前检验迭代的待量化数据进行量化获得。
A 40、根据条款A 30-A 39任一项所述的装置,所述获取模块包括:
第一获取模块,用于获取点位置的变动幅度;其中,所述点位置的变动幅度能够用于表征所述待量化数据的数据变动幅度,所述点位置的变动幅度与所述待量化数据的数据变动幅度正相关。
A41、根据条款A 40所述的方法,所述第一获取模块包括:
第一均值确定单元,用于根据当前检验迭代之前的上一检验迭代对应的点位置,以 及所述上一检验迭代之前的历史迭代对应的点位置,确定第一均值,其中,所述上一检验迭代为所述目标迭代间隔之前的上一迭代间隔对应的检验迭代;
第二均值确定单元,用于根据所述当前检验迭代对应的点位置及所述当前检验迭代 之前的历史迭代的点位置,确定第二均值;其中,所述当前检验迭代对应的点位置根据所述当前检验迭代对应的目标数据位宽和待量化数据确定;
第一误差确定单元,用于根据所述第一均值和所述第二均值确定第一误差,所述第 一误差用于表征所述点位置的变动幅度。
A42、根据条款A 41所述的装置,所述第二均值确定单元具体用于:
获取预设数量的中间滑动平均值,其中,各个所述中间滑动平均值是根据所述当前 检验迭代之前所述预设数量的检验迭代确定的;
根据所述当前检验迭代的点位置以及所述预设数量的中间滑动平均值,确定所述第 二均值。
A43、根据条款A 41所述的装置,所述第二均值确定单元具体用于根据所述当前检验 迭代对应的点位置以及所述第一均值,确定所述第二均值。
A44、根据条款A41所述的装置,所述第二均值确定单元还用于根据获取的所述当前 检验迭代的数据位宽调整值,更新所述第二均值;
其中,所述当前检验迭代的数据位宽调整值根据所述当前检验迭代的目标数据位宽 和初始数据位宽确定。
A45、根据条款A44所述的装置,所述第二均值确定单元还用于根据获取的所述当前 检验迭代的数据位宽调整值,更新所述第二均值时,具体用于:
当所述当前检验迭代的数据位宽调整值大于预设参数时,则根据所述当前检验迭代 的数据位宽调整值减小所述第二均值;
当所述当前检验迭代的数据位宽调整值小于预设参数时,则根据所述当前检验迭代 的数据位宽调整值增大所述第二均值。
A46、根据条款A 41所述的装置,所述迭代间隔确定模块用于根据所述第一误差确定 所述目标迭代间隔,所述目标迭代间隔与所述第一误差负相关。
A47、根据条款A40所述的装置,所述获取模块还包括:
第二获取模块,用于获取数据位宽的变化趋势;根据所述点位置的变动幅度和所述 数据位宽的变化趋势,确定所述待量化数据的数据变动幅度。
A48、根据条款A 47所述的装置,所述迭代间隔确定模块还用于根据获取的第一误差 和第二误差,确定所述目标迭代间隔;其中,所述第一误差用于表征点位置的变动幅度,所述第二误差用于表征数据位宽的变化趋势。
A49、根据条款A 48所述的装置,所述根迭代间隔确定模块用于根据获取的第一误差 和第二误差,确定所述目标迭代间隔时,具体用于:
将所述第一误差和所述第二误差中最大值作为目标误差;
根据所述目标误差确定所述目标迭代间隔,其中,所述目标误差与所述目标迭代间 隔负相关。
A50、根据条款A48或A 49所述的装置,所述第二误差根据量化误差确定;
其中,所述量化误差根据所述当前检验迭代中待量化数据和所述当前检验迭代的量 化数据确定,所述第二误差与所述量化误差正相关。
A51、根据条款A 30-A 50任一项所述的装置,所述装置用于实现神经网络的训练或 微调;所述迭代间隔确定模块还用于:
当所述当前迭代大于第一预设迭代时,则根据所述待量化数据的数据变动幅度确定 目标迭代间隔,并根据所述目标迭代间隔调整所述量化参数。
A52、根据条款A 51所述的装置,所述迭代间隔确定模块还用于:当所述当前迭代小 于或等于所述第一预设迭代时,则将第一预设迭代间隔作为所述目标迭代间隔,并根据所述第一预设迭代间隔调整所述量化参数。
A53、根据条款A 51或A52所述的装置,所述迭代间隔确定模块还用于:
当所述当前迭代大于或等于第二预设迭代时,则将第二预设迭代间隔作为所述目标 迭代间隔,并根据所述第二预设迭代间隔调整所述量化参数;
其中,当所述神经网络的收敛程度满足预设条件时,则确定所述当前检验迭代大于 或等于第二预设迭代;
所述第二预设迭代大于所述第一预设迭代,所述第二预设迭代间隔大于所述第一预 设迭代间隔。
A54、根据条款A 53所述的装置,所述迭代间隔确定模块还用于:当所述当前迭代大 于或等于第二预设迭代,且第二误差大于预设误差值时,则根据所述待量化数据的数据变动幅度确定迭代间隔,以根据所述迭代间隔重新确定所述数据位宽。
以上已经描述了本披露的各实施例,上述说明是示例性的,并非穷尽性的,并且也不限于所披露的各实施例。在不偏离所说明的各实施例的范围和精神的情况下,对于本 技术领域的普通技术人员来说许多修改和变更都是显而易见的。本文中所用术语的选择, 旨在最好地解释各实施例的原理、实际应用或对市场中的技术的改进,或者使本技术领 域的其它普通技术人员能理解本文披露的各实施例。

Claims (54)

1.一种神经网络的量化参数调整方法,其特征在于,所述方法包括:
获取待量化数据的数据变动幅度;
根据所述待量化数据的数据变动幅度,确定目标迭代间隔,以根据所述目标迭代间隔调整所述神经网络运算中的量化参数,其中,所述目标迭代间隔包括至少一次迭代,所述神经网络的量化参数用于实现对所述神经网络运算中待量化数据的量化操作。
2.根据权利要求1所述的方法,其特征在于,所述量化参数包括点位置,所述点位置为所述待量化数据对应的量化数据中小数点的位置;所述方法还包括:
根据当前检验迭代对应的目标数据位宽和所述当前检验迭代的待量化数据,确定所述目标迭代间隔中迭代对应的点位置,以调整所述神经网络运算中的点位置;
其中,所述目标迭代间隔中迭代对应的点位置一致。
3.根据权利要求1所述的方法,其特征在于,所述量化参数包括点位置,所述点位置为所述待量化数据对应的量化数据中小数点的位置;所述方法还包括:
根据所述当前检验迭代对应的目标数据位宽,确定所述目标迭代间隔对应的数据位宽,其中,所述目标迭代间隔中迭代对应的数据位宽一致;
根据获取的点位置迭代间隔和所述目标迭代间隔对应的数据位宽,调整所述目标迭代间隔中迭代对应的点位置,以调整所述神经网络运算中的点位置;
其中,所述点位置迭代间隔包含至少一次迭代,所述点位置迭代间隔中迭代的点位置一致。
4.根据权利要求3所述的方法,其特征在于,所述点位置迭代间隔小于或等于所述目标迭代间隔。
5.根据权利要求2-4任一项所述的方法,其特征在于,所述量化参数还包括缩放系数,所述缩放系数与所述点位置同步更新。
6.根据权利要求2-4任一项所述的方法,其特征在于,所述量化参数还包括偏移量,所述偏移量与所述点位置同步更新。
7.根据权利要求2-4任一项所述的方法,其特征在于,所述方法还包括:
根据所述当前检验迭代的待量化数据和所述当前检验迭代的量化数据,确定量化误差,其中,所述当前检验迭代的量化数据对所述当前检验迭代的待量化数据进行量化获得;
根据所述量化误差,确定所述当前检验迭代对应的目标数据位宽。
8.根据权利要求7所述的方法,其特征在于,所述根据所述量化误差,确定所述当前检验迭代对应的目标数据位宽,包括:
若所述量化误差大于或等于第一预设阈值,则增加所述当前检验迭代对应的数据位宽,获得所述当前检验迭代对应的目标数据位宽;或者,
若所述量化误差小于或等于第二预设阈值,则减小所述当前检验迭代对应的数据位宽,获得所述当前检验迭代对应的目标数据位宽。
9.根据权利要求8所述的方法,其特征在于,若所述量化误差大于或等于第一预设阈值,则增加所述当前检验迭代对应的数据位宽,获得所述当前检验迭代对应的目标数据位宽,包括:
若所述量化误差大于或等于第一预设阈值,则根据第一预设位宽步长确定第一中间数据位宽;
返回执行根据所述当前检验迭代中待量化数据和所述当前检验迭代的量化数据,确定量化误差,直至所述量化误差小于所述第一预设阈值;其中,所述当前检验迭代的量化数据是根据所述第一中间数据位宽对所述当前检验迭代的待量化数据进行量化获得。
10.根据权利要求8所述的方法,其特征在于,所述若所述量化误差小于或等于第二预设阈值,则减小所述当前检验迭代对应的数据位宽,包括:
若所述量化误差小于或等于第二预设阈值,则根据第二预设位宽步长确定第二中间数据位宽;
返回执行根据所述当前检验迭代中待量化数据和所述当前检验迭代的量化数据,确定量化误差,直至所述量化误差大于所述第二预设阈值;其中,所述当前检验迭代的量化数据是根据所述第二中间数据位宽对所述当前检验迭代的待量化数据进行量化获得。
11.根据权利要求1-10任一项所述的方法,其特征在于,所述获取待量化数据的数据变动幅度,包括:
获取点位置的变动幅度;其中,所述点位置的变动幅度能够用于表征所述待量化数据的数据变动幅度,所述点位置的变动幅度与所述待量化数据的数据变动幅度正相关。
12.根据权利要求11所述的方法,其特征在于,所述获取点位置的变动幅度,包括:
根据当前检验迭代之前的上一检验迭代对应的点位置,以及所述上一检验迭代之前的历史迭代对应的点位置,确定第一均值,其中,所述上一检验迭代为所述目标迭代间隔之前的上一迭代间隔对应的检验迭代;
根据所述当前检验迭代对应的点位置及所述当前检验迭代之前的历史迭代的点位置,确定第二均值;其中,所述当前检验迭代对应的点位置根据所述当前检验迭代对应的目标数据位宽和待量化数据确定;
根据所述第一均值和所述第二均值确定第一误差,所述第一误差用于表征所述点位置的变动幅度。
13.根据权利要求12所述的方法,其特征在于,所述根据当前检验迭代对应的点位置及所述当前检验迭代之前的历史迭代的点位置,确定第二均值,包括:
获取预设数量的中间滑动平均值,其中,各个所述中间滑动平均值是根据所述当前检验迭代之前所述预设数量的检验迭代确定的;
根据所述当前检验迭代的点位置以及所述预设数量的中间滑动平均值,确定所述第二均值。
14.根据权利要求12所述的方法,其特征在于,所述根据所述当前检验迭代对应的点位置及所述当前检验迭代之前的历史迭代的点位置,确定第二均值,包括:
根据所述当前检验迭代对应的点位置以及所述第一均值,确定所述第二均值。
15.根据权利要求12所述的方法,其特征在于,所述方法还包括:
根据获取的所述当前检验迭代的数据位宽调整值,更新所述第二均值;其中,所述当前检验迭代的数据位宽调整值根据所述当前检验迭代的目标数据位宽和初始数据位宽确定。
16.根据权利要求15所述的方法,其特征在于,所述根据获取的所述当前检验迭代的数据位宽调整值,更新所述第二均值,包括:
当所述当前检验迭代的数据位宽调整值大于预设参数时,则根据所述当前检验迭代的数据位宽调整值减小所述第二均值;
当所述当前检验迭代的数据位宽调整值小于预设参数时,则根据所述当前检验迭代的数据位宽调整值增大所述第二均值。
17.根据权利要求12所述的方法,其特征在于,所述根据所述待量化数据的数据变动幅度,确定目标迭代间隔,包括:
根据所述第一误差确定所述目标迭代间隔,所述目标迭代间隔与所述第一误差负相关。
18.根据权利要求11-17任一项所述的方法,其特征在于,所述获取待量化数据的数据变动幅度,还包括:
获取数据位宽的变化趋势;
根据所述点位置的变动幅度和所述数据位宽的变化趋势,确定所述待量化数据的数据变动幅度。
19.根据权利要求18所述的方法,其特征在于,根据所述待量化数据的数据变动幅度,确定目标迭代间隔,还包括:
根据获取的第一误差和第二误差,确定所述目标迭代间隔;其中,所述第一误差用于表征点位置的变动幅度,所述第二误差用于表征数据位宽的变化趋势。
20.根据权利要求19所述的方法,其特征在于,所述根据获取的所述第二误差和所述第一误差,确定所述目标迭代间隔,包括:
将所述第一误差和所述第二误差中最大值作为目标误差;
根据所述目标误差确定所述目标迭代间隔,其中,所述目标误差与所述目标迭代间隔负相关。
21.根据权利要求19或20所述的方法,其特征在于,所述第二误差根据量化误差确定;
其中,所述量化误差根据所述当前检验迭代中待量化数据和所述当前检验迭代的量化数据确定,所述第二误差与所述量化误差正相关。
22.根据权利要求1-21任一项所述的方法,其特征在于,所述方法用于神经网络的训练或微调,所述方法还包括:
在当前迭代大于第一预设迭代时,则根据所述待量化数据的数据变动幅度确定目标迭代间隔,并根据所述目标迭代间隔调整所述量化参数。
23.根据权利要求22所述的方法,其特征在于,所述方法还包括:
当所述当前迭代小于或等于所述第一预设迭代时,则将第一预设迭代间隔作为所述目标迭代间隔,并根据所述第一预设迭代间隔调整所述量化参数。
24.根据权利要求22或23所述的方法,其特征在于,所述方法还包括:
当所述当前迭代大于或等于第二预设迭代时,则将第二预设迭代间隔作为所述目标迭代间隔,并根据所述第二预设迭代间隔调整所述量化参数;
其中,所述第二预设迭代大于所述第一预设迭代,所述第二预设迭代间隔大于所述第一预设迭代间隔。
25.根据权利要求24所述的方法,其特征在于,所述方法还包括:
当所述神经网络的收敛程度满足预设条件时,则确定所述当前检验迭代大于或等于第二预设迭代。
26.根据权利要求24所述的方法,其特征在于,所述方法还包括:
当所述当前迭代大于或等于第二预设迭代,且第二误差大于预设误差值时,则根据所述待量化数据的数据变动幅度确定迭代间隔,以根据所述迭代间隔重新确定所述数据位宽。
27.根据权利要求1-26任一项所述的方法,其特征在于,所述待量化数据为神经元数据、权值数据或梯度数据中的至少一种。
28.一种神经网络的量化参数调整装置,其特征在于,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时,实现如权利要求1-27任一项所述的方法的步骤。
29.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有计算机程序,所述计算机程序被执行时,实现如权利要求1-27任一项所述的方法的步骤。
30.一种神经网络的量化参数调整装置,其特征在于,所述装置包括:
获取模块,用于获取待量化数据的数据变动幅度;
迭代间隔确定模块,用于根据所述待量化数据的数据变动幅度,确定目标迭代间隔,以根据所述目标迭代间隔调整所述神经网络运算中的量化参数,其中,所述目标迭代间隔包括至少一次迭代,所述神经网络的量化参数用于实现对所述神经网络运算中待量化数据的量化操作。
31.根据权利要求30所述的装置,其特征在于,所述量化参数包括点位置,所述点位置为所述待量化数据对应的量化数据中小数点的位置;所述装置还包括:
量化参数确定模块,用于根据当前检验迭代对应的目标数据位宽和所述当前检验迭代的待量化数据,确定所述目标迭代间隔中迭代对应的点位置,以调整所述神经网络运算中的点位置;
其中,所述目标迭代间隔中迭代对应的点位置一致。
32.根据权利要求30所述的装置,其特征在于,所述量化参数包括点位置,所述点位置为所述待量化数据对应的量化数据中小数点的位置;所述装置还包括:
数据位宽确定模块,用于根据所述当前检验迭代对应的目标数据位宽,确定所述目标迭代间隔对应的数据位宽,其中,所述目标迭代间隔中迭代对应的数据位宽一致;
量化参数确定模块,用于根据获取的点位置迭代间隔和所述目标迭代间隔对应的数据位宽,调整所述目标迭代间隔中迭代对应的点位置,以调整所述神经网络运算中的点位置;
其中,所述点位置迭代间隔包含至少一次迭代,所述点位置迭代间隔中迭代的点位置一致。
33.根据权利要求32所述的装置,其特征在于,所述点位置迭代间隔小于或等于所述目标迭代间隔。
34.根据权利要求31-33任一项所述的装置,其特征在于,所述量化参数还包括缩放系数,所述缩放系数与所述点位置同步更新。
35.根据权利要求31-33任一项所述的装置,其特征在于,所述量化参数还包括偏移量,所述偏移量与所述点位置同步更新。
36.根据权利要求31-33任一项所述的装置,其特征在于,所述数据位宽确定模块包括:
量化误差确定单元,用于根据所述当前检验迭代的待量化数据和所述当前检验迭代的量化数据,确定量化误差,其中,所述当前检验迭代的量化数据对所述当前检验迭代的待量化数据进行量化获得;
数据位宽确定单元,用于根据所述量化误差,确定所述当前检验迭代对应的目标数据位宽。
37.根据权利要求36所述的装置,其特征在于,所述数据位宽确定单元用于根据所述量化误差,确定所述当前检验迭代对应的目标数据位宽时,具体用于:
若所述量化误差大于或等于第一预设阈值,则增加所述当前检验迭代对应的数据位宽,获得所述当前检验迭代对应的目标数据位宽;或者,
若所述量化误差小于或等于第二预设阈值,则减小所述当前检验迭代对应的数据位宽,获得所述当前检验迭代对应的目标数据位宽。
38.根据权利要求37所述的装置,其特征在于,所述数据位宽确定单元用于若所述量化误差大于或等于第一预设阈值,则增加所述当前检验迭代对应的数据位宽,获得所述当前检验迭代对应的目标数据位宽时,具体用于:
若所述量化误差大于或等于第一预设阈值,则根据第一预设位宽步长确定第一中间数据位宽;
返回执行根据所述当前检验迭代中待量化数据和所述当前检验迭代的量化数据,确定量化误差,直至所述量化误差小于所述第一预设阈值;其中,所述当前检验迭代的量化数据是根据所述第一中间数据位宽对所述当前检验迭代的待量化数据进行量化获得。
39.根据权利要求37所述的装置,其特征在于,所述数据位宽确定单元用于若所述量化误差小于或等于第二预设阈值,则减小所述当前检验迭代对应的数据位宽,获得所述当前检验迭代对应的目标数据位宽时,具体用于:
若所述量化误差小于或等于第二预设阈值,则根据第二预设位宽步长确定第二中间数据位宽;
返回执行根据所述当前检验迭代中待量化数据和所述当前检验迭代的量化数据,确定量化误差,直至所述量化误差大于所述第二预设阈值;其中,所述当前检验迭代的量化数据是根据所述第二中间数据位宽对所述当前检验迭代的待量化数据进行量化获得。
40.根据权利要求30-39任一项所述的装置,其特征在于,所述获取模块包括:
第一获取模块,用于获取点位置的变动幅度;其中,所述点位置的变动幅度能够用于表征所述待量化数据的数据变动幅度,所述点位置的变动幅度与所述待量化数据的数据变动幅度正相关。
41.根据权利要求40所述的方法,其特征在于,所述第一获取模块包括:
第一均值确定单元,用于根据当前检验迭代之前的上一检验迭代对应的点位置,以及所述上一检验迭代之前的历史迭代对应的点位置,确定第一均值,其中,所述上一检验迭代为所述目标迭代间隔之前的上一迭代间隔对应的检验迭代;
第二均值确定单元,用于根据所述当前检验迭代对应的点位置及所述当前检验迭代之前的历史迭代的点位置,确定第二均值;其中,所述当前检验迭代对应的点位置根据所述当前检验迭代对应的目标数据位宽和待量化数据确定;
第一误差确定单元,用于根据所述第一均值和所述第二均值确定第一误差,所述第一误差用于表征所述点位置的变动幅度。
42.根据权利要求41所述的装置,其特征在于,所述第二均值确定单元具体用于:
获取预设数量的中间滑动平均值,其中,各个所述中间滑动平均值是根据所述当前检验迭代之前所述预设数量的检验迭代确定的;
根据所述当前检验迭代的点位置以及所述预设数量的中间滑动平均值,确定所述第二均值。
43.根据权利要求41所述的装置,其特征在于,所述第二均值确定单元具体用于根据所述当前检验迭代对应的点位置以及所述第一均值,确定所述第二均值。
44.根据权利要求41所述的装置,其特征在于,所述第二均值确定单元用于根据获取的所述当前检验迭代的数据位宽调整值,更新所述第二均值;
其中,所述当前检验迭代的数据位宽调整值根据所述当前检验迭代的目标数据位宽和初始数据位宽确定。
45.根据权利要求44所述的装置,其特征在于,所述第二均值确定单元用于根据获取的所述当前检验迭代的数据位宽调整值,更新所述第二均值时,具体用于:
当所述当前检验迭代的数据位宽调整值大于预设参数时,则根据所述当前检验迭代的数据位宽调整值减小所述第二均值;
当所述当前检验迭代的数据位宽调整值小于预设参数时,则根据所述当前检验迭代的数据位宽调整值增大所述第二均值。
46.根据权利要求41所述的装置,其特征在于,所述迭代间隔确定模块用于根据所述第一误差确定所述目标迭代间隔,所述目标迭代间隔与所述第一误差负相关。
47.根据权利要求40所述的装置,其特征在于,所述获取模块还包括:
第二获取模块,用于获取数据位宽的变化趋势;根据所述点位置的变动幅度和所述数据位宽的变化趋势,确定所述待量化数据的数据变动幅度。
48.根据权利要求47所述的装置,其特征在于,所述迭代间隔确定模块还用于根据获取的第一误差和第二误差,确定所述目标迭代间隔;其中,所述第一误差用于表征点位置的变动幅度,所述第二误差用于表征数据位宽的变化趋势。
49.根据权利要求48所述的装置,其特征在于,所述根迭代间隔确定模块用于根据获取的第一误差和第二误差,确定所述目标迭代间隔时,具体用于:
将所述第一误差和所述第二误差中最大值作为目标误差;
根据所述目标误差确定所述目标迭代间隔,其中,所述目标误差与所述目标迭代间隔负相关。
50.根据权利要求48或49所述的装置,其特征在于,所述第二误差根据量化误差确定;
其中,所述量化误差根据所述当前检验迭代中待量化数据和所述当前检验迭代的量化数据确定,所述第二误差与所述量化误差正相关。
51.根据权利要求30-50任一项所述的装置,其特征在于,所述装置用于实现神经网络的训练或微调;所述迭代间隔确定模块还用于:
当所述当前迭代大于第一预设迭代时,则根据所述待量化数据的数据变动幅度确定目标迭代间隔,并根据所述目标迭代间隔调整所述量化参数。
52.根据权利要求51所述的装置,其特征在于,所述迭代间隔确定模块还用于:当所述当前迭代小于或等于所述第一预设迭代时,则将第一预设迭代间隔作为所述目标迭代间隔,并根据所述第一预设迭代间隔调整所述量化参数。
53.根据权利要求51或52所述的装置,其特征在于,所述迭代间隔确定模块还用于:
当所述当前迭代大于或等于第二预设迭代时,则将第二预设迭代间隔作为所述目标迭代间隔,并根据所述第二预设迭代间隔调整所述量化参数;
其中,当所述神经网络的收敛程度满足预设条件时,则确定所述当前检验迭代大于或等于第二预设迭代;
所述第二预设迭代大于所述第一预设迭代,所述第二预设迭代间隔大于所述第一预设迭代间隔。
54.根据权利要求53所述的装置,其特征在于,所述迭代间隔确定模块还用于:当所述当前迭代大于或等于第二预设迭代,且第二误差大于预设误差值时,则根据所述待量化数据的数据变动幅度确定迭代间隔,以根据所述迭代间隔重新确定所述数据位宽。
CN201910887861.9A 2019-06-12 2019-09-19 量化参数调整方法、装置及相关产品 Active CN112085184B (zh)

Applications Claiming Priority (8)

Application Number Priority Date Filing Date Title
CN201910505239 2019-06-12
CN2019105052397 2019-06-12
CN2019105153557 2019-06-14
CN201910515355 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
CN112085184A true CN112085184A (zh) 2020-12-15
CN112085184B CN112085184B (zh) 2024-03-29

Family

ID=69185300

Family Applications (14)

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

Family Applications Before (4)

Application Number Title Priority Date Filing Date
CN201910887544.7A Active CN112085183B (zh) 2019-06-12 2019-09-19 一种神经网络运算方法及装置以及相关产品
CN201910888626.3A Active CN112085186B (zh) 2019-06-12 2019-09-19 一种神经网络的量化参数确定方法及相关产品
CN201910960314.9A Active CN112085192B (zh) 2019-06-12 2019-09-19 一种神经网络的量化参数确定方法及相关产品
CN201910959831.4A Active CN112085190B (zh) 2019-06-12 2019-09-19 一种神经网络的量化参数确定方法及相关产品

Family Applications After (9)

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

Country Status (6)

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

Families Citing this family (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11437032B2 (en) 2017-09-29 2022-09-06 Shanghai Cambricon Information Technology Co., Ltd Image processing apparatus and method
US11397579B2 (en) 2018-02-13 2022-07-26 Shanghai Cambricon Information Technology Co., Ltd Computing device and method
CN116991225A (zh) 2018-02-14 2023-11-03 上海寒武纪信息科技有限公司 处理器的控制装置、方法及设备
JP7053891B2 (ja) 2018-06-27 2022-04-12 シャンハイ カンブリコン インフォメーション テクノロジー カンパニー リミテッド オンチップコードのブレークポイントによるデバッグ方法、オンチッププロセッサ及びブレークポイントによるチップデバッグシステム
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 中科寒武纪科技股份有限公司 一种用于神经网络的算子融合方法及其相关产品
US20210232890A1 (en) * 2019-09-24 2021-07-29 Baidu Usa Llc Cursor-based adaptive quantization for deep neural networks
JP7354736B2 (ja) * 2019-09-30 2023-10-03 富士通株式会社 情報処理装置、情報処理方法、情報処理プログラム
US11775611B2 (en) * 2019-11-01 2023-10-03 Samsung Electronics Co., Ltd. Piecewise quantization for neural networks
JP2021111081A (ja) * 2020-01-09 2021-08-02 富士通株式会社 情報処理装置、ニューラルネットワークの演算プログラム及びニューラルネットワークの演算方法
US20210241183A1 (en) * 2020-01-31 2021-08-05 Hewlett Packard Enterprise Development Lp Adaptively synchronizing learning of multiple learning models
CN113741619B (zh) * 2020-05-27 2024-03-12 安徽寒武纪信息科技有限公司 时钟控制装置及相关产品
CN112686001B (zh) * 2021-01-05 2021-12-03 中科三清科技有限公司 气象数据的变换方法、传输方法、服务器及数据传输系统
KR102507461B1 (ko) * 2021-02-16 2023-03-07 고려대학교 산학협력단 레이어-단위 양자화 신경망을 위한 인-메모리 가속기 및 이의 동작 방법
CN112990457B (zh) * 2021-03-26 2024-05-03 开放智能机器(上海)有限公司 离线量化调优方法、装置、设备、介质及程序产品
CN113220606B (zh) * 2021-05-07 2021-11-26 珠海市芯动力科技有限公司 神经网络权值存储方法、读取方法及相关设备
JP2023069780A (ja) * 2021-11-08 2023-05-18 富士通株式会社 演算プログラム、演算方法及び計算機
WO2023128024A1 (ko) * 2021-12-30 2023-07-06 한국전자기술연구원 딥러닝 네트워크 양자화 처리 방법 및 시스템
KR20230136572A (ko) * 2022-03-18 2023-09-26 인텔렉추얼디스커버리 주식회사 신경망 기반 특징 텐서 압축 방법 및 장치
CN114611697B (zh) * 2022-05-11 2022-09-09 上海登临科技有限公司 神经网络量化及部署方法、系统、电子设备及存储介质
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
JPS63111768A (ja) * 1986-10-30 1988-05-17 Nec Corp 画像デ−タ量子化装置
EP0509576A2 (en) * 1991-04-18 1992-10-21 Ampex Systems Corporation Method and apparatus for determining a quantizing factor for processes involving multiple compression/decompression of data
US20080065376A1 (en) * 2006-09-08 2008-03-13 Kabushiki Kaisha Toshiba Audio encoder
CN101754490A (zh) * 2008-12-17 2010-06-23 大唐移动通信设备有限公司 一种数据传输的方法、系统和装置
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
CN105100810A (zh) * 2014-05-16 2015-11-25 中国科学院声学研究所 一种成像声纳实时处理系统中的图像压缩解压方法及系统
US20180075347A1 (en) * 2016-09-15 2018-03-15 Microsoft Technology Licensing, Llc Efficient training of neural networks
US20180107925A1 (en) * 2016-10-19 2018-04-19 Samsung Electronics Co., Ltd. Method and apparatus for neural network quantization
US20180341857A1 (en) * 2017-05-25 2018-11-29 Samsung Electronics Co., Ltd. Neural network method and apparatus
US20180349758A1 (en) * 2017-06-06 2018-12-06 Via Alliance Semiconductor Co., Ltd. Computation method and device used in a convolutional neural network
EP3474194A1 (en) * 2017-10-19 2019-04-24 Samsung Electronics Co., Ltd. Method and apparatus with neural network parameter quantization
CN109800865A (zh) * 2019-01-24 2019-05-24 北京市商汤科技开发有限公司 神经网络生成及图像处理方法和装置、平台、电子设备

Family Cites Families (236)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2604712B2 (ja) * 1985-10-18 1997-04-30 ソニー株式会社 テレビジヨン信号の高能率符号化/復号装置
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
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
SK286661B6 (sk) 2000-09-07 2009-03-05 Nippon Steel Corporation Prostriedok neobsahujúci šesťmocný chróm na úpravu povrchu oceľových plechov pokovovaných cínovou alebo hliníkovou bázou a oceľový plech pokovovaný cínovou alebo hliníkovou bázou s upraveným povrchom
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
CN1270273C (zh) 2001-04-19 2006-08-16 艾利森电话股份有限公司 自适应存储器分配
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 北京天碁科技有限公司 片上系统芯片、片上系统芯片的跟踪调试系统及方法
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
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
CN102985673B (zh) 2010-04-21 2015-06-17 丰田自动车株式会社 内燃机的控制装置
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
US9031341B2 (en) 2011-02-28 2015-05-12 Megachips Corporation Image coding apparatus
CN102761509B (zh) 2011-04-27 2016-01-06 联芯科技有限公司 Ofdm系统的接收系统及降低接收系统内存的方法
WO2012155105A1 (en) 2011-05-12 2012-11-15 Apple Inc. Presence sensing
CN102789413B (zh) 2011-05-23 2016-02-17 同济大学 一种并行程序的调试系统及方法
US8594982B2 (en) 2011-06-09 2013-11-26 Pulsar Informatics, Inc. Systems and methods for distributed calculation of fatigue-risk prediction and optimization
CN102291773B (zh) * 2011-07-18 2014-12-10 电信科学技术研究院 一种数据压缩方法和设备
CN102404673B (zh) 2011-11-24 2013-12-18 苏州上声电子有限公司 数字化扬声器系统通道均衡与声场控制方法和装置
CN103152673B (zh) 2011-12-07 2015-07-08 中国科学院声学研究所 基于四元码动态失配整形的数字扬声器驱动方法和装置
CN102684701B (zh) 2012-04-27 2014-07-09 苏州上声电子有限公司 基于编码转换的数字扬声器驱动方法和装置
DE102012009502A1 (de) 2012-05-14 2013-11-14 Kisters Ag Verfahren zum Trainieren eines künstlichen neuronalen Netzes
US9417891B2 (en) 2012-06-11 2016-08-16 Vmware, Inc. Unified storage/VDI provisioning methodology
US9224089B2 (en) * 2012-08-07 2015-12-29 Qualcomm Incorporated Method and apparatus for adaptive bit-allocation in neural systems
US9063731B2 (en) 2012-08-27 2015-06-23 Samsung Electronics Co., Ltd. Ultra low power apparatus and method to wake up a main processor
CN102903089B (zh) 2012-09-07 2014-12-17 山东大学 一种Linux环境下生成遥感图像快视图的方法
US9412366B2 (en) 2012-09-18 2016-08-09 Adobe Systems Incorporated Natural language image spatial and tonal localization
JP5913059B2 (ja) 2012-11-13 2016-04-27 日本電信電話株式会社 分散型無線通信基地局システム、信号処理装置、無線装置、及び分散型無線通信基地局システムの動作方法
CN102981854A (zh) 2012-11-16 2013-03-20 天津市天祥世联网络科技有限公司 基于浮点数运算内联函数库的神经网络优化方法
KR20150115724A (ko) 2012-11-22 2015-10-14 각고호우징 게이오기주크 아크릴계 공중합체, 광학 필름, 편광판 및 액정 표시 장치
US9851977B2 (en) 2012-12-06 2017-12-26 Kalray Apparatus and method for combining thread warps with compatible execution masks for simultaneous execution and increased lane utilization
US9720732B1 (en) 2013-02-11 2017-08-01 Amazon Technologies, Inc. Parameter selection for optimization of task execution based on execution history for prior tasks
JP2014170295A (ja) 2013-03-01 2014-09-18 Honda Motor Co Ltd 物体認識システム及び物体認識方法
US20190138372A1 (en) 2013-04-29 2019-05-09 Moogsoft, Inc. System for managing an instructure with security
JP6184891B2 (ja) 2014-03-12 2017-08-23 東芝メモリ株式会社 情報処理装置、半導体チップ、情報処理方法およびプログラム
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
US10262259B2 (en) * 2015-05-08 2019-04-16 Qualcomm Incorporated Bit width selection for fixed point neural networks
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
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 杭州朗和科技有限公司 深度神经网络学习方法、处理器和深度神经网络学习系统
CN115100019A (zh) 2015-06-10 2022-09-23 无比视视觉技术有限公司 用于处理图像的图像处理器和方法
CN104978303B (zh) 2015-06-19 2019-06-04 上海兆芯集成电路有限公司 单芯片整合的传感器集线器和多传感器管理方法
CN106469291A (zh) 2015-08-19 2017-03-01 中兴通讯股份有限公司 图像处理方法及终端
WO2017031630A1 (zh) * 2015-08-21 2017-03-02 中国科学院自动化研究所 基于参数量化的深度卷积神经网络的加速与压缩方法
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 阿里巴巴集团控股有限公司 一种基于神经网络的数据处理方法和装置
JP2019505149A (ja) 2015-11-17 2019-02-21 バヤニ, エマンBAYANI, Eman デジタル画像撮影装置システム及び方法
CN105488565A (zh) * 2015-11-17 2016-04-13 中国科学院计算技术研究所 加速深度神经网络算法的加速芯片的运算装置及方法
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
CN106991477B (zh) * 2016-01-20 2020-08-14 中科寒武纪科技股份有限公司 一种人工神经网络压缩编码装置和方法
CN106991478B (zh) 2016-01-20 2020-05-08 中科寒武纪科技股份有限公司 用于执行人工神经网络反向训练的装置和方法
CN106997236B (zh) 2016-01-25 2018-07-13 亮风台(上海)信息科技有限公司 基于多模态输入进行交互的方法和设备
US10586173B2 (en) 2016-01-27 2020-03-10 Bonsai AI, Inc. Searchable database of trained artificial intelligence objects that can be reused, reconfigured, and recomposed, into one or more subsequent 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
CN109073339B (zh) * 2016-03-31 2020-08-25 可利尔Px科技有限公司 温度控制装置和具有静态冷却能力的系统
CN109934331B (zh) 2016-04-29 2020-06-19 中科寒武纪科技股份有限公司 用于执行人工神经网络正向运算的装置和方法
US10552119B2 (en) 2016-04-29 2020-02-04 Intel Corporation Dynamic management of numerical representation in a distributed matrix processor architecture
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 华为终端有限公司 适用于模式识别的模型的优化方法、装置及终端设备
US20180005111A1 (en) * 2016-06-30 2018-01-04 International Business Machines Corporation Generalized Sigmoids and Activation Function Learning
CN106156310A (zh) 2016-06-30 2016-11-23 努比亚技术有限公司 一种图片处理装置和方法
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
US20180046903A1 (en) 2016-08-12 2018-02-15 DeePhi Technology Co., Ltd. Deep processing unit (dpu) for implementing an artificial neural network (ann)
CN107657316B (zh) 2016-08-12 2020-04-07 北京深鉴智能科技有限公司 通用处理器与神经网络处理器的协同系统设计
CN106354568A (zh) 2016-08-23 2017-01-25 京信通信技术(广州)有限公司 一种不同进程间的通信方法及通信装置
CN107797913A (zh) 2016-09-07 2018-03-13 大陆汽车电子(连云港)有限公司 一种实时系统的软件分析系统与方法
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
WO2018071546A1 (en) 2016-10-11 2018-04-19 The Research Foundation For The State University Of New York System, method, and accelerator to process convolutional neural network layers
CN106485316B (zh) 2016-10-31 2019-04-02 北京百度网讯科技有限公司 神经网络模型压缩方法以及装置
CN106502626A (zh) 2016-11-03 2017-03-15 北京百度网讯科技有限公司 数据处理方法和装置
US10216479B2 (en) 2016-12-06 2019-02-26 Arm Limited Apparatus and method for performing arithmetic operations to accumulate floating-point numbers
CN106815551B (zh) * 2016-12-08 2019-09-10 新疆农业大学 一种森林资源管理的变异函数参数拟合的优化方法
CN106600070A (zh) * 2016-12-20 2017-04-26 郭建峰 基于ipso‑bp神经网络的短期股价预测算法
US10997492B2 (en) 2017-01-20 2021-05-04 Nvidia Corporation Automated methods for conversions to a lower precision data format
CN108345939B (zh) * 2017-01-25 2022-05-24 微软技术许可有限责任公司 基于定点运算的神经网络
JP7004503B2 (ja) * 2017-01-27 2022-01-21 ラピスセミコンダクタ株式会社 自動利得制御回路(agc)、逆拡散回路及び受信データの再生方法
CN106951587A (zh) 2017-02-15 2017-07-14 芯启源(南京)半导体科技有限公司 Fpga调试系统及方法
CN106951962B (zh) 2017-03-22 2020-09-01 南京地平线机器人技术有限公司 用于神经网络的复合运算单元、方法和电子设备
US10402932B2 (en) 2017-04-17 2019-09-03 Intel Corporation Power-based and target-based graphics quality adjustment
US10332302B2 (en) 2017-04-17 2019-06-25 Intel Corporation Scatter gather engine
EP3786786B1 (en) * 2017-04-19 2023-06-07 Shanghai Cambricon Information Technology Co., Ltd Processing device, processing method, chip, and electronic apparatus
CN108734287A (zh) * 2017-04-21 2018-11-02 展讯通信(上海)有限公司 深度神经网络模型的压缩方法及装置、终端、存储介质
CN107025629B (zh) 2017-04-27 2021-03-26 维沃移动通信有限公司 一种图像处理方法及移动终端
KR102034661B1 (ko) * 2017-04-28 2019-10-21 서울대학교산학협력단 뉴럴네트워크를 위한 데이터 양자화 방법 및 장치
US11842280B2 (en) * 2017-05-05 2023-12-12 Nvidia Corporation Loss-scaling for deep neural network training with reduced precision
US10019668B1 (en) 2017-05-19 2018-07-10 Google Llc Scheduling neural network processing
CN115841137A (zh) * 2017-06-06 2023-03-24 格兰菲智能科技有限公司 一种用于对待量化数据进行定点化处理的方法及计算装置
CN109034381B (zh) 2017-06-09 2022-01-28 宏达国际电子股份有限公司 训练任务优化系统、方法及其非暂态电脑可读媒体
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
CN107729989B (zh) 2017-07-20 2020-12-29 安徽寒武纪信息科技有限公司 一种用于执行人工神经网络正向运算的装置及方法
CN107451658B (zh) 2017-07-24 2020-12-15 杭州菲数科技有限公司 浮点运算定点化方法及系统
CN107480770B (zh) * 2017-07-27 2020-07-28 中国科学院自动化研究所 可调节量化位宽的神经网络量化与压缩的方法及装置
CN107679618B (zh) * 2017-07-28 2021-06-11 赛灵思电子科技(北京)有限公司 一种静态策略定点化训练方法及装置
CN107688849B (zh) 2017-07-28 2021-04-13 赛灵思电子科技(北京)有限公司 一种动态策略定点化训练方法及装置
WO2019023984A1 (en) 2017-08-02 2019-02-07 Intel Corporation SYSTEM AND METHOD FOR INCLUSION OF NEURAL NETWORKS 1 AMONG N ON AN AUTOMATIC LEARNING COMPUTER PLATFORM
CN109388779A (zh) * 2017-08-03 2019-02-26 珠海全志科技股份有限公司 一种神经网络权重量化方法和神经网络权重量化装置
KR102601604B1 (ko) * 2017-08-04 2023-11-13 삼성전자주식회사 뉴럴 네트워크의 파라미터들을 양자화하는 방법 및 장치
KR20200029510A (ko) 2017-08-08 2020-03-18 삼성전자주식회사 네트워크에서 메모리 요구 사항을 결정하는 방법 및 장치
US20190050710A1 (en) 2017-08-14 2019-02-14 Midea Group Co., Ltd. Adaptive bit-width reduction for neural networks
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 삼성전자주식회사 인공 신경망의 양자화 방법 및 장치
US11450319B2 (en) 2017-09-29 2022-09-20 Cambricon (Xi'an) Semiconductor Co., Ltd. Image processing apparatus and method
US10223114B1 (en) 2017-09-29 2019-03-05 Intel Corporation Fixed point to floating point conversion
US11437032B2 (en) 2017-09-29 2022-09-06 Shanghai Cambricon Information Technology Co., Ltd Image processing apparatus and method
EP3667487B1 (en) 2017-09-29 2023-11-15 Shanghai Cambricon Information Technology Co., Ltd Image processing apparatus and method
CN107679490B (zh) * 2017-09-29 2019-06-28 百度在线网络技术(北京)有限公司 用于检测图像质量的方法和装置
US10224954B1 (en) 2017-09-29 2019-03-05 Intel Corporation Floating point to fixed point conversion
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
CN108288089A (zh) * 2018-01-29 2018-07-17 百度在线网络技术(北京)有限公司 用于生成卷积神经网络的方法和装置
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
US11397579B2 (en) 2018-02-13 2022-07-26 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
US11630666B2 (en) 2018-02-13 2023-04-18 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 电子科技大学 一种脉冲神经网络参数量化方法
CN110554500B (zh) 2018-05-31 2022-09-16 中强光电股份有限公司 头戴式显示装置
US10360304B1 (en) 2018-06-04 2019-07-23 Imageous, Inc. Natural language processing interface-enabled building conditions control system
CN109062540B (zh) 2018-06-06 2022-11-25 北京理工大学 一种基于cordic算法的可重构浮点运算装置
CN109063820A (zh) 2018-06-07 2018-12-21 中国科学技术大学 利用时频联合长时循环神经网络的数据处理方法
CN108830331A (zh) * 2018-06-22 2018-11-16 西安交通大学 一种基于全卷积网络的探地雷达目标检测方法
CN109102064B (zh) * 2018-06-26 2020-11-13 杭州雄迈集成电路技术股份有限公司 一种高精度的神经网络量化压缩方法
CN109146057B (zh) * 2018-06-26 2020-12-08 杭州雄迈集成电路技术股份有限公司 一种基于查表计算的高精度的神经网络工程化方法
JP7053891B2 (ja) 2018-06-27 2022-04-12 シャンハイ カンブリコン インフォメーション テクノロジー カンパニー リミテッド オンチップコードのブレークポイントによるデバッグ方法、オンチッププロセッサ及びブレークポイントによるチップデバッグシステム
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网络前向推理加速器设计方法
KR102519467B1 (ko) 2018-08-28 2023-04-06 캠브리콘 테크놀로지스 코퍼레이션 리미티드 데이터 전처리 방법, 장치, 컴퓨터 설비 및 저장 매체
US11703939B2 (en) 2018-09-28 2023-07-18 Shanghai Cambricon Information Technology Co., Ltd Signal processing device and related products
CN109472353B (zh) * 2018-11-22 2020-11-03 浪潮集团有限公司 一种卷积神经网络量化电路及量化方法
CN109598331A (zh) * 2018-12-04 2019-04-09 北京芯盾时代科技有限公司 一种欺诈识别模型训练方法、欺诈识别方法及装置
CN109685202B (zh) 2018-12-17 2023-03-21 腾讯科技(深圳)有限公司 数据处理方法及装置、存储介质和电子装置
GB2580171B (en) * 2018-12-21 2021-02-17 Imagination Tech Ltd Methods and systems for selecting quantisation parameters for deep neural networks using back-propagation
CN109754074A (zh) * 2018-12-29 2019-05-14 北京中科寒武纪科技有限公司 一种神经网络量化方法、装置以及相关产品
CN111383637A (zh) 2018-12-28 2020-07-07 上海寒武纪信息科技有限公司 信号处理装置、信号处理方法及相关产品
CN109740739B (zh) * 2018-12-29 2020-04-24 中科寒武纪科技股份有限公司 神经网络计算装置、神经网络计算方法及相关产品
CN109740754B (zh) * 2018-12-29 2020-04-14 中科寒武纪科技股份有限公司 神经网络计算装置、神经网络计算方法及相关产品
US20190164057A1 (en) * 2019-01-30 2019-05-30 Intel Corporation Mapping and quantification of influence of neural network features for explainable artificial intelligence
CN109859135B (zh) * 2019-01-31 2021-05-07 北京邮电大学 一种应用于关联成像的图像增强处理方法
CN109800877B (zh) * 2019-02-20 2022-12-30 腾讯科技(深圳)有限公司 神经网络的参数调整方法、装置及设备
CN109902745A (zh) 2019-03-01 2019-06-18 成都康乔电子有限责任公司 一种基于cnn的低精度训练与8位整型量化推理方法
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
CN111832738B (zh) 2019-04-18 2024-01-09 中科寒武纪科技股份有限公司 一种数据处理方法及相关产品
US20200364552A1 (en) * 2019-05-13 2020-11-19 Baidu Usa Llc Quantization method of improving the model inference accuracy
US11531893B2 (en) * 2019-06-03 2022-12-20 Samsung Electronics Co., Ltd. Method and apparatus with neural network parameter quantization
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
JP7146955B2 (ja) 2019-08-23 2022-10-04 安徽寒武紀信息科技有限公司 データ処理方法、装置、コンピュータデバイス、及び記憶媒体
EP4024280A4 (en) 2019-08-27 2022-11-16 Anhui Cambricon Information Technology Co., Ltd. DATA PROCESSING METHOD AND APPARATUS, COMPUTER EQUIPMENT AND STORAGE MEDIA
CN110780845B (zh) 2019-10-17 2021-11-30 浙江大学 一种用于量化卷积神经网络的可配置近似乘法器及其实现方法

Patent Citations (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS63111768A (ja) * 1986-10-30 1988-05-17 Nec Corp 画像デ−タ量子化装置
EP0509576A2 (en) * 1991-04-18 1992-10-21 Ampex Systems Corporation Method and apparatus for determining a quantizing factor for processes involving multiple compression/decompression of data
US20080065376A1 (en) * 2006-09-08 2008-03-13 Kabushiki Kaisha Toshiba Audio encoder
CN101754490A (zh) * 2008-12-17 2010-06-23 大唐移动通信设备有限公司 一种数据传输的方法、系统和装置
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
CN105100810A (zh) * 2014-05-16 2015-11-25 中国科学院声学研究所 一种成像声纳实时处理系统中的图像压缩解压方法及系统
US20180075347A1 (en) * 2016-09-15 2018-03-15 Microsoft Technology Licensing, Llc Efficient training of neural networks
US20180107925A1 (en) * 2016-10-19 2018-04-19 Samsung Electronics Co., Ltd. Method and apparatus for neural network quantization
US20180341857A1 (en) * 2017-05-25 2018-11-29 Samsung Electronics Co., Ltd. Neural network method and apparatus
US20180349758A1 (en) * 2017-06-06 2018-12-06 Via Alliance Semiconductor Co., Ltd. Computation method and device used in a convolutional neural network
EP3474194A1 (en) * 2017-10-19 2019-04-24 Samsung Electronics Co., Ltd. Method and apparatus with neural network parameter quantization
CN109685198A (zh) * 2017-10-19 2019-04-26 三星电子株式会社 用于量化神经网络的参数的方法和装置
CN109800865A (zh) * 2019-01-24 2019-05-24 北京市商汤科技开发有限公司 神经网络生成及图像处理方法和装置、平台、电子设备

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
张海涛;张永霖;: "引入神经网络中间神经元的快速小波图像压缩", 中国图象图形学报, no. 02 *

Also Published As

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

Similar Documents

Publication Publication Date Title
CN112085184A (zh) 量化参数调整方法、装置及相关产品
WO2021036908A1 (zh) 数据处理方法、装置、计算机设备和存储介质
WO2021036890A1 (zh) 数据处理方法、装置、计算机设备和存储介质
EP4024280A1 (en) Data processing method and apparatus, computer equipment, and storage medium
US10540145B2 (en) Method and processing apparatus for performing arithmetic operation
CN110717585B (zh) 神经网络模型的训练方法、数据处理方法和相关产品
WO2020223856A1 (zh) 一种基于卷积神经网络架构的数据处理方法及装置
CN112085182A (zh) 数据处理方法、装置、计算机设备和存储介质
EP4024283A1 (en) Method and apparatus for processing data, and related product
CN112085176B (zh) 数据处理方法、装置、计算机设备和存储介质
CN112085187A (zh) 数据处理方法、装置、计算机设备和存储介质
CN112085150A (zh) 量化参数调整方法、装置及相关产品
WO2021036892A1 (zh) 循环神经网络的量化参数调整方法、装置及相关产品
JP2019212112A (ja) 演算処理装置、演算処理装置の制御プログラム及び演算処理装置の制御方法
JP7146952B2 (ja) データ処理方法、装置、コンピュータデバイス、及び記憶媒体
CN112308201A (zh) 神经网络量化方法、装置、芯片、电子设备及板卡
CN113112009B (zh) 用于神经网络数据量化的方法、装置和计算机可读存储介质
CN112085151A (zh) 数据处理方法、装置、计算机设备和存储介质
CN112085177A (zh) 数据处理方法、装置、计算机设备和存储介质
JP7233636B2 (ja) データ量子化処理方法、装置、電子機器および記憶媒体
US20220222041A1 (en) Method and apparatus for processing data, and related product

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