CN110889503B - 数据处理方法、装置、计算机设备和存储介质 - Google Patents

数据处理方法、装置、计算机设备和存储介质 Download PDF

Info

Publication number
CN110889503B
CN110889503B CN201911175116.8A CN201911175116A CN110889503B CN 110889503 B CN110889503 B CN 110889503B CN 201911175116 A CN201911175116 A CN 201911175116A CN 110889503 B CN110889503 B CN 110889503B
Authority
CN
China
Prior art keywords
data
quantized
layer
neural network
bit width
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201911175116.8A
Other languages
English (en)
Other versions
CN110889503A (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.)
Cambricon Technologies Corp Ltd
Original Assignee
Cambricon Technologies Corp 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 Cambricon Technologies Corp Ltd filed Critical Cambricon Technologies Corp Ltd
Priority to CN201911175116.8A priority Critical patent/CN110889503B/zh
Publication of CN110889503A publication Critical patent/CN110889503A/zh
Application granted granted Critical
Publication of CN110889503B publication Critical patent/CN110889503B/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/08Learning methods
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks

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)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)

Abstract

本公开涉及一种数据处理方法、装置、计算机设备和存储介质。装置中包括板卡,该板卡包括:存储器件、接口装置和控制器件以及包括数据处理装置的人工智能芯片;其中,人工智能芯片与存储器件、控制器件以及接口装置分别连接;存储器件,用于存储数据;接口装置,用于实现人工智能芯片与外部设备之间的数据传输;控制器件,用于对人工智能芯片的状态进行监控。本公开实施例所提供的神经网络的数据量化处理方法、装置、计算机设备和存储介质,提高了确定神经网络中不同待量化层的量化位宽的确定速度和效率。

Description

