CN114692824A - 一种神经网络模型的量化训练方法、装置和设备 - Google Patents

一种神经网络模型的量化训练方法、装置和设备 Download PDF

Info

Publication number
CN114692824A
CN114692824A CN202011645236.2A CN202011645236A CN114692824A CN 114692824 A CN114692824 A CN 114692824A CN 202011645236 A CN202011645236 A CN 202011645236A CN 114692824 A CN114692824 A CN 114692824A
Authority
CN
China
Prior art keywords
quantized
layer
neural network
input data
network model
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202011645236.2A
Other languages
English (en)
Inventor
不公告发明人
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Anhui Cambricon Information Technology Co Ltd
Original Assignee
Anhui 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 Anhui Cambricon Information Technology Co Ltd filed Critical Anhui Cambricon Information Technology Co Ltd
Priority to CN202011645236.2A priority Critical patent/CN114692824A/zh
Publication of CN114692824A publication Critical patent/CN114692824A/zh
Pending legal-status Critical Current

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/04Architecture, e.g. interconnection topology
    • 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

Landscapes

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

Abstract

本申请实施例提供了一种神经网络模型的量化训练方法、装置和设备,方法包括:在正向传播过程中,分别对待量化层的第一输入数据和所述待量化层的参数进行量化,获得量化的第一输入数据和量化的第一参数;对所述量化的第一输入数据和所述量化的第一参数进行运算,获得量化的第一输出数据;对所述待量化层的量化的第一输出数据进行反量化运算,得到所述待量化层的第一输出数据;将所述量化的第一输入数据和所述量化的第一参数从内存中释放。实施本申请实施例,能够减小数据对内存的消耗量,提高运算速度。

Description