数据处理方法、装置、计算机设备和存储介质
技术领域
本公开涉及计算机技术领域,特别是涉及一种神经网络的数据量化处理方法、装置、计算机设备和存储介质。
背景技术
神经网络(neural network,NN)是一种模仿生物神经网络的结构和功能的数学模型或计算模型。神经网络通过样本数据的训练,不断修正网络权值和阈值使误差函数沿负梯度方向下降,逼近期望输出。它是一种应用较为广泛的识别分类模型,多用于函数逼近、模型识别分类、数据压缩和时间序列预测等。神经网络被应用到图像识别、语音识别、自然语言处理等领域中,然而,随着神经网络复杂度提高,数据的数据量和数据维度都在不断增大,不断增大的数据量等对运算装置的数据处理效率、存储装置的存储容量及访存效率等提出了较大的挑战。相关技术中,采用固定位宽对神经网络的运算数据进行量化,即将浮点型的运算数据转换为定点型的运算数据,以实现神经网络的运算数据的压缩。但相关技术中针对整个神经网络采用固定的位宽,但神经网络的不同运算数据之间可能存在较大的差异,往往会导致精度较低,影响数据运算结果,且确定位宽的速度慢、时间长。
发明内容
基于此,有必要针对上述技术问题,提供一种能够解决上述技术问题的神经网络的数据量化处理方法、装置、计算机设备和存储介质。
根据本公开的一方面,提供了一种神经网络的数据量化处理方法,应用于处理器,所述方法包括:
获取神经网络中待量化层的状态数据;
利用预先训练好的强化学习模型,对所述状态数据进行处理,得到所述待量化层的量化位宽,以根据所述量化位宽对所述待量化层中对应的待量化数据进行量化,
其中,所述状态数据包括:所述待量化层在神经网络中对应的层数、所述神经网络中所述待量化层的上一层的量化位宽、所述待量化层对应的运算类型、与所述运算类型相对应的运算参数、所述待量化层的输入数据和/或输出数据的数据参数。
根据本公开的另一方面,提供了一种神经网络的数据量化处理装置,应用于处理器,所述装置包括:
数据获取模块,获取神经网络中待量化层的状态数据;
位宽确定模块,利用预先训练好的强化学习模型,对所述状态数据进行处理,得到所述待量化层的量化位宽,以根据所述量化位宽对所述待量化层中对应的待量化数据进行量化,
其中,所述状态数据包括:所述待量化层在神经网络中对应的层数、所述神经网络中所述待量化层的上一层的量化位宽、所述待量化层对应的运算类型、与所述运算类型相对应的运算参数、所述待量化层的输入数据和/或输出数据的数据参数。
根据本公开的另一方面,提供了一种人工智能芯片,所述芯片包括如上述神经网络的数据量化处理装置。
根据本公开的另一方面,提供了一种电子设备,所述电子设备包括上述人工智能芯片。
根据本公开的另一方面,提供了一种板卡,所述板卡包括:存储器件、接口装置和控制器件以及上述人工智能芯片;
其中,所述人工智能芯片与所述存储器件、所述控制器件以及所述接口装置分别连接;
所述存储器件,用于存储数据;
所述接口装置,用于实现所述人工智能芯片与外部设备之间的数据传输;
所述控制器件,用于对所述人工智能芯片的状态进行监控。
根据本公开的另一方面,提供了一种电子设备,包括:
处理器;
用于存储处理器可执行指令的存储器;
其中,所述处理器被配置为调用所述存储器存储的指令,以执行上述神经网络的数据量化处理方法。
根据本公开的另一方面,提供了一种计算机可读存储介质,其上存储有计算机程序指令,所述计算机程序指令被处理器执行时实现上述神经网络的数据量化处理方法。
本公开实施例所提供的神经网络的数据量化处理方法、装置、计算机设备和存储介质,获取神经网络中待量化层的状态数据;利用预先训练好的强化学习模型,对所述状态数据进行处理,得到所述待量化层的量化位宽,以根据所述量化位宽对所述待量化层中对应的待量化数据进行量化,提高了确定神经网络中不同待量化层的量化位宽的确定速度和效率,且利用确定的量化位宽进一步对待量化数据进行量化,在保证精度的同时,减小了存储数据所占用的存储空间,保证了运算结果的准确性和可靠性,且能够提高运算的效率,且量化同样缩减了神经网络模型的大小,降低了对运行该神经网络模型的终端的性能要求,使神经网络模型可以应用于算力、体积、功耗相对受限的手机等终端。
根据下面参考附图对示例性实施例的详细说明,本公开的其它特征及方面将变得清楚。
附图说明
包含在说明书中并且构成说明书的一部分的附图与说明书一起示出了本公开的示例性实施例、特征和方面,并且用于解释本公开的原理。
图1示出根据本公开实施例的神经网络的数据量化处理方法的处理器的示意图。
图2示出根据本公开一实施例的神经网络的数据量化处理方法的流程图。
图3示出根据本公开一实施例的神经网络的数据量化处理方法的流程图。
图4示出根据本公开实施例的训练强化学习模型的应用示例的示意图。
图5示出根据本公开实施例的神经网络的数据量化处理装置的框图。
图6示出根据本公开实施例的板卡的结构框图
图7示出根据本公开实施例的一种电子设备800的框图。
具体实施方式
下面将结合本公开实施例中的附图,对本公开实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本公开一部分实施例,而不是全部的实施例。基于本公开中的实施例,本领域技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本公开保护的范围。
应当理解,本公开的权利要求、说明书及附图中的术语“第一”、“第二”等是用于区别不同对象,而不是用于描述特定顺序。本公开的说明书和权利要求书中使用的术语“包括”和“包含”指示所描述特征、整体、步骤、操作、元素和/或组件的存在,但并不排除一个或多个其它特征、整体、步骤、操作、元素、组件和/或其集合的存在或添加。
还应当理解,在此本公开说明书中所使用的术语仅仅是出于描述特定实施例的目的,而并不意在限定本公开。如在本公开说明书和权利要求书中所使用的那样,除非上下文清楚地指明其它情况,否则单数形式的“一”、“一个”及“该”意在包括复数形式。还应当进一步理解,在本公开说明书和权利要求书中使用的术语“和/或”是指相关联列出的项中的一个或多个的任何组合以及所有可能组合,并且包括这些组合。
如在本说明书和权利要求书中所使用的那样,术语“如果”可以依据上下文被解释为“当...时”或“一旦”或“响应于确定”或“响应于检测到”。类似地,短语“如果确定”或“如果检测到[所描述条件或事件]”可以依据上下文被解释为意指“一旦确定”或“响应于确定”或“一旦检测到[所描述条件或事件]”或“响应于检测到[所描述条件或事件]”。
根据本公开实施例的神经网络的数据量化处理方法可应用于处理器中,该处理器可以是通用处理器,例如CPU(Central Processing Unit,中央处理器),也可以是用于执行人工智能运算的人工智能处理器(IPU)。人工智能运算可包括机器学习运算,类脑运算等。其中,机器学习运算包括神经网络运算、k-means运算、支持向量机运算等。该人工智能处理器可例如包括GPU(Graphics Processing Unit,图形处理单元)、NPU(Neural-NetworkProcessing Unit,神经网络处理单元)、DSP(Digital Signal Process,数字信号处理单元)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)芯片中的一种或组合。本公开对处理器的具体类型不作限制。
在一种可能的实现方式中,本公开中所提及的处理器可包括多个处理单元,每个处理单元可以独立运行所分配到的各种任务,如:卷积运算任务、池化任务或全连接任务等。本公开对处理单元及处理单元所运行的任务不作限制。
图1示出根据本公开实施例的神经网络的数据量化处理方法的处理器的示意图。如图1所示,处理器100包括多个处理单元101以及存储单元102,多个处理单元101用于执行指令序列,存储单元102用于存储数据,可包括随机存储器(RAM,Random Access Memory)和寄存器堆。处理器100中的多个处理单元101既可共用部分存储空间,例如共用部分RAM存储空间和寄存器堆,又可同时拥有各自的存储空间。
对于已经训练完成的神经网络模型,对模型进行量化可以减少存储空间占用并且加快模型推理速度。但模型量化会对神经网络模型的计算精度产生影响,而深度神经网络模型每层对计算精度损失的容忍度不同。每层使用相同的量化位宽进行量化往往会导致模型性能受损或者压缩比例不够,每层神经网络使用不同的量化位宽更为合理。但是神经网络往往具有较多层数,为每层选取合适的量化位宽使得搜索空间非常大,逐层实验所需时间太长。基于上述问题,本公开提出一种借助强化学习算法确定神经网络中量化位宽的技术方案,这样可以快速、准确地确定出神经网络不同待量化层所对应的量化位宽,利用量化位宽确定对应的量化参数进而对待量化数据进行量化,在保证精度的同时,减小了存储数据所占用的存储空间,保证了运算结果的准确性和可靠性,且能够提高运算的效率,且量化同样缩减了神经网络模型的大小,降低了对运行该神经网络模型的终端的性能要求,使神经网络模型可以应用于算力、体积、功耗相对受限的手机等终端。
图2示出根据本公开一实施例的神经网络的数据量化处理方法的流程图。如图2所示,该方法应用于处理器,该方法包括步骤S11和步骤S12。
在步骤S11中,获取神经网络中待量化层的状态数据。其中,所述状态数据可以包括:所述待量化层在神经网络中对应的层数、所述神经网络中所述待量化层的上一层的量化位宽、所述待量化层对应的运算类型、与所述运算类型相对应的运算参数、所述待量化层的输入数据和/或输出数据的数据参数。
在步骤S12中,利用预先训练好的强化学习模型,对所述状态数据进行处理,得到所述待量化层的量化位宽,以根据所述量化位宽对所述待量化层中对应的待量化数据进行量化。
在本实施例中,待量化层的状态数据可以描述待量化层中与确定量化位宽相对应的特征和内容。待量化层对应的运算类型可以描述待量化层对数据所进行的运算和/或处理的方式、方法。例如,神经网络运算过程中待量化层可以是卷积层(Convolutionallayer)、全连接层(Fully connected layer)、池化层(pooling layer)等进行神经网络运算所涉及到的对数据进行运算或处理的层,本公开对此不作限制。与运算类型相对应的运算参数用于描述为实现待量化层的运算所需要的除输入数据之外的全部参数,例如,待量化层的运算类型为卷积运算,则与卷积运算相对应的运算参数包括卷积核尺寸、滑动步长等。待量化层的输入数据和/或输出数据的数据参数可以包括用于描述数据的数据尺寸、形状等与数据本身相关的参数。
在一种可能的实现方式中,所述数据参数可以包括数据高度、数据宽度、通道数中的至少一种,所述运算类型可以包括卷积运算和全连接运算中的任一种。其中,在所述运算类型为卷积运算时,与所述卷积运算相对应的运算参数包括卷积核尺寸、滑动步长。
在一种可能的实现方式中,可以根据神经网络所能存在的各层的状态对量化数据进行编码,以简化状态数据的内容,例如,可以将状态数据编码为:m,bits_prev,type,h,w,kh,kw,stride,nin,nout。其中,m可以表示待量化层的层数的编号、序号等标识。bits_prev可以表示待量化层的上一层的量化位宽。type表示待量化层所对应的运算类型,可以根据需要为不同类型的层设置不同的编码,例如,“0”表示待量化层为卷积层、“1”表示待量化层为全连接层。h和w表示输入数据的高度和宽度,在输入数据为非二维数据如三维数据时,可以设置为x、y、z分别表示三个维度的长度,其余维度的数据同理设置其数据参数。kh和kw表示卷积核的高度和宽度。stride可以表示卷积核的滑动步长。nin和nout可以表示输入数据对应的通道数和输出数据对应的通道数。其中,在运算类型为非卷积运算时,kh、kw、stride可以设置“0”等,以和对应的运算类型相对应。其中,状态数据编码中的“,”仅用于区别不同的状态数据内容的编码,并不是编码的实际内容。需要说明的是,上述对状态数据的编码仅是一个示例,本领域技术人员可以根据神经网络、输入数据、输出数据对编码进行设置,包括对编码中所包含的内容、不同编码内容所表示的含义、编码中不同内容的位置等,本公开对此不作限制。
在一种可能的实现方式中,待量化数据可以包括神经网络的神经元、权值、梯度中的至少一种数据。待量化数据是以高精度数据格式表示的数据,量化后数据是以低精度数据格式表示的,待量化数据的数据格式的精度高于量化后数据的数据格式的精度。
本公开实施例所提供的神经网络的数据量化处理方法,获取神经网络中待量化层的状态数据;利用预先训练好的强化学习模型,对所述状态数据进行处理,得到所述待量化层的量化位宽,以根据所述量化位宽对所述待量化层中对应的待量化数据进行量化,提高了确定神经网络中不同待量化层的量化位宽的确定速度和效率,且利用确定的量化位宽进一步对待量化数据进行量化,在保证精度的同时,减小了存储数据所占用的存储空间,保证了运算结果的准确性和可靠性,且能够提高运算的效率,且量化同样缩减了神经网络模型的大小,降低了对运行该神经网络模型的终端的性能要求,使神经网络模型可以应用于算力、体积、功耗相对受限的手机等终端。
在一种可能的实现方式中,所述强化学习模型可以包括第一子模型,所述利用预先训练好的强化学习模型,对所述状态数据进行处理,得到所述待量化层的量化位宽,可以包括:
利用所述强化学习模型中的第一子模型对所述状态数据进行处理,得到所述待量化层的量化位宽。
图3示出根据本公开一实施例的神经网络的数据量化处理方法的流程图。在一种可能的实现方式中,如图3所示,在执行上述步骤S12之前,该方法还可以包括针对所述强化学习模型的训练过程,所述训练过程包括步骤S13至步骤S18。
在步骤S13中,获取训练好的神经网络中当前层的状态数据。
在步骤S14中,将所述当前层的状态数据输入待训练强化学习模型中的待训练第一子模型,得到所述当前层的量化位宽。
在步骤S15中,根据所述当前层的量化位宽对所述训练好的神经网络中的待量化数据进行量化,得到量化后神经网络,并确定所述量化后神经网络的模型准确率。
在该实现方式中,可以利用预先训练好的神经网络进行模型训练得到强化学习模型。逐层将对应的状态数据输入到待训练第一子模型中,得到每一层所对应的量化位宽,进而根据量化位宽对神经网络进行量化。而后可以根据预先确定的验证数据集对量化后神经网络进行模型准确率的测试,确定量化后神经网络的模型准确率。
在步骤S16中,根据所述模型准确率、所有层中待量化数据的数据规模和所有层的量化位宽,得到对应于待训练强化学习模型的奖励函数。
在一种可能的实现方式中,可以利用如下公式(1)计算奖励函数R:
Figure BDA0002289755660000071
其中,Accuracy为量化后神经网络的模型准确率。paramm为第m层中状态数据中的参数数量。numbitsm为第m层的量化位宽的宽度,如比特数。l为神经网络的总层数。其中,模型准确率越高R的值越大、量化位宽之和越小R的值越大。
在步骤S17中,以所述奖励函数、模型准确率、所述当前层的状态数据和所述当前层的下一层的状态数据为样本,对待训练强化学习模型进行训练。
在该实现方式中,所得到的对应于待训练强化学习模型的奖励函数可以是一个也可以是多个,例如,可以根据每一层的量化位宽对神经网络全部量化后,确定其模型准确率,进而计算出奖励函数。图4示出根据本公开实施例的训练强化学习模型的应用示例的示意图。如图4所示,也可以将神经网络的一层或多层量化后确定其对应的模型准确率、进而计算出针对该一层或多层的奖励函数。而后以计算出的奖励函数、当前层的量化位宽、当前层的状态数据、下一层的状态数据为样本,继续对待训练强化学习模型进行训练。例如,可以设置指定长度的先进先出队列,在队列中存储已经计算出的奖励函数、当前层的量化位宽、当前层的状态数据、下一层的状态数据。针对该队列所进行的计算包括两个方面:一方面,针对该队列进行如上述步骤S15所述的计算过程;另一方面,针对该队列进行步骤S16至S17的处理过程。这样,可以提高训练模型的速度和效率。
在步骤S18中,在训练得到的强化学习模型满足停止训练条件时,停止训练,得到训练好的强化学习模型。
在该实现方式中,可以对训练得到的强化学习模型进行优化,在确定优化过程收敛时,可以确定训练得到的强化学习模型满足停止训练条件,停止训练,得到训练好的强化学习模型。
在一种可能的实现方式中,所述强化学习模型还可以包括第二子模型,步骤S18可以包括:
利用所述第二子模型,对所述当前层的状态数据和所述当前层的量化位宽进行处理,得到对应所述当前层的量化位宽的评价(reward),并根据所述评价得到所述第一子模型的第一损失函数;
根据所述奖励函数、当前层的第一损失函数以及下一层的第一损失函数,得到所述第二子模型的第二损失函数;
在所述第一损失函数和所述第二损失函数的变化率小于或等于对应的变化率阈值时,停止训练,得到训练好的强化学习模型。
在该实现方式中,可以根据第二子模型对第一子模型进行评价,以进一步确定第一子模型的第一损失函数。可以分别根据第一损失函数和第二损失函数利用随机梯度下降算法等算法对第一子模型和第二子模型进行优化处理,在优化处理过程收敛时,可以确定训练得到的强化学习模型满足停止训练条件。其中,可以预先设置第一损失函数变化率阈值和/或第二损失函数变化率阈值,在第一损失函数的变化率小于或等于第一损失函数变化率阈值和/或第二损失函数变化率小于或等于第二损失函数变化率阈值时,可以确定优化处理过程收敛。可以根据对强化学习模型的准确率需求对第一损失函数变化率阈值、第二损失函数变化率阈值进行设置,阈值越小,所训练的强化学习模型计算量化位宽的准确度越高。
需要说明的是,在上述对待训练强化学习模型进行训练的过程中,所得到的训练好的强化训练模型中包括训练好的第一子模型和第二子模型。也即训练过程中所利用到的第一子模型和第二子模型均是需要训练的模型。
可以利用公式(2)计算第一损失函数lossactor,利用公式(3)计算第二损失函数losscritic
lossactor=-critic(si,ai) (2)
losscritic=(R-b+γ*critic(si+1,ai+1)-critic(si,ai))2 (3)
其中,critic(si,ai)为对应当前层的量化位宽的评价。R为上述奖励函数。critic(si+1,ai+1)为对应下一层的量化位宽的评价。b、γ为可以调整的参数。b是评价的指数滑动平均值。γ为奖励衰减系数,如0.9等。
在一种可能的实现方式中,该方法还可以包括:
统计待量化数据,确定每种待量化数据的统计结果;
利用每种待量化数据的统计结果以及所述量化位宽确定对应的量化参数,所述量化参数用于在神经网络运算过程中对所述待量化数据进行对应量化,
其中,所述量化参数包括点位置参数、缩放系数和偏移量中的至少一种。
在一种可能的实现方式中,统计结果可以包括以下任一种:每种待量化数据中的绝对值最大值、每种待量化数据中的最大值和最小值的距离的二分之一。其中,绝对值最大值是每种待量化数据中的最大值或最小值的绝对值。
在该实现方式中,统计结果可以是每种待量化数据在该待量化层的绝对值最大值、或者是最大值和最小值的距离的二分之一。
在该实现方式中,每种待量化数据在该待量化层中的绝对值最大值,可以通过每种待量化数据中的最大值和最小值方式确认。由于量化时,常规情况下会将待量化层的待量化数据对应的最大值和最小值保存下来,直接基于保存的待量化数据对应的最大值和最小值来获取绝对值最大值,无需消耗更多的资源去对待量化数据求绝对值,节省确定统计结果的时间。
在一种可能的实现方式中,缩放系数可以是根据点位置参数、统计结果、量化位宽确定的。
在一种可能的实现方式中,偏移量是根据每种待量化数据的统计结果确定的。
在一种可能的实现方式中,量化位宽可以为预设值。例如,量化位宽的预设值可以是8bit。
在一种可能的实现方式中,可以基于下述公式(4)、公式(5)对待量化数据进行量化,得到量化数据Ix
Fx≈Ix×2s×f+O (4)
Figure BDA0002289755660000091
其中,Fx为量化前x的浮点值,Ix为量化后x的n位二进制表示值,Ix的位数(也即量化位宽)为n,则Ix表示的范围为[-2n-1,2n-1-1]。S为点位置参数,取整数,其与定点数点的位置相关。f为缩放系数,取有理数且f∈(0.5,1]。O为偏移量,取有理数。round表示四舍五入的取整运算。round还可以替换为其他取整运算,例如,采用向上取整、向下取整、向零取整等取整运算,本公开对此不作限制。
本实施例中,对于神经网络运算过程中的神经网络训练、神经网络推理、神经网络微调,可以进行8bit量化,即n为8,Ix的取值范围为[-128,127]。
此时,用n位定点数可以表示浮点数的最大值A为2s(2n-1-1),那么n位定点数可以表示待量化数据的数域中最大值为2s(2n-1-1),n位定点数可以表示待量化数据的数域中最小值为-2s(2n-1-1)。由式(4)可知,采用第一种情况对应的量化参数对待量化数据进行量化时,量化间隔为2s×f,量化间隔记为C。
设Z为待量化数据的数域中所有浮点数的绝对值最大值(也即统计结果),则A需要包含Z,且Z要大于
Figure BDA0002289755660000101
因此有如下公式(6)约束:
2s(2n-1-1)≥Z>2s-1(2n-1-1) (6)
此时,根据公式(6)可得:
Figure BDA0002289755660000102
Figure BDA0002289755660000103
Figure BDA0002289755660000104
时,根据公式(6),Z可以无损精确表示。
当f=1时,可以计算出
Figure BDA0002289755660000105
其中,n位定点数可以表示待量化数据的数域中最大值为(2n-1-1)×2s×f+O,n位定点数可以表示待量化数据的数域中最小值为-(2n-1-1)×2s×f+O。
可以根据公式(7)对数据x量化后的n位二进制表示值Ix进行反量化,获得反量化数据
Figure BDA0002289755660000106
其中,反量化数据
Figure BDA0002289755660000107
的数据格式与对应的量化前的数据Fx的数据格式相同,均为浮点值。
Figure BDA0002289755660000108
在本实施例中,
Figure BDA0002289755660000111
在本实施例中,假定待量化数据的数域是以“0”为对称中心分布,Z为待量化数据的数域中所有浮点数的绝对值最大值,A为n位定点数可以表示的浮点数的最大值,浮点数A转换为定点数是2n-1-1。为了避免溢出,A需要包含Z。在实际运算中,神经网络运算过程中的浮点数据趋向于某个确定区间的正态分布,但是并不一定满足以“0”为对称中心的分布,这时用定点数表示时,容易出现溢出情况。为了改善这一情况,量化参数中引入偏移量。假定待量化数据的数域不是以“0”为对称中心分布,Zmin是待量化数据的数域中所有浮点数的最小值,Zmax是待量化数据的数域中所有浮点数的最大值。P为Zmin~Zmax之间的中心点,将待量化数据的数域整体偏移,使得平移后的待量化数据的数域以“0”为对称中心分布,平移后的待量化数据的数域中的绝对值最大值为Z。偏移量为“0”点到“P”点之间的水平距离,该距离称为偏移量O。其中,
Figure BDA0002289755660000112
在本实施例中,由公式(4)~公式(7)可知,点位置参数和缩放系数均与量化位宽有关。不同的量化位宽,导致点位置参数和缩放系数不同,从而影响量化精度。量化就是将以往用32bit或者64bit表达的高精度数转换成占用较少内存空间的定点数的过程,高精度数转换为定点数的过程就会在精度上引起一定的损失。在训练或微调过程中,在一定的迭代(iterations)的次数范围内,使用相同的量化位宽量化对神经网络运算的总体精度影响不大。超过一定的迭代次数,再使用同一量化位宽量化就无法满足训练或微调对精度的要求。这就需要随着训练或微调的过程对量化位宽n进行调整。简单地,可以人为将量化位宽n设置为预设值。在不同的迭代次数范围内,调用提前设置的对应的量化位宽n。
在一种可能的实现方式中,该方法还可以包括:根据量化位宽对应的量化误差,对量化位宽进行调整,以利用调整后的量化位宽确定量化参数。其中,量化误差是根据对应层中量化后的数据与对应的量化前的数据确定的。
在一种可能的实现方式中,根据量化位宽对应的量化误差,对量化位宽进行调整,可以包括:对量化误差与阈值进行比较,根据比较结果调整量化位宽。其中,阈值可以包括第一阈值和第二阈值中的至少一个。第一阈值大于第二阈值。
在一种可能的实现方式中,对量化误差与阈值进行比较,根据比较结果调整数据位,可以包括以下任一项:
在量化误差大于或等于第一阈值时,增加量化位宽;
在量化误差小于或等于第二阈值时,减少量化位宽;
在量化误差处于第一阈值和第二阈值之间时,量化位宽保持不变。
在该实现方式中,第一阈值和第二阈值可以为经验值,也可以为可变的超参数。常规的超参数的优化方法均适于第一阈值和第二阈值,这里不再赘述超参数的优化方案。
需要强调的是,可以将量化位宽按照固定的位数步长进行调整,也可以根据量化误差与误差阈值之间的差值的不同,按照可变的调整步长调整量化位宽,最终根据神经网络运算过程的实际需要,将量化位宽调整的更长或更短。比如:当前卷积层的量化位宽n为16,根据量化误差将量化位宽n调整为12。也就是说,在实际应用中,量化位宽n取值为12而不必取值为16即可满足神经网络运算过程中对精度的需求,这样在精度允许范围内可以大大提到定点运算速度,从而提升了人工智能处理器芯片的资源利用率。
在一种可能的实现方式中,该方法还可以包括:对量化后的数据进行反量化,获得反量化数据,其中,反量化数据的数据格式与对应的量化前的数据的数据格式相同;根据量化后的数据以及对应的反量化数据确定量化误差。
在一种可能的实现方式中,量化前的数据可以是待量化数据。
在一种可能的实现方式中,处理器可以根据待量化数据及其对应的反量化数据计算获得量化误差。设待量化数据为Z=[z1,z2…,zm],该待量化数据对应的反量化数据为Z(n)=[z1 (n),z2 (n)…,zm (n)]。处理器可以根据该待量化数据Z及其对应的翻反量化数据Z(n)确定误差项,并根据该误差项确定量化误差。
在一种可能的实现方式中,处理器可以分别计算待量化数据Z与对应的反量化数据Z(n)的差值,获得m个差值,并将该m个差值的和作为误差项。之后,处理器可以根据该误差项确定量化误差。具体的量化误差可以按照如下公式确定:
Figure BDA0002289755660000121
其中,i为待量化数据集合中第i个待量化数据的下标。i为大于或等于1、且小于或等于m的整数。
应当理解的是,上述量化误差的确定方式仅是本公开的一个示例,本领域技术人员可以根据实际需要对量化误差的确定方式进行设置,本公开对此不作限制。
需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本公开并不受所描述的动作顺序的限制,因为依据本公开,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于可选实施例,所涉及的动作和模块并不一定是本公开所必须的。
进一步需要说明的是,虽然图2、图3的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,图2、图3中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些子步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。
图5示出根据本公开实施例的神经网络的数据量化处理装置的框图。如图5所示,该装置应用于处理器,该装置可以包括数据获取模块41和位宽确定模块42。
数据获取模块41,获取神经网络中待量化层的状态数据。
位宽确定模块42,利用预先训练好的强化学习模型,对所述状态数据进行处理,得到所述待量化层的量化位宽,以根据所述量化位宽对所述待量化层中对应的待量化数据进行量化,
其中,所述状态数据包括:所述待量化层在神经网络中对应的层数、所述神经网络中所述待量化层的上一层的量化位宽、所述待量化层对应的运算类型、与所述运算类型相对应的运算参数、所述待量化层的输入数据和/或输出数据的数据参数。
在一种可能的实现方式中,所述数据参数包括数据高度、数据宽度、通道数中的至少一种,所述运算类型包括卷积运算和全连接运算中的任一种,
其中,在所述运算类型为卷积运算时,与所述卷积运算相对应的运算参数包括卷积核尺寸、滑动步长。
在一种可能的实现方式中,所述强化学习模型包括第一子模型,所述位宽确定模块,包括:
确定子模块,利用所述强化学习模型中的第一子模型对所述状态数据进行处理,得到所述待量化层的量化位宽。
在一种可能的实现方式中,所述装置还包括:
训练数据获取模块,获取训练好的神经网络中当前层的状态数据;
训练位宽确定模块,将所述当前层的状态数据输入待训练强化学习模型中的待训练第一子模型,得到所述当前层的量化位宽;
准确率确定模块,根据所述当前层的量化位宽对所述训练好的神经网络中的待量化数据进行量化,得到量化后神经网络,并确定所述量化后神经网络的模型准确率;
奖励函数确定模块,根据所述模型准确率、所有层中待量化数据的数据规模和所有层的量化位宽,得到对应于待训练强化学习模型的奖励函数;
模型训练模块,以所述奖励函数、模型准确率、所述当前层的状态数据和所述当前层的下一层的状态数据为样本,对待训练强化学习模型进行训练;
模型确定模块,在训练得到的强化学习模型满足停止训练条件时,停止训练,得到训练好的强化学习模型。
在一种可能的实现方式中,所述强化学习模型包括第二子模型,所述模型确定模块,包括:
第一损失函数确定子模块,利用所述第二子模型,对所述当前层的状态数据和所述当前层的量化位宽进行处理,得到对应所述当前层的量化位宽的评价,并根据所述评价得到所述第一子模型的第一损失函数;
第二损失函数确定子模块,根据所述奖励函数、当前层的第一损失函数以及下一层的第一损失函数,得到所述第二子模型的第二损失函数;
模型确定子模块,在所述第一损失函数和所述第二损失函数的变化率小于或等于对应的变化率阈值时,停止训练,得到训练好的强化学习模型。
在一种可能的实现方式中,所述装置还包括:
数据统计模块,统计待量化数据,确定每种待量化数据的统计结果;
参数确定模块,利用每种待量化数据的统计结果以及所述量化位宽确定对应的量化参数,所述量化参数用于在神经网络运算过程中对所述待量化数据进行对应量化,
其中,所述量化参数包括点位置参数、缩放系数和偏移量中的至少一种。
在一种可能的实现方式中,所述待量化数据包括神经网络的神经元、权值、梯度、偏置中的至少一种数据。
应该理解,上述的装置实施例仅是示意性的,本公开的装置还可通过其它的方式实现。例如,上述实施例中所述单元/模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。例如,多个单元、模块或组件可以结合,或者可以集成到另一个系统,或一些特征可以忽略或不执行。
另外,若无特别说明,在本公开各个实施例中的各功能单元/模块可以集成在一个单元/模块中,也可以是各个单元/模块单独物理存在,也可以两个或两个以上单元/模块集成在一起。上述集成的单元/模块既可以采用硬件的形式实现,也可以采用软件程序模块的形式实现。
所述集成的单元/模块如果以硬件的形式实现时,该硬件可以是数字电路,模拟电路等等。硬件结构的物理实现包括但不局限于晶体管,忆阻器等等。若无特别说明,所述人工智能处理器可以是任何适当的硬件处理器,比如CPU、GPU、FPGA、DSP和ASIC等等。若无特别说明,所述存储单元可以是任何适当的磁存储介质或者磁光存储介质,比如,阻变式存储器RRAM(Resistive Random Access Memory)、动态随机存取存储器DRAM(Dynamic RandomAccess Memory)、静态随机存取存储器SRAM(Static Random-Access Memory)、增强动态随机存取存储器EDRAM(Enhanced Dynamic Random Access Memory)、高带宽内存HBM(High-Bandwidth Memory)、混合存储立方HMC(Hybrid Memory Cube)等等。
所述集成的单元/模块如果以软件程序模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储器中。基于这样的理解,本公开的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储器中,包括若干指令用以使得一台计算机设备(可为个人计算机、服务器或者网络设备等)执行本公开各个实施例所述方法的全部或部分步骤。而前述的存储器包括:U盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
在一种可能的实现方式中,还公开了一种人工智能芯片,其包括了上述神经网络的数据量化处理装置。
在一种可能的实现方式中,还公开了一种板卡,其包括存储器件、接口装置和控制器件以及上述人工智能芯片;其中,所述人工智能芯片与所述存储器件、所述控制器件以及所述接口装置分别连接;所述存储器件,用于存储数据;所述接口装置,用于实现所述人工智能芯片与外部设备之间的数据传输;所述控制器件,用于对所述人工智能芯片的状态进行监控。
图6示出根据本公开实施例的板卡的结构框图,参阅图6,上述板卡除了包括上述芯片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超仪和/或心电图仪。
本公开实施例还提出一种计算机可读存储介质,其上存储有计算机程序指令,所述计算机程序指令被处理器执行时实现上述方法。计算机可读存储介质可以是非易失性计算机可读存储介质。
本公开实施例还提出一种电子设备,包括:处理器;用于存储处理器可执行指令的存储器;其中,所述处理器被配置为调用所述存储器存储的指令,以执行上述方法。
图7示出根据本公开实施例的一种电子设备800的框图。例如,电子设备800可以是移动电话,计算机,数字广播终端,消息收发设备,游戏控制台,平板设备,医疗设备,健身设备,个人数字助理等终端。
参照图7,电子设备800可以包括以下一个或多个组件:处理组件802,存储器804,电源组件806,多媒体组件808,音频组件810,输入/输出(I/O)的接口812,传感器组件814,以及通信组件816。
处理组件802通常控制电子设备800的整体操作,诸如与显示,电话呼叫,数据通信,相机操作和记录操作相关联的操作。处理组件802可以包括一个或多个处理器820来执行指令,以完成上述的方法的全部或部分步骤。此外,处理组件802可以包括一个或多个模块,便于处理组件802和其他组件之间的交互。例如,处理组件802可以包括多媒体模块,以方便多媒体组件808和处理组件802之间的交互。
存储器804被配置为存储各种类型的数据以支持在电子设备800的操作。这些数据的示例包括用于在电子设备800上操作的任何应用程序或方法的指令,联系人数据,电话簿数据,消息,图片,视频等。存储器804可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,如静态随机存取存储器(SRAM),电可擦除可编程只读存储器(EEPROM),可擦除可编程只读存储器(EPROM),可编程只读存储器(PROM),只读存储器(ROM),磁存储器,快闪存储器,磁盘或光盘。
电源组件806为电子设备800的各种组件提供电力。电源组件806可以包括电源管理系统,一个或多个电源,及其他与为电子设备800生成、管理和分配电力相关联的组件。
多媒体组件808包括在所述电子设备800和用户之间的提供一个输出接口的屏幕。在一些实施例中,屏幕可以包括液晶显示器(LCD)和触摸面板(TP)。如果屏幕包括触摸面板,屏幕可以被实现为触摸屏,以接收来自用户的输入信号。触摸面板包括一个或多个触摸传感器以感测触摸、滑动和触摸面板上的手势。所述触摸传感器可以不仅感测触摸或滑动动作的边界,而且还检测与所述触摸或滑动操作相关的持续时间和压力。在一些实施例中,多媒体组件808包括一个前置摄像头和/或后置摄像头。当电子设备800处于操作模式,如拍摄模式或视频模式时,前置摄像头和/或后置摄像头可以接收外部的多媒体数据。每个前置摄像头和后置摄像头可以是一个固定的光学透镜系统或具有焦距和光学变焦能力。
音频组件810被配置为输出和/或输入音频信号。例如,音频组件810包括一个麦克风(MIC),当电子设备800处于操作模式,如呼叫模式、记录模式和语音识别模式时,麦克风被配置为接收外部音频信号。所接收的音频信号可以被进一步存储在存储器804或经由通信组件816发送。在一些实施例中,音频组件810还包括一个扬声器,用于输出音频信号。
I/O接口812为处理组件802和外围接口模块之间提供接口,上述外围接口模块可以是键盘,点击轮,按钮等。这些按钮可包括但不限于:主页按钮、音量按钮、启动按钮和锁定按钮。
传感器组件814包括一个或多个传感器,用于为电子设备800提供各个方面的状态评估。例如,传感器组件814可以检测到电子设备800的打开/关闭状态,组件的相对定位,例如所述组件为电子设备800的显示器和小键盘,传感器组件814还可以检测电子设备800或电子设备800一个组件的位置改变,用户与电子设备800接触的存在或不存在,电子设备800方位或加速/减速和电子设备800的温度变化。传感器组件814可以包括接近传感器,被配置用来在没有任何的物理接触时检测附近物体的存在。传感器组件814还可以包括光传感器,如CMOS或CCD图像传感器,用于在成像应用中使用。在一些实施例中,该传感器组件814还可以包括加速度传感器,陀螺仪传感器,磁传感器,压力传感器或温度传感器。
通信组件816被配置为便于电子设备800和其他设备之间有线或无线方式的通信。电子设备800可以接入基于通信标准的无线网络,如WiFi,2G或3G,或它们的组合。在一个示例性实施例中,通信组件816经由广播信道接收来自外部广播管理系统的广播信号或广播相关信息。在一个示例性实施例中,所述通信组件816还包括近场通信(NFC)模块,以促进短程通信。例如,在NFC模块可基于射频识别(RFID)技术,红外数据协会(IrDA)技术,超宽带(UWB)技术,蓝牙(BT)技术和其他技术来实现。
在示例性实施例中,电子设备800可以被一个或多个应用专用集成电路(ASIC)、数字信号处理器(DSP)、数字信号处理设备(DSPD)、可编程逻辑器件(PLD)、现场可编程门阵列(FPGA)、控制器、微控制器、微处理器或其他电子元件实现,用于执行上述方法。
在示例性实施例中,还提供了一种非易失性计算机可读存储介质,例如包括计算机程序指令的存储器804,上述计算机程序指令可由电子设备800的处理器820执行以完成上述方法。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。上述实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
依据以下条款可更好地理解前述内容:
条款A1.一种神经网络的数据量化处理方法,应用于处理器,所述方法包括:
获取神经网络中待量化层的状态数据;
利用预先训练好的强化学习模型,对所述状态数据进行处理,得到所述待量化层的量化位宽,以根据所述量化位宽对所述待量化层中对应的待量化数据进行量化,
其中,所述状态数据包括:所述待量化层在神经网络中对应的层数、所述神经网络中所述待量化层的上一层的量化位宽、所述待量化层对应的运算类型、与所述运算类型相对应的运算参数、所述待量化层的输入数据和/或输出数据的数据参数。
条款A2.根据条款A1所述的方法,所述数据参数包括数据高度、数据宽度、通道数中的至少一种,所述运算类型包括卷积运算和全连接运算中的任一种,
其中,在所述运算类型为卷积运算时,与所述卷积运算相对应的运算参数包括卷积核尺寸、滑动步长。
条款A3.根据条款A1所述的方法,所述强化学习模型包括第一子模型,所述第一子模型用于对所述状态数据进行处理,得到所述待量化层的量化位宽。
条款A4.根据条款A3所述的方法,所述方法还包括针对所述强化学习模型的训练过程,所述训练过程包括:
获取训练好的神经网络中当前层的状态数据;
将所述当前层的状态数据输入待训练强化学习模型中的待训练第一子模型,得到所述当前层的量化位宽;
根据所述当前层的量化位宽对所述训练好的神经网络中的待量化数据进行量化,得到量化后神经网络,并确定所述量化后神经网络的模型准确率;
根据所述模型准确率、所有层中待量化数据的数据规模和所有层的量化位宽,得到对应于待训练强化学习模型的奖励函数;
以所述奖励函数、模型准确率、所述当前层的状态数据和所述当前层的下一层的状态数据为样本,对待训练强化学习模型进行训练;
在训练得到的强化学习模型满足停止训练条件时,停止训练,得到训练好的强化学习模型。
条款A5.根据条款A4所述的方法,所述强化学习模型包括第二子模型,所述在训练得到的强化学习模型满足停止训练条件时,停止训练,得到训练好的强化学习模型,包括:
利用所述第二子模型,对所述当前层的状态数据和所述当前层的量化位宽进行处理,得到对应所述当前层的量化位宽的评价,并根据所述评价得到所述第一子模型的第一损失函数;
根据所述奖励函数、当前层的第一损失函数以及下一层的第一损失函数,得到所述第二子模型的第二损失函数;
在所述第一损失函数和所述第二损失函数的变化率小于或等于对应的变化率阈值时,停止训练,得到训练好的强化学习模型。
条款A6.根据条款A1所述的方法,所述方法还包括:
统计待量化数据,确定每种待量化数据的统计结果;
利用每种待量化数据的统计结果以及所述量化位宽确定对应的量化参数,所述量化参数用于在神经网络运算过程中对所述待量化数据进行对应量化,
其中,所述量化参数包括点位置参数、缩放系数和偏移量中的至少一种。
条款A7.根据条款A1所述的方法,所述待量化数据包括神经网络的神经元、权值、梯度、偏置中的至少一种数据。
条款A8.一种神经网络的数据量化处理装置,应用于处理器,所述装置包括:
数据获取模块,获取神经网络中待量化层的状态数据;
位宽确定模块,利用预先训练好的强化学习模型,对所述状态数据进行处理,得到所述待量化层的量化位宽,以根据所述量化位宽对所述待量化层中对应的待量化数据进行量化,
其中,所述状态数据包括:所述待量化层在神经网络中对应的层数、所述神经网络中所述待量化层的上一层的量化位宽、所述待量化层对应的运算类型、与所述运算类型相对应的运算参数、所述待量化层的输入数据和/或输出数据的数据参数。
条款A9.根据条款A8所述的装置,所述数据参数包括数据高度、数据宽度、通道数中的至少一种,所述运算类型包括卷积运算和全连接运算中的任一种,
其中,在所述运算类型为卷积运算时,与所述卷积运算相对应的运算参数包括卷积核尺寸、滑动步长。
条款A10.根据条款A8所述的装置,所述强化学习模型包括第一子模型,所述位宽确定模块,包括:
确定子模块,利用所述强化学习模型中的第一子模型对所述状态数据进行处理,得到所述待量化层的量化位宽。
条款A11.根据条款A10所述的装置,所述装置还包括:
训练数据获取模块,获取训练好的神经网络中当前层的状态数据;
训练位宽确定模块,将所述当前层的状态数据输入待训练强化学习模型中的待训练第一子模型,得到所述当前层的量化位宽;
准确率确定模块,根据所述当前层的量化位宽对所述训练好的神经网络中的待量化数据进行量化,得到量化后神经网络,并确定所述量化后神经网络的模型准确率;
奖励函数确定模块,根据所述模型准确率、所有层中待量化数据的数据规模和所有层的量化位宽,得到对应于待训练强化学习模型的奖励函数;
模型训练模块,以所述奖励函数、模型准确率、所述当前层的状态数据和所述当前层的下一层的状态数据为样本,对待训练强化学习模型进行训练;
模型确定模块,在训练得到的强化学习模型满足停止训练条件时,停止训练,得到训练好的强化学习模型。
条款A12.根据条款A11所述的装置,所述强化学习模型包括第二子模型,所述模型确定模块,包括:
第一损失函数确定子模块,利用所述第二子模型,对所述当前层的状态数据和所述当前层的量化位宽进行处理,得到对应所述当前层的量化位宽的评价,并根据所述评价得到所述第一子模型的第一损失函数;
第二损失函数确定子模块,根据所述奖励函数、当前层的第一损失函数以及下一层的第一损失函数,得到所述第二子模型的第二损失函数;
模型确定子模块,在所述第一损失函数和所述第二损失函数的变化率小于或等于对应的变化率阈值时,停止训练,得到训练好的强化学习模型。
条款A13.根据条款A8所述的装置,所述装置还包括:
数据统计模块,统计待量化数据,确定每种待量化数据的统计结果;
参数确定模块,利用每种待量化数据的统计结果以及所述量化位宽确定对应的量化参数,所述量化参数用于在神经网络运算过程中对所述待量化数据进行对应量化,
其中,所述量化参数包括点位置参数、缩放系数和偏移量中的至少一种。
条款A14.根据条款A8所述的装置,所述待量化数据包括神经网络的神经元、权值、梯度、偏置中的至少一种数据。
条款A15.一种人工智能芯片,所述芯片包括如条款A8至条款A14中任意一项所述的神经网络的数据量化处理装置。
条款A16.一种电子设备,所述电子设备包括如条款A15所述的人工智能芯片。
条款A17.一种板卡,所述板卡包括:存储器件、接口装置和控制器件以及如条款A15所述的人工智能芯片;
其中,所述人工智能芯片与所述存储器件、所述控制器件以及所述接口装置分别连接;
所述存储器件,用于存储数据;
所述接口装置,用于实现所述人工智能芯片与外部设备之间的数据传输;
所述控制器件,用于对所述人工智能芯片的状态进行监控。
条款A18.根据条款A17所述的板卡,
所述存储器件包括:多组存储单元,每一组所述存储单元与所述人工智能芯片通过总线连接,所述存储单元为:DDR SDRAM;
所述芯片包括:DDR控制器,用于对每个所述存储单元的数据传输与数据存储的控制;
所述接口装置为:标准PCIE接口。
条款A19.一种电子设备,包括:
处理器;
用于存储处理器可执行指令的存储器;
其中,所述处理器被配置为调用所述存储器存储的指令,以执行条款A1至条款A7中任意一项所述的方法。
条款A20.一种计算机可读存储介质,其上存储有计算机程序指令,所述计算机程序指令被处理器执行时实现条款A1至条款A7中任意一项所述的方法。
以上对本公开实施例进行了详细介绍,本文中应用了具体个例对本公开的原理及实施方式进行了阐述,以上实施例的说明仅用于帮助理解本公开的方法及其核心思想。同时,本领域技术人员依据本公开的思想,基于本公开的具体实施方式及应用范围上做出的改变或变形之处,都属于本公开保护的范围。综上所述,本说明书内容不应理解为对本公开的限制。

Claims (7)

1.一种神经网络的数据量化处理方法,其特征在于,应用于处理器,所述方法包括:
获取神经网络中待量化层的状态数据;
利用预先训练好的强化学习模型,对所述状态数据进行处理,得到所述待量化层的量化位宽,以根据所述量化位宽对所述待量化层中对应的待量化数据进行量化,所述强化学习模型包括第一子模型和第二子模型,所述第一子模型用于对所述状态数据进行处理,得到所述待量化层的量化位宽,
其中,所述状态数据包括:所述待量化层在神经网络中对应的层数、所述神经网络中所述待量化层的上一层的量化位宽、所述待量化层对应的运算类型、与所述运算类型相对应的运算参数、所述待量化层的输入数据和/或输出数据的数据参数;
针对所述强化学习模型的训练过程,所述训练过程包括:
获取训练好的神经网络中当前层的状态数据;
将所述当前层的状态数据输入待训练强化学习模型中的待训练第一子模型,得到所述当前层的量化位宽;
根据所述当前层的量化位宽对所述训练好的神经网络中的待量化数据进行量化,得到量化后神经网络,并确定所述量化后神经网络的模型准确率;
根据所述模型准确率、所有层中待量化数据的数据规模和所有层的量化位宽,得到对应于待训练强化学习模型的奖励函数;
以所述奖励函数、模型准确率、所述当前层的状态数据和所述当前层的下一层的状态数据为样本,对待训练强化学习模型进行训练;
在训练得到的强化学习模型满足停止训练条件时,停止训练,得到训练好的强化学习模型;
所述在训练得到的强化学习模型满足停止训练条件时,停止训练,得到训练好的强化学习模型,包括:
利用所述第二子模型,对所述当前层的状态数据和所述当前层的量化位宽进行处理,得到对应所述当前层的量化位宽的评价,并根据所述评价得到所述第一子模型的第一损失函数;
根据所述奖励函数、当前层的第一损失函数以及下一层的第一损失函数,得到所述第二子模型的第二损失函数;
在所述第一子模型的第一损失函数和所述第二损失函数的变化率小于或等于对应的变化率阈值时,停止训练,得到训练好的强化学习模型。
2.根据权利要求1所述的方法,其特征在于,所述数据参数包括数据高度、数据宽度、通道数中的至少一种,所述运算类型包括卷积运算和全连接运算中的任一种,
其中,在所述运算类型为卷积运算时,与所述卷积运算相对应的运算参数包括卷积核尺寸、滑动步长。
3.根据权利要求1所述的方法,其特征在于,所述方法还包括:
统计待量化数据,确定每种待量化数据的统计结果;
利用每种待量化数据的统计结果以及所述量化位宽确定对应的量化参数,所述量化参数用于在神经网络运算过程中对所述待量化数据进行对应量化,
其中,所述量化参数包括点位置参数、缩放系数和偏移量中的至少一种,
所述待量化数据包括神经网络的神经元、权值、梯度、偏置中的至少一种数据。
4.一种神经网络的数据量化处理装置,其特征在于,应用于处理器,所述装置包括:
数据获取模块,获取神经网络中待量化层的状态数据;
位宽确定模块,利用预先训练好的强化学习模型,对所述状态数据进行处理,得到所述待量化层的量化位宽,以根据所述量化位宽对所述待量化层中对应的待量化数据进行量化,所述强化学习模型包括第一子模型和第二子模型,
其中,所述状态数据包括:所述待量化层在神经网络中对应的层数、所述神经网络中所述待量化层的上一层的量化位宽、所述待量化层对应的运算类型、与所述运算类型相对应的运算参数、所述待量化层的输入数据和/或输出数据的数据参数;
所述位宽确定模块,包括:
确定子模块,利用所述强化学习模型中的第一子模型对所述状态数据进行处理,得到所述待量化层的量化位宽;
所述装置还包括:
训练数据获取模块,获取训练好的神经网络中当前层的状态数据;
训练位宽确定模块,将所述当前层的状态数据输入待训练强化学习模型中的待训练第一子模型,得到所述当前层的量化位宽;
准确率确定模块,根据所述当前层的量化位宽对所述训练好的神经网络中的待量化数据进行量化,得到量化后神经网络,并确定所述量化后神经网络的模型准确率;
奖励函数确定模块,根据所述模型准确率、所有层中待量化数据的数据规模和所有层的量化位宽,得到对应于待训练强化学习模型的奖励函数;
模型训练模块,以所述奖励函数、模型准确率、所述当前层的状态数据和所述当前层的下一层的状态数据为样本,对待训练强化学习模型进行训练;
模型确定模块,在训练得到的强化学习模型满足停止训练条件时,停止训练,得到训练好的强化学习模型;
所述模型确定模块,包括:
第一损失函数确定子模块,利用所述第二子模型,对所述当前层的状态数据和所述当前层的量化位宽进行处理,得到对应所述当前层的量化位宽的评价,并根据所述评价得到所述第一子模型的第一损失函数;
第二损失函数确定子模块,根据所述奖励函数、当前层的第一损失函数以及下一层的第一损失函数,得到所述第二子模型的第二损失函数;
模型确定子模块,在所述第一子模型的第一损失函数和所述第二损失函数的变化率小于或等于对应的变化率阈值时,停止训练,得到训练好的强化学习模型。
5.一种人工智能芯片,其特征在于,所述芯片包括如权利要求4所述的神经网络的数据量化处理装置。
6.一种电子设备,其特征在于,包括:
处理器;
用于存储处理器可执行指令的存储器;
其中,所述处理器被配置为调用所述存储器存储的指令,以执行权利要求1至3中任意一项所述的方法。
7.一种计算机可读存储介质,其上存储有计算机程序指令,其特征在于,所述计算机程序指令被处理器执行时实现权利要求1至3中任意一项所述的方法。
CN201911175116.8A 2019-11-26 2019-11-26 数据处理方法、装置、计算机设备和存储介质 Active CN110889503B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201911175116.8A CN110889503B (zh) 2019-11-26 2019-11-26 数据处理方法、装置、计算机设备和存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201911175116.8A CN110889503B (zh) 2019-11-26 2019-11-26 数据处理方法、装置、计算机设备和存储介质

Publications (2)

Publication Number Publication Date
CN110889503A CN110889503A (zh) 2020-03-17
CN110889503B true CN110889503B (zh) 2021-05-04

Family

ID=69748841

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201911175116.8A Active CN110889503B (zh) 2019-11-26 2019-11-26 数据处理方法、装置、计算机设备和存储介质

Country Status (1)

Country Link
CN (1) CN110889503B (zh)

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113468935B (zh) * 2020-05-08 2024-04-02 上海齐感电子信息科技有限公司 人脸识别方法
CN111582476B (zh) * 2020-05-09 2024-08-02 北京百度网讯科技有限公司 自动量化策略搜索方法、装置、设备以及存储介质
CN113723599A (zh) * 2020-05-26 2021-11-30 上海寒武纪信息科技有限公司 神经网络计算方法、装置、板卡及计算机可读存储介质
CN113762518B (zh) * 2020-06-02 2024-07-12 中科寒武纪科技股份有限公司 数据处理方法、装置、计算机设备和存储介质
CN113780513B (zh) * 2020-06-10 2024-05-03 杭州海康威视数字技术股份有限公司 网络模型量化、推理方法、装置、电子设备及存储介质
CN112200296B (zh) * 2020-07-31 2024-04-05 星宸科技股份有限公司 网络模型量化方法、装置、存储介质及电子设备
WO2022027242A1 (zh) * 2020-08-04 2022-02-10 深圳市大疆创新科技有限公司 神经网络的数据处理方法、装置、可移动平台及计算机可读存储介质
WO2022087866A1 (zh) * 2020-10-28 2022-05-05 华为技术有限公司 人工智能ai芯片的控制装置、控制方法及控制器
CN112561049B (zh) * 2020-12-23 2022-06-17 首都师范大学 一种基于忆阻器的dnn加速器的资源分配方法及装置
CN112819145A (zh) * 2021-02-26 2021-05-18 上海阵量智能科技有限公司 芯片、神经网络训练系统、内存管理方法及装置、设备
CN113238988B (zh) * 2021-06-08 2023-05-30 中科寒武纪科技股份有限公司 优化深度神经网络的参数的处理系统、集成电路及板卡
CN113469327B (zh) * 2021-06-24 2024-04-05 上海寒武纪信息科技有限公司 执行转数提前的集成电路装置
CN117688993A (zh) * 2022-08-26 2024-03-12 寒武纪(西安)集成电路有限公司 数据类型选择方法、装置及可读存储介质

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106845640A (zh) * 2017-01-12 2017-06-13 南京大学 基于深度卷积神经网络的层内非均匀的等间隔定点量化方法
CN108596143A (zh) * 2018-05-03 2018-09-28 复旦大学 基于残差量化卷积神经网络的人脸识别方法及装置
CN109635936A (zh) * 2018-12-29 2019-04-16 杭州国芯科技股份有限公司 一种基于重训练的神经网络剪枝量化方法
CN109961147A (zh) * 2019-03-20 2019-07-02 西北大学 一种基于Q-Learning算法的自动化模型压缩方法
CN110188880A (zh) * 2019-06-03 2019-08-30 四川长虹电器股份有限公司 一种深度神经网络的量化方法及装置

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10373050B2 (en) * 2015-05-08 2019-08-06 Qualcomm Incorporated Fixed point neural network based on floating point neural network quantization
CN106485316B (zh) * 2016-10-31 2019-04-02 北京百度网讯科技有限公司 神经网络模型压缩方法以及装置
CN107480770B (zh) * 2017-07-27 2020-07-28 中国科学院自动化研究所 可调节量化位宽的神经网络量化与压缩的方法及装置
US11216719B2 (en) * 2017-12-12 2022-01-04 Intel Corporation Methods and arrangements to quantize a neural network with machine learning
US11948074B2 (en) * 2018-05-14 2024-04-02 Samsung Electronics Co., Ltd. Method and apparatus with neural network parameter quantization
CN109190754A (zh) * 2018-08-30 2019-01-11 北京地平线机器人技术研发有限公司 量化模型生成方法、装置和电子设备
CN109993296B (zh) * 2019-04-01 2020-12-29 安徽寒武纪信息科技有限公司 量化实现方法及相关产品
CN110135580B (zh) * 2019-04-26 2021-03-26 华中科技大学 一种卷积网络全整型量化方法及其应用方法

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106845640A (zh) * 2017-01-12 2017-06-13 南京大学 基于深度卷积神经网络的层内非均匀的等间隔定点量化方法
CN108596143A (zh) * 2018-05-03 2018-09-28 复旦大学 基于残差量化卷积神经网络的人脸识别方法及装置
CN109635936A (zh) * 2018-12-29 2019-04-16 杭州国芯科技股份有限公司 一种基于重训练的神经网络剪枝量化方法
CN109961147A (zh) * 2019-03-20 2019-07-02 西北大学 一种基于Q-Learning算法的自动化模型压缩方法
CN110188880A (zh) * 2019-06-03 2019-08-30 四川长虹电器股份有限公司 一种深度神经网络的量化方法及装置

Also Published As

Publication number Publication date
CN110889503A (zh) 2020-03-17

Similar Documents

Publication Publication Date Title
CN110889503B (zh) 数据处理方法、装置、计算机设备和存储介质
EP4020329A1 (en) Data processing method and apparatus, computer equipment and storage medium
US20210117768A1 (en) Data processing method, device, computer equipment and storage medium
CN112085189A (zh) 一种神经网络的量化参数确定方法及相关产品
CN111401550A (zh) 神经网络模型量化方法、装置及电子设备
CN112085182A (zh) 数据处理方法、装置、计算机设备和存储介质
CN112085187A (zh) 数据处理方法、装置、计算机设备和存储介质
CN112085176A (zh) 数据处理方法、装置、计算机设备和存储介质
CN113297128B (zh) 数据处理方法、装置、计算机设备和存储介质
CN111582432A (zh) 一种网络参数处理方法及装置
WO2021114904A1 (zh) 数据处理方法、装置、计算机设备和存储介质
CN113033813B (zh) 数据处理方法、装置、计算机设备和存储介质
US20230091541A1 (en) Data quantization processing method and apparatus, electronic device and storage medium
CN112766472B (zh) 数据处理方法、装置、计算机设备和存储介质
CN115329925A (zh) 神经网络结构确定方法及装置以及相关产品
CN115329924A (zh) 神经网络结构确定方法及装置以及相关产品
CN113298223B (zh) 数据处理方法、装置、计算机设备和存储介质
CN112765537B (zh) 数据处理方法、装置、计算机设备和存储介质
WO2021083100A1 (zh) 数据处理方法、装置、计算机设备和存储介质
CN113554147A (zh) 一种样本特征的处理方法、装置、电子设备及存储介质
WO2022194362A1 (en) Devices and methods for providing computationally efficient neural networks
CN113723598A (zh) 神经网络计算方法、装置、板卡及计算机可读存储介质
CN117852583A (zh) 语言模型的压缩方法和文本生成方法
CN113723597A (zh) 神经网络计算方法、装置、板卡及计算机可读存储介质
CN113112008A (zh) 用于神经网络数据量化的方法、装置和计算机可读存储介质

Legal Events

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