一种神经网络模型的量化训练方法、装置和设备
技术领域
本申请涉及通信技术领域,尤其涉及一种神经网络模型的量化训练方法、装置、设备。
背景技术
神经网络模型需要经过多次的迭代训练才能收敛,在每一次的迭代训练中,都需要经过正向传播、反向传播和参数更新三个过程,首先,神经网络中的各个层对样本数据进行处理,获得网络损失函数;然后基于网络损失函数计算各个层的梯度;其次,基于各个层的梯度对各个层的参数进行更新。
随着神经网络模型的深度越来越深,神经网络模型中的参数(权重、偏置等)的数量也随之增长,神经网络模型的训练对硬件设备的计算和存储能力要求也越来越高。在神经网络模型中,存在大量的数值运算,产生的大量数据非常消耗内存,尤其对于内存较小的硬件设备来说,甚至很难完成神经网络模型的训练。
发明内容
本申请实施例公开了一种神经网络模型的量化训练方法、装置和设备,所述方法有助于减少在神经网络模型的训练过程中产生的数据对内存的占用量,降低内存消耗。
第一方面,本申请实施例提供了一种神经网络模型的量化训练方法,所述神经网络模型包括多个层,所述方法包括:在正向传播过程中,分别对待量化层的第一输入数据和所述待量化层的参数进行量化,获得量化的第一输入数据和量化的第一参数;对所述量化的第一输入数据和所述量化的第一参数进行运算,获得量化的第一输出数据;对所述待量化层的量化的第一输出数据进行反量化运算,得到所述待量化层的第一输出数据;将所述量化的第一输入数据和所述量化的第一参数从内存中释放。
可以看到,在神经网络模型的训练过程中,在正向传播至待量化层时,对待量化层的第一输入数据和参数进行量化,然后通过对量化的第一输入数据和量化的第一参数进行运算及反量化,获得待量化层的第一输出数据,再将量化的第一输入数据和量化的第一参数释放掉。其中,参数包括权重,还可以包括偏置等;第一输入数据、参数、第一输出数据可以为浮点型数据,量化的第一输入数据、量化的第一参数、量化的第一输出数据可以为定点整型数据。
本实施例中,先对输入数据和参数进行量化再对量化后的数据进行计算,减少了运算量;在待量化层获得第一输出数据后,再将中间数据量化的第一输入数据和量化的第一参数释放掉,也就是从内存中删除掉,从而减少中间数据对内存的消耗量,节省内存空间。基于第一方面,在可能的实施方式中,当所述待量化层是所述神经网络模型的首层时,所述待量化层的第一输入数据为输入所述神经网络模型的样本数据;否则,所述待量化层的第一输入数据为所述待量化层的前一层的第一输出数据。
基于第一方面,在可能的实施方式中,所述方法还包括:在反向传播过程中,分别对所述待量化层的第二输入数据和所述待量化层的参数进行量化,获得量化的第二输入数据和量化的第二参数;根据所述量化的第二输入数据和所述量化的第二参数,获得所述待量化层的量化的第二输出数据和所述待量化层的量化的第二参数的梯度;对所述待量化层的量化的第二输出数据和所述待量化层的量化的第二参数的梯度进行反量化运算,得到所述待量化层的第二输出数据和所述待量化层的第二参数的梯度;将所述量化的第二输入数据和所述量化的第二参数从内存中释放。
可以看到,在反向传播至待量化层,分别对待量化层的第二输入数据和参数进行量化,然后通过运算、反量化,获得第二输出数据和参数的梯度,再将量化的第二输入数据和量化的第二参数释放掉,其中,量化的第二输入数据、量化额第二参数、量化的第二输出数据等可以为定点整型数据,第二输入数据、参数、第二输出数据可以为浮点型数据。
本实施例中,对第二输入数据和参数进行量化,对量化后的数据进行运算,减少运算量;在获得待量化层的第二输出数据之后,将中间数据量化的第二输入数据、量化的参数从内存中释放掉,即删除掉,减小数据对内存的消耗量,节省内存。
基于第一方面,在可能的实施方式中,当所述待量化层是所述神经网络模型的最后一层时,所述第二输入数据包括所述第一输入数据和网络损失;其中所述网络损失为正向传播获得的;当所述待量化层不是所述神经网络模型的最后一层时,所述第二输入数据包括所述第一输入数据和所述待量化层的后一层的第二输出数据。
基于第一方面,在可能的实施方式中,在所述反向传播结束后,所述方法还包括:基于所述神经网络模型中各个层的参数和参数的梯度对所述各个层进行参数更新。
基于第一方面,在可能的实施方式中,所述方法适用于所述神经网络模型中的至少一层。
可以理解,上述的量化训练方法可以适用于神经网络模型的某一个层或多个层,例如可以适用于神经网络模型中运算量比较大的层,比如卷积层、反卷积层、全连接层等或具有矩阵乘运算的层等。
第二方面,本申请实施例提供了一种神经网络模型的测试方法,包括获取测试数据;使用经训练的神经网络模型对所述测试数据进行测试;所述神经网络模型是通过上述第一方面的方法或第一方面的任一实施方式中所述的方法训练得到的。
第三方面,本申请实施例提供了一种神经网络模型的量化训练装置,所述神经网络模型包括多个层,所述装置包括:量化单元,用于在正向传播过程中,分别对待量化层的第一输入数据和所述待量化层的参数进行量化,获得量化的第一输入数据和量化的第一参数;运算单元,用于对所述量化的输入数据和所述量化的第一参数进行运算,获得所述待量化层的量化的第一输出数据;反量化单元,用于对所述待量化层的量化的第一输出数据进行反量化运算,得到所述待量化层的第一输出数据;释放单元,用于将所述量化的第一输入数据和所述量化的第一参数从内存中释放。
基于第三方面,在可能的实施方式中,当所述待量化层是所述神经网络模型的首层时,所述待量化层的第一输入数据为输入所述神经网络模型的样本数据;否则,所述待量化层的第一输入数据为所述待量化层的前一层的第一输出数据。
基于第三方面,在可能的实施方式中,所述量化单元还用于,在反向传播过程中,分别对所述待量化层的第二输入数据和所述待量化层的参数进行量化,获得量化的第二输入数据和量化的第二参数;所述运算单元还用于,根据所述量化的第二输入数据和所述量化的第二参数,获得所述待量化层的量化的第二输出数据和所述待量化层的量化的第二参数的梯度;所述反量化单元还用于,对所述待量化层的量化的第二输出数据和所述待量化层的量化的第二参数的梯度进行反量化运算,得到所述待量化层的第二输出数据和所述待量化层的第二参数的梯度;所述释放单元还用于,将所述量化的第二输入数据和所述量化的第二参数从内存中释放。
基于第三方面,在可能的实施方式中,当所述待量化层是所述神经网络模型的最后一层时,所述第二输入数据包括所述第一输入数据和网络损失;其中所述网络损失为正向传播获得的;当所述待量化层不是所述神经网络模型的最后一层时,所述第二输入数据包括所述第一输入数据和所述待量化层的后一层的第二输出数据。
基于第三方面,在可能的实施方式中,所述装置还包括:参数更新单元,用于基于所述神经网络模型中各个层的参数和参数的梯度对所述各个层进行参数更新。
上述第三方面的装置中的各个功能单元用于实现上述第一方面或第一方面的任一实施方式中所述的方法。
第四方面,本申请实施例提供了一种神经网络模型的测试装置,包括:获取单元,用于获取测试数据;测试单元,用于使用经训练的神经网络模型对所述测试数据进行测试;所述神经网络模型是通过上述第一方面的方法或第一方面的任一实施方式中所述的方法训练得到的。
第四方面的装置中的各个功能单元用于实现上述第二方面所述的方法。
第五方面,本申请实施例提供了一种神经网络模型的量化训练设备,包括存储器和处理器,所述存储器用于存储指令,所述处理器用于调用所述指令执行上述第一方面的方法或第一方面的任一实施方式中所述的方法。
第六方面,本申请实施例提供了一种神经网络模型的测试设备,包括存储器和处理器,所述存储器用于存储指令,所述处理器用于调用所述指令执行上述第二方面所述的方法。
第七方面,本申请实施例提供了一种非易失性存储介质,用于存储程序指令,当该程序指令应用于神经网络模型的训练设备时,可用于实现第一方面或第一方面的任可能实施方式中所述的方法。
第八方面,本申请实施例提供了一种非易失性存储介质,用于存储程序指令,当该程序指令应用于神经网络模型的测试设备时,可用于实现第二方面或第二方面的任可能实施方式中所述的方法。
第九方面,本申请实施例提供了一种计算机程序产品,该计算机程序产品包括程序指令,当该计算机程序产品被神经网络模型的量化训练设备执行时,该神经网络模型的量化测试设备执行前述第一方面所述方法。该计算机程序产品可以为一个软件安装包,在需要使用前述第一方面的任一种可能的设计提供的方法的情况下,可以下载该计算机程序产品并在神经网络模型的量化训练设备上执行该计算机程序产品,以实现第一方面或第一方面的任一可能实施方式中所述的方法。
第十方面,本申请实施例提供了一种计算机程序产品,该计算机程序产品包括程序指令,当该计算机程序产品被神经网络模型的测试设备执行时,该神经网络模型的测试设备执行前述第二方面所述方法。该计算机程序产品可以为一个软件安装包,在需要使用前述第二方面的任一种可能的设计提供的方法的情况下,可以下载该计算机程序产品并在神经网络模型的测试设备上执行该计算机程序产品,以实现第二方面或第二方面的任一可能实施方式中所述的方法。
附图说明
为了更清楚地说明本申请实施例技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例提供的一种神经网络模型的量化训练装置示意图;
图2为本申请实施例提供的一种组合装置的结构示意图;
图3为本申请实施例提供的一种板卡结构示意图;
图4中的(a)和(b)分别为一种正向传播和反向传播的示例示意图;
图5为本申请实施例提供的一种神经网络模型的量化训练方法的流程示意图;
图6为本申请实施例提供的一种正向传播和反向传播示意图;
图7为本申请实施例提供的又一种神经网络模型的量化训练方法的流程示意图;
图8为本申请实施例提供的一种神经网络模型的测试方法的流程示意图;
图9为本申请实施例提供的一种神经网络模型的测试装置示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
需要说明的是,在本申请实施例中使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本申请。在本申请实施例和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。
需要说明的是,当在本说明书和所附权利要求书中使用时,术语“包括”以及它们的任何变形,意图在于覆盖不排他的包含。例如包含了一系列单元/器件的系统、产品或者装置没有限定于已列出的单元/器件,而是可选地还包括没有列出的单元/器件,或者还可选地包括这些产品或者装置固有的其他单元/器件。
还应当理解,术语“如果”可以依据上下文被解释为“当...时”或“一旦”或“响应于确定”或“响应于检测到”或“在…的情况下”。
需要说明的是,本申请中的第一、第二只是为了区分正向传播过程和反向传播过程中的对象,而并非用于描述特定的顺序。第一输入数据、第一输出数据分别对应的是正向传播时的输入数据、输出数据,第二输入数据、第二输出数据分别对应的是反向传播时的输入数据、输出数据。
参见图1,图1为本申请实施例提供的一种神经网络的量化训练装置100的示意图,神经网络模型包括多个层,所述装置100包括:
量化单元101,用于在正向传播过程中,分别对待量化层的第一输入数据和待量化层的参数进行量化,获得量化的第一输入数据和量化的第一参数;
运算单元102,用于对量化的输入数据和量化的第一参数进行运算,获得待量化层的量化的第一输出数据;
反量化单元103,用于对待量化层的量化的第一输出数据进行反量化运算,得到待量化层的第一输出数据;
释放单元104,用于将量化的第一输入数据和量化的第一参数从内存中释放。
在可能的实施方式中,当待量化层是神经网络模型的首层时,待量化层的第一输入数据为输入神经网络模型的样本数据;否则,待量化层的第一输入数据为待量化层的前一层的第一输出数据。
在可能的实施方式中,量化单元101还用于,在反向传播过程中,分别对待量化层的第二输入数据和待量化层的参数进行量化,获得量化的第二输入数据和量化的第二参数;
运算单元102还用于,根据量化的第二输入数据和量化的第二参数,获得待量化层的量化的第二输出数据和待量化层的量化的第二参数的梯度;
反量化单元103还用于,对待量化层的量化的第二输出数据和待量化层的量化的第二参数的梯度进行反量化运算,得到待量化层的第二输出数据和待量化层的第二参数的梯度;
释放单元104还用于,将量化的第二输入数据和量化的第二参数从内存中释放。
在可能的实施方式中,当待量化层是神经网络模型的最后一层时,第二输入数据包括第一输入数据和网络损失;其中网络损失为正向传播获得的;当待量化层不是神经网络模型的最后一层时,第二输入数据包括第一输入数据和待量化层的后一层的第二输出数据。
在可能的实施方式中,装置100还包括:参数更新单元105,用于基于神经网络模型中各个层的参数和参数的梯度对各个层进行参数更新。
上述装置100的各功能单元可用于实现下述图5实施例所描述的方法,具体内容可参考图5实施例的相关内容中的描述。
图2是示出根据本披露实施例的一种组合处理装置200的结构图,该组合处理装置200可以用于神经网络模型的量化训练,或者也可以用于神经网络模型的测试。如图2中所示,该组合处理装置200包括计算处理装置202、接口装置204、其他处理装置206和存储装置208。根据不同的应用场景,计算处理装置中可以包括一个或多个计算装置210,该计算装置可以配置用于执行本文附图5或附图7所描述的操作。
在不同的实施例中,本披露的计算处理装置可以配置成执行用户指定的操作。在示例性的应用中,该计算处理装置可以实现为单核人工智能处理器或者多核人工智能处理器。类似地,包括在计算处理装置内的一个或多个计算装置可以实现为人工智能处理器核或者人工智能处理器核的部分硬件结构。当多个计算装置实现为人工智能处理器核或人工智能处理器核的部分硬件结构时,就本披露的计算处理装置而言,其可以视为具有单核结构或者同构多核结构。
在示例性的操作中,本披露的计算处理装置可以通过接口装置与其他处理装置进行交互,以共同完成用户指定的操作。根据实现方式的不同,本披露的其他处理装置可以包括中央处理器(Central Processing Unit,CPU)、图形处理器(Graphics ProcessingUnit,GPU)、人工智能处理器等通用和/或专用处理器中的一种或多种类型的处理器。这些处理器可以包括但不限于数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等,并且其数目可以根据实际需要来确定。如前所述,仅就本披露的计算处理装置而言,其可以视为具有单核结构或者同构多核结构。然而,当将计算处理装置和其他处理装置共同考虑时,二者可以视为形成异构多核结构。
在一个或多个实施例中,该其他处理装置可以作为本披露的计算处理装置(其可以具体化为人工智能例如神经网络运算的相关运算装置)与外部数据和控制的接口,执行包括但不限于数据搬运、对计算装置的开启和/或停止等基本控制。在另外的实施例中,其他处理装置也可以和该计算处理装置协作以共同完成运算任务。
在一个或多个实施例中,该接口装置可以用于在计算处理装置与其他处理装置间传输数据和控制指令。例如,该计算处理装置可以经由所述接口装置从其他处理装置中获取输入数据,写入该计算处理装置片上的存储装置(或称存储器)。进一步,该计算处理装置可以经由所述接口装置从其他处理装置中获取控制指令,写入计算处理装置片上的控制缓存中。替代地或可选地,接口装置也可以读取计算处理装置的存储装置中的数据并传输给其他处理装置。
附加地或可选地,本披露的组合处理装置还可以包括存储装置。如图中所示,该存储装置分别与所述计算处理装置和所述其他处理装置连接。在一个或多个实施例中,存储装置可以用于保存所述计算处理装置和/或所述其他处理装置的数据。例如,该数据可以是在计算处理装置或其他处理装置的内部或片上存储装置中无法全部保存的数据。
在一些实施例里,本披露还公开了一种芯片,例如图3中示出的芯片1302。在一种实现中,该芯片是一种系统级芯片(System on Chip,SoC),并且集成有一个或多个如图2中所示的组合处理装置。该芯片可以通过对外接口装置(如图3中示出的对外接口装置306)与其他相关部件相连接。该相关部件可以例如是摄像头、显示器、鼠标、键盘、网卡或wifi接口。在一些应用场景中,该芯片上可以集成有其他处理单元(例如视频编解码器)和/或接口模块(例如DRAM接口)等。在一些实施例中,本披露还公开了一种芯片封装结构,其包括了上述芯片。在一些实施例里,本披露还公开了一种板卡,其包括上述的芯片封装结构。下面将结合图3对该板卡进行详细地描述。
图3是示出根据本披露实施例的一种板卡300的结构示意图。如图3中所示,该板卡包括用于存储数据的存储器件304,其包括一个或多个存储单元310。该存储器件可以通过例如总线等方式与控制器件308和上文所述的芯片302进行连接和数据传输。进一步,该板卡还包括对外接口装置306,其配置用于芯片(或芯片封装结构中的芯片)与外部设备312(例如服务器或计算机等)之间的数据中继或转接功能。例如,待处理的数据可以由外部设备通过对外接口装置传递至芯片。又例如,所述芯片的计算结果可以经由所述对外接口装置传送回外部设备。根据不同的应用场景,所述对外接口装置可以具有不同的接口形式,例如其可以采用标准PCIE接口等。
在一个或多个实施例中,本披露板卡中的控制器件可以配置用于对所述芯片的状态进行调控。为此,在一个应用场景中,该控制器件可以包括单片机(Micro ControllerUnit,MCU),以用于对所述芯片的工作状态进行调控。
根据上述结合图2和图3的描述,本领域技术人员可以理解本披露也公开了一种电子设备或装置,其可以包括一个或多个上述板卡、一个或多个上述芯片和/或一个或多个上述组合处理装置。
根据不同的应用场景,本披露的电子设备或装置可以包括服务器、云端服务器、服务器集群、数据处理装置、机器人、电脑、打印机、扫描仪、平板电脑、智能终端、PC设备、物联网终端、移动终端、手机、行车记录仪、导航仪、传感器、摄像头、相机、摄像机、投影仪、手表、耳机、移动存储、可穿戴设备、视觉终端、自动驾驶终端、交通工具、家用电器、和/或医疗设备。所述交通工具包括飞机、轮船和/或车辆;所述家用电器包括电视、空调、微波炉、冰箱、电饭煲、加湿器、洗衣机、电灯、燃气灶、油烟机;所述医疗设备包括核磁共振仪、B超仪和/或心电图仪。本披露的电子设备或装置还可以被应用于互联网、物联网、数据中心、能源、交通、公共管理、制造、教育、电网、电信、金融、零售、工地、医疗等领域。进一步,本披露的电子设备或装置还可以用于云端、边缘端、终端等与人工智能、大数据和/或云计算相关的应用场景中。在一个或多个实施例中,根据本披露方案的算力高的电子设备或装置可以应用于云端设备(例如云端服务器),而功耗小的电子设备或装置可以应用于终端设备和/或边缘端设备(例如智能手机或摄像头)。在一个或多个实施例中,云端设备的硬件信息和终端设备和/或边缘端设备的硬件信息相互兼容,从而可以根据终端设备和/或边缘端设备的硬件信息,从云端设备的硬件资源中匹配出合适的硬件资源来模拟终端设备和/或边缘端设备的硬件资源,以便完成端云一体或云边端一体的统一管理、调度和协同工作。
在描述本申请实施例之前,先对神经网络模型的训练过程进行介绍。
在对神经网络模型训练的每一次迭代中,都需要经过正向传播、反向传播和参数更新过程。其中,正向传播是由神经网络模型的第一层向最后一层传播的过程,反向传播是由神经网络模型的最后一层向第一层传播的过程。正向传播计算网络的损失函数,反向传播是基于损失函数计算网络中各层的梯度,参数更新是根据各层的梯度更新网络中各层的参数。经过多次迭代训练,最终使神经网络模型收敛,获得训练好的神经网络模型。
参见图4中的(a)所示,图4中的(a)为本申请提供的一种正向传播的示例示意图。该正向传播的过程应用于上述装置100或组合装置200或板卡300,图中,在正向传播至待量化层时,将数据X和W输入待量化层,其中,X表示该层的输入数据,W表示该层对应的参数(权重、偏置等),运算单元102或计算装置210或芯片302对待量化层中的X、W进行计算,获得输出数据Y,其中,待量化层的输入数据X也是待量化层的前一层的输出数据。数据Y再作为待量化层的后一层的输入数据,待量化层的后一层中的运算单元根据Y和待量化层的后一层的参数进行计算,又获得输出数据…,直至正向传播至神经网络模型的最后一层,获得损失函数。
参见图4中的(b)所示,图4中的(b)为本申请提供的一种反向传播的示例示意图。图中,在反向传播至待量化层时,将X和Y的梯度输入待量化层中,其中,X和Y的梯度表示输入数据,W表示该层对应的参数(权重、偏置等),待量化层中的运算单元对X、W、Y的梯度进行计算,获得输出数据X的梯度。另外,待量化层的输出数据还包括W的梯度(图中未示出),W的梯度用于参数更新过程。X的梯度作为待量化层的前一层的输入数据输入待量化层的前一层中,待量化层的前一层的运算单元对X的梯度及参数进行计算,获得输出数据…,直至反向传播至第一层。经过反向传播,计算出了网络的各个层中的梯度。
在正向传播和反向传播过程中,每层神经网络得到的输出数据作为中间数据存储在存储装置208或存储单元310中,当计算装置202进行计算时,从该存储装置208或存储单元310中获取所需要的的数据。
基于各个层中的梯度,对网络中的各个层进行参数更新。
在神经网络模型的训练过程中,具有如下特点。1)反向传播过程中,各个层的输入数据除了包括后一层的输出数据外,还包括正常传播过程中该层的输入数据。例如,对于待量化层来说,反向传播时,待量化层的输入数据包括待量化层的后一层的输出数据Y的梯度,还包括正向传播过程中待量化层的输入数据X;对于待量化层的前一层来说,反向传播时,待量化层的前一层的输入数据包括待量化层的输出数据X的梯度,还包括正向传播过程中待量化层的前一层的输入数据。2)在反向传播过程中某一层的输出数据是正向传播过程中该层的输入数据的梯度。例如,对于待量化层的后一层来说,正向传播时输入数据为Y,反向传播时该层的输出数据为Y的梯度;对于待量化层来说,正向传播时输入数据为X,反向传播时该层的输出数据为X的梯度。需要说明的是,上述图4中的(a)和(b)只是示例性地描述神经网络模型训练过程中的一次迭代过程,神经网络模型要达到收敛需要经过很多次的迭代训练,为了说明书的简洁,不再展开描述。
在神经网络模型的训练过程中,数据都是以浮点型的形式存在的,包括正向传播和反向传播两个部分,同时部分正向传播的结果可以作为中间结果应用在反向传播过程中,因此在运算的过程中会保存大量的数据占用较大的内存,造成设备的内存开销大的问题,尤其对于内存较小的硬件设备来说,训练神经网络模型更是具有挑战的事情。
为了解决上述问题,本申请实施例提供了一种神经网络模型的量化训练方法,该方法可以由图2所示组合装置200中的计算处理装置202完成,也可以由多个组合装置200完成,多个组合装置之间通过接口装置204进行通信;该方法还可以由图3中装置中的一个或多个芯片302完成。参见图5,图5为一种神经网络模型的量化训练方法的流程示意图,下面结合图6中的(a)和(b)对本方法实施例进行描述,其中,图6中的(a)为本申请实施例提供的神经网络模型量化训练中正向传播至待量化层的示意图,图6中的(b)为本申请实施例提供的神经网络模型量化训练中反向传播至待量化层的示意图,该方法实施例包括但不限于以下内容的描述。
S501、在正向传播过程中,分别对待量化层的第一输入数据和待量化层的参数进行量化,获得量化的第一输入数据和量化的参数。
参考图6中的(a)所示,待量化层的第一输入数据包括X,待量化层的参数为W,其中W中包括权重,还可以包括偏置等,量化的第一输入数据包括X1,量化的参数包括W1,W1中包括量化的权重,还可以包括量化的偏置等。
在正向传播至待量化层时,分别对第一输入数据X和参数W进行量化得到量化的第一输入数据X1和量化的W1。若待量化层为神经网络模型中的首层,则第一输入数据即为输入神经网络模型的样本数据;若待量化层不是神经网络模型的首层,则第一输入数据为待量化层的前一层的第一输出数据。例如,图6中的(a)中待量化层的第一输入数据X可以为待量化层的前一层的第一输出数据。
一般来说,第一输入数据和参数为浮点型数据,量化的第一输入数据和量化的参数为定点整型数据。比如,常用的浮点型数据类型为float32,常用的定点型数据类型为int8和int16。本申请对具体量化方式不做限定。
需要说明的是,当前迭代可以是神经网络模型训练中的任意一次迭代过程,比如可以是第一次迭代,可以是中间的某一次迭代,也可以是最后一次迭代。
S502、根据量化的第一输入数据和量化的参数,获得待量化层的第一输出数据。
可选的,根据量化的第一输入数据和量化的参数,获得待量化层的第一输出数据,包括:首先根据量化的第一输入数据和量化的参数计算出量化的第一输出数据,再对量化的第一输出数据进行反量化,获得待量化层的第一输出数据。
参考图6中的(a)所示,根据量化的第一输入数据X1以及量化的参数W1进行计算,获得量化的第一输出数据Y1,其中Y1为定点整型数据;再对定点型数据Y1进行反量化,获得第一输出数据Y,Y为浮点型数据。本申请对具体反量化方式不做限定。
通过量化处理,能够将运算量较大的数据变换成运算量较小的数据。在进行计算时,能够减少运算量,提高运算速度。例如,浮点型数据在小数点后存在很多位的小数,而定点整型数据为整数,因此在对定点整型数据进行运算,相对于对浮点型数据进行运算来说,能够提高运算速度,且数据的内存占用量相对较小。
S503、将量化的第一输入数据和量化的参数从内存中释放。
在获得待量化层的第一输出数据之后,将量化的第一输入数据和量化的参数从内存中释放,即删除掉。参考图6中的(a)所示,获得待量化层的第一输出数据Y后,将量化的第一输入数据X1和量化的参数W1(量化的权重、量化的偏置等)从内存中释放掉。
该层正向传播结束后,将该层量化的第一输入数据和量化的参数释放掉,只存储第一数据即可,是为了增加可用内存,尤其是在硬件设备内存一定的情况下,防止神经网络模型训练过程中产生的很多中间数据占用较多的内存,影响神经网络模型的训练。当反向传播需要根据量化的第一输入数据和量化的参数进行计算时,在根据存储的第一数据得到量化的第一输入数据。
需要说明的是,这里释放的是量化的第一输入数据和量化的参数(定点整型数据),而不是第一输入数据(浮点型数据),是因为考虑到,在某些神经网络模型中,第一输入数据(浮点型数据)有可能在反向传播过程中需要,例如,第一输入数据X在待量化层的前一层反向传播时需要,第一输入数据X作为待量化层的前一层的输入数据,输入至待量化层的前一层中。
需要说明的是,步骤S101至S103描述的是正向传播至待量化层时的处理过程,在这之后,继续进行正向传播,即待量化层的输出数据Y将作为第待量化层的后一层的输入数据输入待量化层的后一层,待量化层的后一层根据输入数据和参数进行处理,…,直至正向传播至神经网络模型的最后一层,计算出损失函数,正向传播结束。
可以看到,在正向传播过程中,通过对输入数据以及参数进行量化,能够减少神经网络模型训练过程中的运算量,提高运算速度;在该层正向传播结束后,再将量化的输入数据和量化的参数释放掉,能够减小内存占用量,在设备内存一定的条件下,使得设备得以正常进行神经网络模型的训练,获得训练好的神经网络模型。
本申请实施例还提供了一种神经网络模型的量化训练方法,参见图7所示,方法包括但不限于以下步骤,其中步骤S701至步骤S703的内容可参考S501至步骤S503的描述,为了说明书的简洁,在此不再赘述。
S701、在正向传播过程中,分别对待量化层的第一输入数据和待量化层的参数进行量化,获得量化的第一输入数据和量化的参数。
S702、根据量化的第一输入数据和量化的参数,获得待量化层的第一输出数据。
S703、将量化的第一输入数据和量化的参数从内存中释放。
S704、在反向传播过程中,分别对待量化层的第二输入数据和待量化层的参数进行量化,获得量化的第二输入数据和量化的第二参数。
反向传播是从神经网络模型的最后一层向前传播,最后一层根据正常传播时的第一输入数据及损失函数进行计算,获得输出数据,…,继续向前传播,直至反向传播至待量化层。
在反向传播过程中,虽然需要量化的第一输入数据和量化的参数作为反向传播的输入数据,但是为了节省内存,在正向传播中生成量化的第一输入数据和量化的参数使用后,即将该数据释放掉,只保存了第一输入数据。当反向传播需要该量化后的数据时,在根据保存的第一输入数据生成对应的量化数据(量化的第一输入数据和量化的参数)。因此,本方案通过只保存第一输入数据,释放暂时不需要的量化数据(量化的第一输入数据和量化的参数),减少了内存。
在反向传播至待量化层时,分别对待量化层的第二输入数据和参数进行量化,获得量化的第二输入数据和量化的第二参数。参见图6中的(b)所示,待量化层的第二输入数据包括X和Y的梯度,其中,X为正向传播时待量化层的第一输入数据,W为正向传播时待量化层的参数,Y的梯度为待量化层的后一层的输出数据,同时也是正向传播时待量化层的第一输出数据的梯度。量化的第二输入数据包括X1和Y2,其中,X1为X的量化结果,Y2为Y的梯度的量化结果,量化的第二参数W1包括量化的权重,还可以包括量化的偏置等。
需要说明的是,一般情况下量化的第二参数(反向传播过程中)与量化的第一参数(正向传播过程)是相同的,但是在步骤S503中,将量化的第一参数释放掉了,内存中不存在量化的第一参数,本步骤(反向传播过程)再次对参数进行量化,所以称为量化的第二参数。
S705、根据量化的第二输入数据和量化的第二参数,获得待量化层的第二输出数据和第二参数的梯度。
可选的,根据量化的第二输入数据和量化的第二参数,获得待量化层的第二输出数据和第二参数的梯度,包括:根据量化的第二输入数据和量化的第二参数进行计算,获得待量化层的量化的第二输出数据和量化的第二参数的梯度,再对量化的第二输出数据和量化的第二参数的梯度进行反量化,获得待量化层的第二输出数据和第二参数的梯度。
参见图6中的(b)所示,根据量化的第二输入数据X1、Y2和待量化层量化的参数W1进行计算,获得量化的第二输出数据X2和量化的第二参数的梯度W2,再对X2和W2进行反量化计算,获得X的梯度和W的梯度。其中,X的梯度可以作为待量化层的前一层的输入数据,继续进行反向传播,W的梯度用于参数更新过程中计算优化器,优化器中为参数更新的方法。
S706、将量化的第二输入数据和量化的第二参数从内存中释放。
在获得该层的第二输出数据和第二参数的梯度之后,将量化的第二输入数据和量化的第二参数从内存中释放掉,减小中间数据内存占用量,以增加内存的可用空间。例如,图6中的(b),在计算出待量化层的第二输出数据X的梯度和第二参数W的梯度之后,将量化的第二输入数据X1、Y2和量化的第二参数W1(量化的权重、量化的偏置等)从内存中释放掉。
需要说明的是,在本步骤结束后,反向传播继续进行,待量化层的第二输出数据X的梯度作为待量化层的前一层的第二输入数据,…,直至反向传播至第一层,反向传播结束。
S707、对神经网络模型的各个层的参数进行更新。
通过反向传播,获得了神经网络模型中各层参数(权重、偏置等)的梯度。基于参数、参数的梯度及优化器对神经网络模型中各层的参数进行更新,例如,对于神经网络模型中的某一层来说,根据该层中的权重、权重的梯度及优化器(反向传播过程计算出的)进行计算,获得新的权重,用新的权重代替原来的权重,实现权重的更新。
需要说明的是,本实施例中的步骤S101至步骤S107描述的是神经网络模型训练过程中某一次迭代的过程,实际进行训练时,需要经过很多次的迭代训练神经网络模型才能收敛。
还需要说明的是,图6中的(a)和(b)是本申请描述的一个示例性实施例,图6中的第一输入数据、第一输出数据、第二输入数据以及第二输出数据等也是一种示例性表示,实际神经网络模型训练中,输入和输出可以是一个,也可以是多个,对此并不构成对本申请的限定。
还需要说明的是,本申请描述的神经网络模型的量化训练方法可以应用于神经网络模型中的一个层或多个层,本申请不做限定。一般来说,可以应用于运算量比较大的层,比如涉及卷积运算、矩阵乘运算的层,例如卷积层、反卷积层、深度卷积层等,又例如全连接层等。
可以看到,在正向传播或反向传播过程中,通过对输入数据以及参数进行量化,能够减少神经网络模型训练过程中的运算量,提高运算速度;在该层正向传播或反向传播结束后,再将量化的输入数据和量化的参数释放掉,能够减小内存占用量,在设备内存一定的条件下,使得设备得以正常进行神经网络模型的训练,获得训练好的神经网络模型。
本申请实施例提供了一种神经网络模型的测试方法,参考图8所示的神经网络模型的测试方法的流程示意图,该方法包括但不限于以下内容的描述。
S801、获取测试数据。
获取测试数据,例如,测试数据可以为图像或图像帧,也可以为语音等。
S802、使用经训练的神经网络模型对测试数据进行测试。
使用图5或图7方法实施例中训练好的神经网络模型对测试数据进行测试,获得测试结果。其中,神经网络模型是采用量化训练方式获得的,且在训练过程中,对于运算量较大的层,正常传播时可以将输入数据和参数(例如权重、偏置)的量化结果释放掉,在反向传播过程中,在该层传播结束后再将输入数据的量化结果和参数的量化结果释放掉,以节省内存空间,保证神经网络模型训练正常进行。
本申请实施例还提供了一种神经网络模型的测试装置,参见图9所示的示意图,神经网络模型的测试装置900包括:
获取单元901,用于获取测试数据;
测试单元902,用于使用经训练的神经网络模型对测试数据进行测试。其中,神经网络模型是通过图5或图7所示的实施例方法训练得到的。
需要说明的是,为了简明的目的,本披露将一些方法及其实施例表述为一系列的动作及其组合,但是本领域技术人员可以理解本披露的方案并不受所描述的动作的顺序限制。因此,依据本披露的公开或教导,本领域技术人员可以理解其中的某些步骤可以采用其他顺序来执行或者同时执行。进一步,本领域技术人员可以理解本披露所描述的实施例可以视为可选实施例,即其中所涉及的动作或模块对于本披露某个或某些方案的实现并不一定是必需的。另外,根据方案的不同,本披露对一些实施例的描述也各有侧重。鉴于此,本领域技术人员可以理解本披露某个实施例中没有详述的部分,也可以参见其他实施例的相关描述。
在具体实现方面,基于本披露的公开和教导,本领域技术人员可以理解本披露所公开的若干实施例也可以通过本文未公开的其他方式来实现。例如,就前文所述的电子设备或装置实施例中的各个单元来说,本文在考虑了逻辑功能的基础上对其进行划分,而实际实现时也可以有另外的划分方式。又例如,可以将多个单元或组件结合或者集成到另一个系统,或者对单元或组件中的一些特征或功能进行选择性地禁用。就不同单元或组件之间的连接关系而言,前文结合附图所讨论的连接可以是单元或组件之间的直接或间接耦合。在一些场景中,前述的直接或间接耦合涉及利用接口的通信连接,其中通信接口可以支持电性、光学、声学、磁性或其它形式的信号传输。
在本披露中,作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元示出的部件可以是或者也可以不是物理单元。前述部件或单元可以位于同一位置或者分布到多个网络单元上。另外,根据实际的需要,可以选择其中的部分或者全部单元来实现本披露实施例所述方案的目的。另外,在一些场景中,本披露实施例中的多个单元可以集成于一个单元中或者各个单元物理上单独存在。
在一些实现场景中,上述集成的单元可以采用软件程序模块的形式来实现。如果以软件程序模块的形式实现并作为独立的产品销售或使用时,所述集成的单元可以存储在计算机可读取存储器中。基于此,当本披露的方案以软件产品(例如计算机可读存储介质)的形式体现时,该软件产品可以存储在存储器中,其可以包括若干指令用以使得计算机设备(例如个人计算机、服务器或者网络设备等)执行本披露实施例所述方法的部分或全部步骤。前述的存储器可以包括但不限于U盘、闪存盘、只读存储器(Read Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
在另外一些实现场景中,上述集成的单元也可以采用硬件的形式实现,即为具体的硬件电路,其可以包括数字电路和/或模拟电路等。电路的硬件结构的物理实现可以包括但不限于物理器件,而物理器件可以包括但不限于晶体管或忆阻器等器件。鉴于此,本文所述的各类装置(例如计算装置或其他处理装置)可以通过适当的硬件处理器来实现,例如CPU、GPU、FPGA、DSP和ASIC等。进一步,前述的所述存储单元或存储装置可以是任意适当的存储介质(包括磁存储介质或磁光存储介质等),其例如可以是可变电阻式存储器(Resistive Random Access Memory,RRAM)、动态随机存取存储器(Dynamic RandomAccess Memory,DRAM)、静态随机存取存储器(Static Random Access Memory,SRAM)、增强动态随机存取存储器(Enhanced Dynamic Random Access Memory,EDRAM)、高带宽存储器(High Bandwidth Memory,HBM)、混合存储器立方体(Hybrid Memory Cube,HMC)、ROM和RAM等。
依据以下条款可更好地理解前述内容:
条款A1、一种神经网络模型的量化训练方法,所述神经网络模型包括多个层,所述方法包括:在正向传播过程中,分别对待量化层的第一输入数据和所述待量化层的参数进行量化,获得量化的第一输入数据和量化的第一参数;对所述量化的第一输入数据和所述量化的第一参数进行运算,获得量化的第一输出数据;对所述待量化层的量化的第一输出数据进行反量化运算,得到所述待量化层的第一输出数据;将所述量化的第一输入数据和所述量化的第一参数从内存中释放。
条款A2、根据条款A1所述的方法,当所述待量化层是所述神经网络模型的首层时,所述待量化层的第一输入数据为输入所述神经网络模型的样本数据;否则,所述待量化层的第一输入数据为所述待量化层的前一层的第一输出数据。
条款A3、根据条款A1或条款A2所述的方法,所述方法还包括:在反向传播过程中,分别对所述待量化层的第二输入数据和所述待量化层的参数进行量化,获得量化的第二输入数据和量化的第二参数;根据所述量化的第二输入数据和所述量化的第二参数,获得所述待量化层的量化的第二输出数据和所述待量化层的量化的第二参数的梯度;对所述待量化层的量化的第二输出数据和所述待量化层的量化的第二参数的梯度进行反量化运算,得到所述待量化层的第二输出数据和所述待量化层的第二参数的梯度;将所述量化的第二输入数据和所述量化的第二参数从内存中释放。
条款A4、根据条款A3所述的方法,当所述待量化层是所述神经网络模型的最后一层时,所述第二输入数据包括所述第一输入数据和网络损失;其中所述网络损失为正向传播获得的;当所述待量化层不是所述神经网络模型的最后一层时,所述第二输入数据包括所述第一输入数据和所述待量化层的后一层的第二输出数据。
条款A5、根据条款A3或条款A4所述的方法,在所述反向传播结束后,所述方法还包括:基于所述神经网络模型中各个层的参数和参数的梯度对所述各个层进行参数更新。
条款A6、根据条款A1-A5任一项所述的方法,所述方法适用于所述神经网络模型中的至少一层。
条款A7、一种神经网络模型的测试方法,包括:获取测试数据;使用经训练的神经网络模型对所述测试数据进行测试;所述神经网络模型是通过条款A1-A6任一项所述的方法训练得到的。
条款A8、一种神经网络模型的量化训练装置,所述神经网络模型包括多个层,所述装置包括:量化单元,用于在正向传播过程中,分别对待量化层的第一输入数据和所述待量化层的参数进行量化,获得量化的第一输入数据和量化的第一参数;运算单元,用于对所述量化的输入数据和所述量化的第一参数进行运算,获得所述待量化层的量化的第一输出数据;反量化单元,用于对所述待量化层的量化的第一输出数据进行反量化运算,得到所述待量化层的第一输出数据;释放单元,用于将所述量化的第一输入数据和所述量化的第一参数从内存中释放。
条款A9、一种神经网络模型的测试装置,包括:获取单元,用于获取测试数据;测试单元,用于使用经训练的神经网络模型对所述测试数据进行测试;所述神经网络模型是通过条款A1-A6任一项所述的方法训练得到的。
条款A10、一种神经网络模型的量化训练设备,包括存储器和处理器,所述存储器用于存储指令,所述处理器用于调用所述指令执行权利要求条款A1-A6任一项所述的方法。
条款A11、一种神经网络模型的测试设备,包括存储器和处理器,所述存储器用于存储指令,所述处理器用于调用所述指令执行条款A7所述的方法。
条款A12、一种计算机存储介质,包括程序指令,当所述程序指令在计算机上运行时,使得计算机执行条款A1-A6任一项所述的方法。
虽然本文已经示出和描述了本披露的多个实施例,但对于本领域技术人员显而易见的是,这样的实施例只是以示例的方式来提供。本领域技术人员可以在不偏离本披露思想和精神的情况下想到许多更改、改变和替代的方式。应当理解的是在实践本披露的过程中,可以采用对本文所描述的本披露实施例的各种替代方案。所附权利要求书旨在限定本披露的保护范围,并因此覆盖这些权利要求范围内的等同或替代方案。

Claims (12)

1.一种神经网络模型的量化训练方法,其特征在于,所述神经网络模型包括多个层,所述方法包括:
在正向传播过程中,分别对待量化层的第一输入数据和所述待量化层的参数进行量化,获得量化的第一输入数据和量化的第一参数;
对所述量化的第一输入数据和所述量化的第一参数进行运算,获得量化的第一输出数据;
对所述待量化层的量化的第一输出数据进行反量化运算,得到所述待量化层的第一输出数据;
将所述量化的第一输入数据和所述量化的第一参数从内存中释放。
2.根据权利要求1所述的方法,其特征在于,
当所述待量化层是所述神经网络模型的首层时,所述待量化层的第一输入数据为输入所述神经网络模型的样本数据;
否则,所述待量化层的第一输入数据为所述待量化层的前一层的第一输出数据。
3.根据权利要求1或2所述的方法,其特征在于,所述方法还包括:
在反向传播过程中,分别对所述待量化层的第二输入数据和所述待量化层的参数进行量化,获得量化的第二输入数据和量化的第二参数;
根据所述量化的第二输入数据和所述量化的第二参数,获得所述待量化层的量化的第二输出数据和所述待量化层的量化的第二参数的梯度;
对所述待量化层的量化的第二输出数据和所述待量化层的量化的第二参数的梯度进行反量化运算,得到所述待量化层的第二输出数据和所述待量化层的第二参数的梯度;
将所述量化的第二输入数据和所述量化的第二参数从内存中释放。
4.根据权利要求3所述的方法,其特征在于,
当所述待量化层是所述神经网络模型的最后一层时,所述第二输入数据包括所述第一输入数据和网络损失;其中所述网络损失为正向传播获得的;
当所述待量化层不是所述神经网络模型的最后一层时,所述第二输入数据包括所述第一输入数据和所述待量化层的后一层的第二输出数据。
5.根据权利要求3或4所述的方法,其特征在于,在所述反向传播结束后,所述方法还包括:基于所述神经网络模型中各个层的参数和参数的梯度对所述各个层进行参数更新。
6.根据权利要求1-5任一项所述的方法,其特征在于,所述方法适用于所述神经网络模型中的至少一层。
7.一种神经网络模型的测试方法,其特征在于,包括:
获取测试数据;
使用经训练的神经网络模型对所述测试数据进行测试;所述神经网络模型是通过权利要求1-6任一项所述的方法训练得到的。
8.一种神经网络模型的量化训练装置,其特征在于,所述神经网络模型包括多个层,所述装置包括:
量化单元,用于在正向传播过程中,分别对待量化层的第一输入数据和所述待量化层的参数进行量化,获得量化的第一输入数据和量化的第一参数;
运算单元,用于对所述量化的输入数据和所述量化的第一参数进行运算,获得所述待量化层的量化的第一输出数据;
反量化单元,用于对所述待量化层的量化的第一输出数据进行反量化运算,得到所述待量化层的第一输出数据;
释放单元,用于将所述量化的第一输入数据和所述量化的第一参数从内存中释放。
9.一种神经网络模型的测试装置,其特征在于,包括:
获取单元,用于获取测试数据;
测试单元,用于使用经训练的神经网络模型对所述测试数据进行测试;所述神经网络模型是通过权利要求1-6任一项所述的方法训练得到的。
10.一种神经网络模型的量化训练设备,其特征在于,包括存储器和处理器,所述存储器用于存储指令,所述处理器用于调用所述指令执行权利要求1-6任一项所述的方法。
11.一种神经网络模型的测试设备,其特征在于,包括存储器和处理器,所述存储器用于存储指令,所述处理器用于调用所述指令执行权利要求7所述的方法。
12.一种计算机存储介质,其特征在于,包括程序指令,当所述程序指令在计算机上运行时,使得计算机执行如权利要求1-6任一项所述的方法。
CN202011645236.2A 2020-12-31 2020-12-31 一种神经网络模型的量化训练方法、装置和设备 Pending CN114692824A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202011645236.2A CN114692824A (zh) 2020-12-31 2020-12-31 一种神经网络模型的量化训练方法、装置和设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202011645236.2A CN114692824A (zh) 2020-12-31 2020-12-31 一种神经网络模型的量化训练方法、装置和设备

Publications (1)

Publication Number Publication Date
CN114692824A true CN114692824A (zh) 2022-07-01

Family

ID=82135628

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202011645236.2A Pending CN114692824A (zh) 2020-12-31 2020-12-31 一种神经网络模型的量化训练方法、装置和设备

Country Status (1)

Country Link
CN (1) CN114692824A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116913266A (zh) * 2023-09-13 2023-10-20 腾讯科技(深圳)有限公司 一种语音检测方法、装置、设备及存储介质

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116913266A (zh) * 2023-09-13 2023-10-20 腾讯科技(深圳)有限公司 一种语音检测方法、装置、设备及存储介质
CN116913266B (zh) * 2023-09-13 2024-01-05 腾讯科技(深圳)有限公司 一种语音检测方法、装置、设备及存储介质

Similar Documents

Publication Publication Date Title
CN110298443B (zh) 神经网络运算装置及方法
US20200050924A1 (en) Data Processing Method and Apparatus for Neural Network
CN112686379A (zh) 集成电路装置、电子设备、板卡和计算方法
CN113238989A (zh) 将数据进行量化的设备、方法及计算机可读存储介质
CN114692824A (zh) 一种神经网络模型的量化训练方法、装置和设备
CN115129460A (zh) 获取算子硬件时间的方法、装置、计算机设备和存储介质
CN112084023A (zh) 数据并行处理的方法、电子设备及计算机可读存储介质
CN112596881B (zh) 存储部件及人工智能处理器
CN113238976B (zh) 缓存控制器、集成电路装置及板卡
CN112801276B (zh) 数据处理方法、处理器及电子设备
CN114692865A (zh) 一种神经网络量化训练方法、装置及相关产品
CN112766475A (zh) 处理部件及人工智能处理器
CN115373646A (zh) 扩展信息方法、装置和相关产品
CN114692825A (zh) 一种神经网络模型的量化训练方法、装置及设备
CN113238975A (zh) 优化深度神经网络的参数的内存、集成电路及板卡
CN111967588A (zh) 量化运算方法及相关产品
CN113469326A (zh) 在神经网络模型中执行剪枝优化的集成电路装置及板卡
CN112817898A (zh) 数据传输方法、处理器、芯片及电子设备
CN114444680A (zh) 神经网络稀疏化的装置、方法及相关产品
CN114692864A (zh) 量化方法、装置、存储介质以及电子设备
CN113934678A (zh) 一种计算装置、集成电路芯片、板卡、设备和计算方法
CN114692847B (zh) 数据处理电路、数据处理方法及相关产品
CN113469333B (zh) 执行神经网络模型的人工智能处理器、方法及相关产品
CN115204351A (zh) 神经网络模型训练的装置以及方法
CN114596184A (zh) 一种累加图像数据的方法、装置以及存储介质

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination