CN111639745B - 一种数据处理方法及装置 - Google Patents
一种数据处理方法及装置 Download PDFInfo
- Publication number
- CN111639745B CN111639745B CN202010404466.3A CN202010404466A CN111639745B CN 111639745 B CN111639745 B CN 111639745B CN 202010404466 A CN202010404466 A CN 202010404466A CN 111639745 B CN111639745 B CN 111639745B
- Authority
- CN
- China
- Prior art keywords
- neural network
- trained
- quantization
- loss
- sample
- 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
Links
- 238000003672 processing method Methods 0.000 title abstract description 7
- 238000013528 artificial neural network Methods 0.000 claims abstract description 480
- 238000013139 quantization Methods 0.000 claims abstract description 322
- 238000012549 training Methods 0.000 claims abstract description 146
- 238000000034 method Methods 0.000 claims abstract description 132
- 238000012545 processing Methods 0.000 claims abstract description 119
- 230000008569 process Effects 0.000 claims abstract description 81
- 230000004913 activation Effects 0.000 claims description 58
- 230000000875 corresponding effect Effects 0.000 claims description 45
- 238000003860 storage Methods 0.000 claims description 21
- 238000011002 quantification Methods 0.000 claims description 16
- 238000004590 computer program Methods 0.000 claims description 15
- 230000002596 correlated effect Effects 0.000 claims description 9
- 238000002360 preparation method Methods 0.000 claims description 4
- 230000000694 effects Effects 0.000 abstract description 15
- 230000009286 beneficial effect Effects 0.000 abstract description 4
- 238000010586 diagram Methods 0.000 description 15
- 230000006870 function Effects 0.000 description 14
- 230000006872 improvement Effects 0.000 description 9
- 238000005516 engineering process Methods 0.000 description 8
- 238000013461 design Methods 0.000 description 7
- 238000013527 convolutional neural network Methods 0.000 description 6
- 101150036841 minJ gene Proteins 0.000 description 6
- 238000004364 calculation method Methods 0.000 description 4
- 238000007667 floating Methods 0.000 description 3
- 210000005036 nerve Anatomy 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 230000005540 biological transmission Effects 0.000 description 2
- 238000012512 characterization method Methods 0.000 description 2
- 230000007613 environmental effect Effects 0.000 description 2
- 238000004519 manufacturing process Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- KXLUWEYBZBGJRZ-POEOZHCLSA-N Canin Chemical compound O([C@H]12)[C@]1([C@](CC[C@H]1C(=C)C(=O)O[C@@H]11)(C)O)[C@@H]1[C@@]1(C)[C@@H]2O1 KXLUWEYBZBGJRZ-POEOZHCLSA-N 0.000 description 1
- GPFVKTQSZOQXLY-UHFFFAOYSA-N Chrysartemin A Natural products CC1(O)C2OC2C34OC3(C)CC5C(CC14)OC(=O)C5=C GPFVKTQSZOQXLY-UHFFFAOYSA-N 0.000 description 1
- 230000004075 alteration Effects 0.000 description 1
- 238000013473 artificial intelligence Methods 0.000 description 1
- 230000004888 barrier function Effects 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 238000012217 deletion Methods 0.000 description 1
- 230000037430 deletion Effects 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 239000012535 impurity Substances 0.000 description 1
- 230000010365 information processing Effects 0.000 description 1
- 230000005055 memory storage Effects 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 238000010606 normalization Methods 0.000 description 1
- 229920001296 polysiloxane Polymers 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 239000010979 ruby Substances 0.000 description 1
- 229910001750 ruby Inorganic materials 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/045—Combinations of networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/17—Details of further file system functions
- G06F16/174—Redundancy elimination performed by the file system
- G06F16/1744—Redundancy elimination performed by the file system using compression, e.g. sparse files
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
- G06N3/084—Backpropagation, e.g. using gradient descent
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Health & Medical Sciences (AREA)
- Artificial Intelligence (AREA)
- Biophysics (AREA)
- Evolutionary Computation (AREA)
- Biomedical Technology (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- Computational Linguistics (AREA)
- Life Sciences & Earth Sciences (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Health & Medical Sciences (AREA)
- Databases & Information Systems (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
Abstract
本说明书公开了一种数据处理方法及装置,对第二量化模型进行训练,得到的训练后的第二量化模型具备相当于第一量化模型的量化效果;且,通过该训练后的第二量化模型对该神经网络的至少部分参数进行量化,能够使得在针对该神经网络的调整(训练)过程中得到的损失具有一定的梯度。进而能够避免在对该神经网络的调整时,发生由于量化引起的无法获得梯度的现象。此外,本说明书中的方法及装置在所述调整的过程中,能够得到神经网络的真实的损失,则根据该真实的损失调整得到的调整后的神经网络,也具备较好的数据处理能力,有利于保证数据处理结果的准确性。
Description
技术领域
本申请涉及互联网技术领域,尤其涉及一种数据处理方法及装置。
背景技术
人工智能技术近来得到广泛的发展和应用,各种神经网络技术的研究和应用成为技术热点。例如,在自动驾驶技术中,深度神经网络(DNN)或卷积神经网络(CNN)广泛应用于车辆、行人、交通灯检测等感知计算。
为使得神经网络能够高质量的处理交通环境中的各信息,该用于信息处理的神经网络往往较为复杂,具体表现为:神经网络参数较多和数据处理复杂程度高。这就使得神经网络所需的储存空间和计算成本均较高。若将神经网络应用在无人车、智能终端等容量和计算能力均十分有限,且对数据处理质量要求较高的硬件环境中,将严重影响神经网络的功能的发挥、影响对数据处理的结果的使用,进而影响用户体验。
由此,如何有效的对神经网络的至少部分参数进行压缩,降低神经网络处理数据杂程度,并避免对神经网络的性能的造成影响,成为亟待解决的问题。
发明内容
本说明书实施例提供一种数据处理的方法及装置,以部分的解决现有技术存在的上述问题。
本说明书实施例采用下述技术方案:
本说明书提供的一种数据处理的方法,所述方法包括:
确定预先训练的神经网络、预设的样本以及第一量化模型;
采用待训练的第二量化模型对所述预先训练的神经网络的至少部分参数进行量化,得到第一待定神经网络;所述待训练的第二量化模型是根据所述第一量化模型生成的;
将所述样本输入所述第一待定神经网络,得到所述第一待定神经网络输出的处理结果,作为中间结果;
根据所述中间结果和所述样本对应的标签,确定所述第一待定神经网络的损失,作为中间损失;
以所述中间损失最小化,且所述中间损失的梯度最大化为训练目标,训练所述待训练的第二量化模型,得到训练后的第二量化模型;
采用所述训练后的第二量化模型,对所述预先训练的神经网络的至少部分参数进行量化,得到第二待定神经网络;
根据所述预设的样本,以采用第二待定神经网络对所述样本进行处理时的损失最小化为训练目标,对第二待定神经网络进行调整,得到第三待定神经网络;
当需要对待处理数据进行处理时,采用所述第一量化模型对所述第三待定神经网络进行量化,得到量化神经网络,将所述待处理数据输入所述量化神经网络,得到对所述待处理数据的处理结果。
可选地,所述第二量化模型包括:用于对所述神经网络的权重进行量化的量化第一子模型;
采用所述待训练的第二量化模型对所述预先训练的神经网络的至少部分参数进行量化,得到第一待定神经网络,具体包括:
采用所述待训练的量化第一子模型对所述预先训练的神经网络的权重进行量化,得到权重量化后的神经网络,作为第一待定神经网络。
可选地,所述第二量化模型包括:用于对所述神经网络生成的至少部分激活值进行量化的量化第二子模型;
将所述样本输入所述第一待定神经网络,得到所述第一待定神经网络输出的处理结果,具体包括:
将所述样本输入所述第一待定神经网络;
针对所述第一待定神经网络的每个层,采用所述量化第二子模型对该层输出的激活值进行量化,得到该层输出的量化后的激活值;
根据每个层输出的量化后的激活值,得到第一待定神经网络输出的处理结果。
可选地,以所述中间损失最小化,且所述中间损失的梯度最大化为训练目标,训练所述待训练的第二量化模型,得到训练后的第二量化模型,具体包括:
将所述样本输入所述预先训练的神经网络,得到所述预先训练的神经网络输出的处理结果,作为参考结果;
根据所述参考结果和所述样本对应的标签,确定所述预先训练的神经网络处理所述样本时的参考损失;
根据所述参考损失和所述中间损失,确定通过所述待训练的第二量化模型量化该预先训练的神经网络造成的量化损失;
以所述量化损失最小化,且所述中间损失的梯度最大化为训练目标,训练所述待训练的第二量化模型,得到训练后的第二量化模型。
可选地,根据所述参考损失和所述中间损失,确定通过所述待训练的第二量化模型量化该预先训练的神经网络造成的量化损失,具体包括:
根据所述参考损失,确定所述参考损失的梯度;
确定所述参考损失的梯度和所述中间损失的梯度之间的差异;
根据所述差异和所述中间损失的梯度,确定通过所述待训练的量化模型量化该神经网络的量化损失,其中,所述量化损失与所述差异正相关,所述量化损失与所述中间损失的梯度负相关。
可选地,根据所述预设的样本,以采用第二待定神经网络对所述样本进行处理时的损失最小化为训练目标,对第二待定神经网络进行调整,得到第三待定神经网络,具体包括:
将所述预设的样本输入所述第二待定神经网络,得到所述第二待定神经网络输出的处理结果;
根据所述第二待定神经网络输出的处理结果和所述样本对应的标签,确定所述第二待定神经网络对所述样本进行处理时的损失;
以所述第二待定神经网络对所述样本进行处理时的损失最小化为目标,对所述训练后的第二量化模型和所述第二待定神经网络进行调整,得到中间第二量化模型和中间第二待定神经网络;
判断中间第二待定神经网络是否满足预设条件;
若是,则将所述中间第二待定神经网络确定为第三待定神经网络;
否则,采用中间第二量化模型,对所述中间第二待定神经网络的至少部分参数进行量化,得到量化后的中间第二待定神经网络,并根据量化后的中间第二待定神经网络,继续对所述中间第二量化模型和中间第二待定神经网络进行训练。
可选地,预先训练的神经网络,具体包括:
获取待训练的神经网络和用于预训练所述神经网络的预训练样本;
采用所述第一量化模型对所述待训练的神经网络的至少部分参数进行量化,得到量化后的待训练的神经网络;
根据所述预训练样本对所述量化后的待训练的神经网络进行训练,得到预训练后的神经网络;
确定预先训练的神经网络、预设的样本,具体包括:
确定预训练后的神经网络,为预先训练的神经网络;并且,确定所述预训练样本,为预设的样本。
本说明书提供的数据处理的装置,包括:
准备模块,用于确定预先训练的神经网络、预设的样本以及第一量化模型;
第一待定神经网络确定模块,用于采用待训练的第二量化模型对所述预先训练的神经网络的至少部分参数进行量化,得到第一待定神经网络;所述待训练的第二量化模型是根据所述第一量化模型生成的;
中间结果确定模块,用于将所述样本输入所述第一待定神经网络,得到所述第一待定神经网络输出的处理结果,作为中间结果;
中间损失确定模块,用于根据所述中间结果和所述样本对应的标签,确定所述第一待定神经网络的损失,作为中间损失;
第二量化模型训练模块,用于以所述中间损失最小化,且所述中间损失的梯度最大化为训练目标,训练所述待训练的第二量化模型,得到训练后的第二量化模型;
第二待定神经网络确定模块,用于采用所述训练后的第二量化模型,对所述预先训练的神经网络的至少部分参数进行量化,得到第二待定神经网络;
第三待定神经网络确定模块,用于根据所述预设的样本,以采用第二待定神经网络对所述样本进行处理时的损失最小化为训练目标,对第二待定神经网络进行调整,得到第三待定神经网络;
数据处理模块,用于当需要对待处理数据进行处理时,采用所述第一量化模型对所述第三待定神经网络进行量化,得到量化神经网络,将所述待处理数据输入所述量化神经网络,得到对所述待处理数据的处理结果。
本说明书提供的一种计算机可读存储介质,所述存储介质存储有计算机程序,所述计算机程序被处理器执行时实现上述的一种数据处理的方法。
本说明书提供的一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现上述一种数据处理的方法。
本说明书实施例采用的上述至少一个技术方案能够达到以下有益效果:
本说明书实施例中的一种数据处理方法及装置,对第二量化模型进行训练,得到的训练后的第二量化模型具备相当于第一量化模型的量化效果;且,通过该训练后的第二量化模型对该神经网络的至少部分参数进行量化,能够使得在针对该神经网络的调整(训练)过程中得到的损失具有一定的梯度。进而能够避免在对该神经网络的调整时,发生由于量化引起的无法获得梯度的现象。此外,本说明书中的方法及装置在所述调整的过程中,能够得到神经网络的真实的损失,则根据该真实的损失调整得到的调整后的神经网络,也具备较好的数据处理能力,有利于保证数据处理结果的准确性。即,通过本说明书中的方法及装置得到的量化神经网络,其参数和数据处理的复杂程度均能够得到有效的压缩且不会对其数据处理能力和数据处理效果造成明显影响。则本说明书中的数据处理方法及装置,更适于加载于诸如无人车、智能终端等储存空间有限且对计算性能、计算质量要求较高的硬件环境。
附图说明
此处所说明的附图用来提供对本说明书的进一步理解,构成本说明书的一部分,本说明书的示意性实施例及其说明用于解释本说明书,并不构成对本说明书的不当限定。在附图中:
图1为本说明书实施例提供的一种数据处理过程;
图2为本说明书实施例提供的一种数据处理过程的示意图;
图3a为本说明书实施例提供的一种针对神经网络进行的第一次训练过程的示意图;
图3b为本说明书实施例提供的一种针对第二量化模型进行的第一次训练过程的示意图;
图3c为本说明书实施例提供的一种针对神经网络进行的第二次训练过程的示意图;
图4为本说明书实施例提供的一种数据处理装置的结构示意图;
图5为本说明书实施例提供的对应于图1的一种电子设备部分结构示意图。
具体实施方式
为使本说明书的目的、技术方案和优点更加清楚,下面将结合本说明书具体实施例及相应的附图对本说明书技术方案进行清楚、完整地描述。显然,所描述的实施例仅是本说明书一部分实施例,而不是全部的实施例。基于说明书中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本说明书保护的范围。
以下结合附图,详细说明本说明书各实施例提供的技术方案。
图1为本说明书实施例提供的一种数据处理的过程,具体可包括以下步骤:
S100:确定预先训练的神经网络、预设的样本以及第一量化模型。
本说明书中的第一量化模型用于对神经网络的至少部分参数进行量化。神经网络的参数可以是预先训练的神经网络的权重、预先训练的神经网络进行数据处理时生成的激活值中的至少一种。该针对参数进行的量化,可以是二值化(例如将参数量化为“1”或“-1”)或三值化(例如将参数量化为“1”、“0”或“-1”)。
可选地,该神经网络是卷积神经网络。该卷积神经网络可以包括若干个层,第一量化模型可以对该卷积神经网络的至少部分参数,分别地进行量化。
本说明书中的数据处理过程可以应用于无人驾驶技术领域。例如,本说明书中的过程可以在无人车、道路设施(例如设置于道路环境中的监控设施)中应用。
以无人车根据其采集的图像确定行驶策略的场景为例,该预先训练的神经网络可以用于执行多分类任务;该预设的样本可以是历史上针对交通环境采集的图像;该样本对应的标签可以是该图像中的各动态障碍物的分类结果。或者,在该场景中,该预先训练的神经网络可以用于生成行驶策略,该预设的样本可以是无人车所处环境中的各障碍物的运动状态,该样本对应的标签可以是行驶策略。
S102:采用待训练的第二量化模型对所述预先训练的神经网络的至少部分参数进行量化,得到第一待定神经网络;所述待训练的第二量化模型是根据所述第一量化模型生成的。
在确定出第一量化模型之后,可进一步根据该第一量化模型得到待训练的第二量化模型。该待训练的第二量化模型也可用于对神经网络的至少部分参数进行量化。
相较于第一量化模型,该待训练的第二量化模型对参数的量化效果与第一量化模型的量化效果类似,但该待训练的第二量化模型对参数的处理并不是二值化或三值化处理。则第一待定神经网络中,经待训练的第二量化模型量化过的至少部分参数仍然可以为浮点数。则采用第二量化模型对神经网络进行量化,仍然能够得到该神经网络在进行数据处理时的损失的真实的梯度。
具体地,可以针对所述预先训练的神经网络的至少部分参数,将该参数输入待训练的第二量化模型,得到该待训练的第二量化模型输出的量化后的该参数。将得到的各量化后的参数,作为所述预先训练的神经网络的参数,得到第一待定神经网络。
S104:将所述样本输入所述第一待定神经网络,得到所述第一待定神经网络输出的处理结果,作为中间结果。
可选地,若待训练的第二量化模型,对预先训练的神经网络生成的参数的量化范围包括激活值,则本步骤,可以在第一待定神经网络进行数据处理时,采用待训练的第二量化模型,对第一待定神经网络生成的至少部分激活值进行量化。
S106:根据所述中间结果和所述样本对应的标签,确定所述第一待定神经网络的损失,作为中间损失。
由于对神经网络的参数的量化,必然会一定程度的影响到神经网络的数据处理能力,本说明书中的第一待定神经网络的数据处理能力,也会因为该待训练的第二量化模型的量化而受到影响。
则通过本步骤得到的该第一待定神经网络的中间损失,可以包括:由预先训练的神经网络自身的数据处理能力造成的损失,和由待训练的第二量化模型的量化造成的损失。
S108:以所述中间损失最小化,且所述中间损失的梯度最大化为训练目标,训练所述待训练的第二量化模型,得到训练后的第二量化模型。
可见,本说明书在针对第二量化模型的训练过程中,以所述中间损失最小化为训练目标,对第二量化模型的至少部分参数进行调整,得到的训练后的第二量化模型,至少能够降低对预先训练的神经网络的量化造成的负面影响,进而降低由待训练的第二量化模型的量化造成的损失。
此外,本说明书针对第二量化模型的训练的目标还包括:最大化中间损失的梯度。在通过梯度反向传播训练神经网络的方法中,损失的梯度是否真实、是否有效(梯度的大小和梯度的有效性正相关)较大程度的决定了训练的效果。则本说明书中的过程,不仅仅能够避免诸如二值或三值量化引起的无法确定真实梯度的现象,还能够通过训练后的第二量化模型增加梯度的有效性,以提高后续的针对预先训练的神经网络进行的调整的效果。
S110:采用所述训练后的第二量化模型,对所述预先训练的神经网络的至少部分参数进行量化,得到第二待定神经网络。
具体地,可以针对所述预先训练的神经网络的至少部分参数,将该参数输入训练后的第二量化模型,得到该训练后的第二量化模型输出的量化后的该参数。将得到的各量化后的参数,作为所述预先训练的神经网络的参数,得到第二待定神经网络。
本步骤通过训练后的第二量化模型进行量化的参数,可以是预先训练的神经网络权重、第二待定神经网络进行数据处理时生成的激活值中的至少一种。
可选地,若训练后的第二量化模型对预先训练的神经网络生成的参数的量化范围包括激活值,则本步骤,可以在第二待定神经网络进行数据处理时,采用训练后的第二量化模型,对第二待定神经网络生成的至少部分激活值进行量化。
此外,本步骤得到的第二待定神经网络,仍然保留预先训练的神经网络的各参数,在第二待定神经网络进行正向传播时,以第二待定神经网络量化后的参数进行相应的计算。
S112:根据所述预设的样本,以采用第二待定神经网络对所述样本进行处理时的损失最小化为训练目标,对第二待定神经网络进行调整,得到第三待定神经网络。
经过前述的训练步骤得到的训练后的第二量化模型,具备较好的量化能力。该较好的量化能力具体可以体现在:训练后的第二量化模型针对参数的量化效果上更趋近于第一量化模型;由该训练后的第二量化模型对预先训练的神经网络进行量化引起的损失更低;由该训练后的第二量化模型对预先训练的神经网络进行的量化,能够保证预先训练的神经网络处理数据时的损失具有有效且真实的梯度。
则本步骤针对第二神经网络进行的调整(训练),一方面能够降低由该训练后的第二量化模型的量化带来的负面影响;另一方面,由于训练后的第二量化模型不会在调整的过程中造成第二神经网络的梯度缺失或严重失真,则本步骤涉及的调整过程,能够得到数据处理能力较佳的第三待定神经网络;进一步地,通过本步骤对第二神经网络进行的调整时,该第二神经网络的收敛速度也较快。
具体地,该调整的过程可以是:将所述预设的样本,输入所述第二待定神经网络,得到所述第二待定神经网络输出的处理结果。根据所述第二待定神经网络输出的处理结果,确定所述第二待定神经网络的损失。
然后,判断所述第二待定神经网络的损失是否符合预设条件,若是,则将该第二待定神经网络作为第三待定神经网络;若否,则根据确定出的第二待定神经网络的损失,以降低第二待定神经网络的损失为目标,对所述第二待定神经网络的至少部分参数进行调整(该调整的对象为“第二待定神经网络中保留的预先训练的神经网络的各参数”,而非“采用第二待定神经网络量化得到的参数”);采用所述训练后的第二量化模型,对该调整后的第二待定神经网络的至少部分参数进行量化,直至所述第二待定神经网络的损失符合预设条件。
S114:当需要对待处理数据进行处理时,采用所述第一量化模型对所述第三待定神经网络进行量化,得到量化神经网络,将所述待处理数据输入所述量化神经网络,得到对所述待处理数据的处理结果。
本步骤通过第一量化模型进行量化的参数,可以是第三待定神经网络的权重、量化神经网络进行数据处理时生成的激活值中的至少一种。
该采用第一量化模型对所述第三待定神经网络进行量化,得到量化神经网络的过程,具体可以是:针对第三待定神经网络的至少部分参数,将该参数输入第一量化模型,得到该第一量化模型输出的量化后的参数。将该量化后的参数作为量化神经网络的参数。
仍以前述的以无人车根据其采集的图像确定行驶策略的场景为例,该待处理数据可以是采集的环境图像,该待处理数据的处理结果,可以是该采集的环境图像中的各动态障碍物的分类结果。或者,该待处理数据可以是该无人车所处环境中的各障碍物的运动状态,该待处理数据的处理结果可以是行驶策略。
由前述步骤得到的第三待定神经网络具备较好的数据处理能力,该第三待定神经网络的至少部分参数仍然可以是浮点数。
由于在线上使用时,对浮点数进行的计算所消耗的资源的量较大、计算的复杂程度的较高,本步骤采用第一量化模型对第三待定神经网络的至少部分参数进行量化,得到量化神经网络。该量化神经网络相较于第三待定神经网络的参数更加精简、数据处理效率更高、消耗的计算资源更少。
下面对本说明书中所述的数据处理的过程进行详细说明。
由前述内容可知,为实现本说明书中的技术的方案的技术目的,在实施本说明书中的技术方案,在对量化模型(包括但不限于第二量化模型)进行了设计的基础上,还对本说明书涉及的神经网络、量化模型进行了至少一次训练/调整。
下文将分别针对“训练”和“设计”进行分别的说明。
一、本说明书的数据处理过程涉及的至少部分训练过程。
现按照最佳的执行次序,对本说明书中的过程可能涉及的至少部分训练过程,进行说明。
需要指出的是,以下介绍的各训练过程并非均为本说明书中数据处理方法必须的训练过程;并且,以下介绍的各训练过程的执行次序,并非对本说明书可能涉及的训练过程的执行次序的限定。
1)针对神经网络进行的第一次训练(预训练)。
通过本说明书中的过程得到的预先训练的神经网络,具备一定的数据处理能力,使得后续的其他的训练过程均能够具备一定的训练的方向性,有利于提高后续的其他的训练过程的训练效率。该针对神经网络进行的第一次训练,可以在步骤S100之前执行。
具体地,如图2和图3a所示,该预训练的过程可以是:
①获取待训练的神经网络和用于预训练所述神经网络的预训练样本。
②采用所述第一量化模型对所述待训练的神经网络的至少部分参数进行量化,得到量化后的待训练的神经网络。
本步骤通过第一量化模型进行量化的参数,可以是待训练的神经网络权重、量化后的待训练的神经网络进行数据处理时生成的激活值中的至少一种。
可选地,如图3a所示,本说明书在针对神经网络的预训练过程中,对各层对应的权重(如,wk和wk+1)以及各层输出的激活值(如,ak和ak+1)均进行量化
③针对每个预训练样本,将该预训练样本输入所述待训练的神经网络,得到所述待训练的神经网络的输出。
④根据所述待训练的神经网络的输出和该预训练样本对应的标签,确定该待训练的神经网络的损失。
⑤以该待训练的神经网络的损失最小化为目标,对该待训练的神经网络的至少部分参数进行调整,得到调整后的待训练的神经网络。
在本步骤中,可以通过将待训练的神经网络的损失的梯度反向传播的方式,对该待训练的神经网络的至少部分参数进行调整。
本说明书一个可选的实施例中,该第一量化模型可以是符号函数,则该待训练的神经网络的损失的梯度可以通过直接估计(Straight Through Estimato,STE)的方式得到。
⑥判断该调整后的待训练的神经网络是否满足预设的预训练条件,若是,则确定调整后的待训练的神经网络,为预先训练的神经网络。若否,采用所述第一量化模型对所述调整后的待训练的神经网络的至少部分参数进行量化,根据所述预训练样本,继续对该采用所述第一量化模型量化后的、所述调整后的待训练的神经网络进行训练,直至调整后的待训练的神经网络满足预设的预训练条件。
可选地,本步骤中针对神经网络进行的预训练采用的预训练样本,可以作为预设的样本,用于本说明书涉及的其他训练过程。
此外,该针对神经网络进行的预训练过程,并非本说明书必须的过程。
2)针对第二量化模型进行的第一次训练。
对应于步骤S108,该第二量化模型进行的训练,一定程度的决定了最终得到的量化神经网络的使用效果。如图2和图3b所示,本说明书中训练第二量化模型的过程可以是:
①将所述样本输入所述预先训练的神经网络,得到所述预先训练的神经网络输出的处理结果,作为参考结果。
②根据所述参考结果和所述样本对应的标签,确定所述预先训练的神经网络处理所述样本时的参考损失。
该预先训练的神经网络此时并未经过量化,则该参考损失能够代表该预先训练的神经网络在进行量化前的、原本的数据处理能力。
③根据所述参考损失和所述中间损失,确定通过所述待训练的第二量化模型量化该预先训练的神经网络造成的量化损失。
可选地,如图3b所示,本说明书在针对第二量化模型进行的第一次训练过程中,对各层对应的权重(如,wk和wk+1)以及各层输出的激活值(如,ak和ak+1)均进行量化。
由前述内容可知,由步骤S106得到的中间损失包含了两个部分:由预先训练的神经网络自身的数据处理能力造成的损失(即,参考损失),和由待训练的第二量化模型的量化造成的损失(即,量化损失)。则通过中间损失和参考损失,就能够计算得到量化损失。
在本说明书一个可选的实施例中,确定量化损失的过程可以是:根据所述参考损失,确定所述参考损失的梯度。根据得到的中间损失,确定所述中间损失的梯度。然后,确定所述参考损失的梯度和所述中间损失的梯度之间的差异。根据所述差异和所述中间损失的梯度,确定通过所述量化模型量化该神经网络的量化损失。
在理想状态下,训练后的第二量化模型不会对所述预先训练的神经网络的数据处理能力造成影响,此时,所述差异应该为0。并且,该中间损失的梯度也较大,有利于保证后续对神经网络的训练效果。基于该思路,本说明书中的所述量化损失与所述差异正相关,所述量化损失与所述中间损失的梯度负相关。
其中,确定参考损失的梯度的步骤和确定中间损失的梯度的步骤的执行次序,不分先后。
例如,可以定义量化损失minJ1为:
式中:f是预设的损失函数,该损失函数可以交叉熵损失函数,用于确定该预先训练的神经网络的输出和标签之间的差异。Δfr是中间损失的梯度,Δf是参考损失的梯度。‖Δfr‖2是中间损失的梯度的二范数。‖Δf-Δfr‖2是参考损失的梯度和所述中间损失的梯度之间的差异的二范数。q是超参数,可以通过经验获得。
再例如,定义预先训练的神经网络的量化损失minJ1还可以为:
式中:X是输入该预先训练的神经网络的样本。
④以所述量化损失最小化,且所述中间损失的梯度最大化为训练目标,训练所述待训练的第二量化模型,得到训练后的第二量化模型。
具体地,该训练第二量化模型的过程可以是:根据确定出的量化损失和中间损失的梯度,以所述量化损失最小化,且所述中间损失的梯度最大化为训练目标,对第二量化模型的至少部分参数进行调整,得到调整后的第二量化模型。
判断调整后的第二量化模型是否满足预设的第二量化模型训练条件,若是,则将调整后的第二量化模型作为训练后的第二量化模型。若否,则采用调整后的第二量化模型对预训练的神经网络进行量化,得到重新确定的第一待定神经网络。根据该重新确定的第一待定神经网络和所述样本,继续对该调整后的第二量化模型进行训练。
若第一待定神经网络的损失小于预设的阈值,则第二量化模型满足预设的第二量化模型训练条件。
3)针对神经网络进行的第二次训练。
可选地,对应于步骤S112,该针对神经网络进行的第二次训练,可以是在得到了训练后的第二量化模型的基础上执行的。
具体地,如图2和图3c所示,本说明书中对神经网络进行的第二次训练的过程可以是:
①采用所述训练后的第二量化模型,对所述预先训练的神经网络的至少部分参数进行量化,得到第二待定神经网络。
②将所述预设的样本输入所述第二待定神经网络,得到所述第二待定神经网络输出的处理结果。
③根据所述第二待定神经网络输出的处理结果和所述样本对应的标签,确定所述第二待定神经网络对所述样本进行处理时的损失。
可选地,如图3c所示,本说明书在针对神经网络进行的第二次训练过程中,对各层对应的权重(如,wk和wk+1)以及各层输出的激活值(如,ak和ak+1)均进行量化。
在本说明书一个可选的实施例中,可以定义所述第二待定神经网络对所述样本进行处理时的损失minJ2为:
minJ2=f(X)
公式(3)
在本说明书另一个可选的实施例中,可以定义所述第二待定神经网络对所述样本进行处理时的损失minJ2为:
式中:p(Δf,Δfr)是第二待定神经网络训练过程中反向传播的效率提升量。
④以所述第二待定神经网络对所述样本进行处理时的损失最小化为目标,对所述第二待定神经网络进行调整,中间第二待定神经网络。
⑤判断中间第二待定神经网络是否满足预设条件;
⑥若是,则将所述中间第二待定神经网络确定为第三待定神经网络;否则,采用训练后的第二量化模型,对所述中间第二待定神经网络的至少部分参数进行量化,得到量化后的中间第二待定神经网络,并根据所述预设的样本,继续对所述中间第二待定神经网络进行训练。
通过针对神经网络进行的第二次训练,能够通过对预先训练的神经网络的至少部分参数的调整,得到与训练后的第二量化模型的配合效果更好的第三待定神经网络。由前述内容可知,训练后的第二量化模型的量化效果一定程度的与第一量化模型等同,则该针对神经网络进行的第二次训练,能够使得得到的第三待定神经网络与第一量化模型更好的配合。
4)针对神经网络进行的第三次训练,以及针对第二量化模型进行的第二次训练。
可选地,对应于步骤S112,该针对神经网络进行的第三次训练,可以是在得到了训练后的第二量化模型的基础上执行的。该针对第二量化模型进行的第二次训练,可以是针对训练后的第二量化模型进行的训练。
具体地,针对神经网络进行的第三次训练,以及针对第二量化模型进行的第二次训练的过程可以是:
①采用所述训练后的第二量化模型,对所述预先训练的神经网络的至少部分参数进行量化,得到第二待定神经网络。
②将所述预设的样本输入所述第二待定神经网络,得到所述第二待定神经网络输出的处理结果。
③根据所述第二待定神经网络输出的处理结果和所述样本对应的标签,确定所述第二待定神经网络对所述样本进行处理时的损失。
在本说明书一个可选的实施例中,可以定义所述第二待定神经网络对所述样本进行处理时的损失minJ3为:
④以所述第二待定神经网络对所述样本进行处理时的损失最小化为目标,对所述训练后的第二量化模型和所述第二待定神经网络进行调整,得到中间第二量化模型和中间第二待定神经网络。
⑤判断中间第二待定神经网络是否满足预设条件;
若是,则将所述中间第二待定神经网络确定为第三待定神经网络;否则,采用中间第二量化模型,对所述中间第二待定神经网络的至少部分参数进行量化,得到量化后的中间第二待定神经网络,并根据量化后的中间第二待定神经网络,继续对所述中间第二量化模型和中间第二待定神经网络进行训练。
通过前述的至少部分的训练过程得到的第三待定神经网络具有较好的数据处理能力。且通过第一量化模型或训练后的第二量化模型对该第三待定神经网络进行量化,得到的量化模型的数据处理能力不会因为该量化受到明显影响,有利于在线上使用时,保证该量化模型的数据处理效果。
可选地,过程“针对神经网络进行的第二次训练”和过程“针对神经网络进行的第三次训练,以及针对第二量化模型进行的第二次训练”,可以根据实际的使用场景择其一,也可以按照预测的次序均执行。
二、本说明书的数据处理过程涉及的至少部分量化模型的设计。
由于本说明书中的过程涉及的量化模型设计,主要针对第二量化模型,以下,将对第二量化模型可以涉及的几个部分进行分别地说明。
1)针对第二量化模型中用于对神经网络的权重进行量化的模型的设计。
由前述内容可知,第二量化模型至少具备针对神经网络的至少部分参数的量化功能,该至少部分参数包括但不限于神经网络的权重值。此处所述的“神经网络”可以是预先训练的神经网络、第二待定神经网络中的至少一种。
在本说明书一个可选的实施例中,所述第二量化模型包括:用于对所述神经网络的至少部分权重进行量化的量化第一子模型,如图3b和图3c所示。则采用第二量化模型对神经网络进行量化的过程,可以是采用量化第一子模型对神经网络的至少部分参数进行量化的过程。
可选地,本说明书中的神经网络为深度卷积神经网络,当该神经网络用于解决多分类、回归问题时,该神经网络可以包括级联的卷积网络和全连接网路。量化第一子模型用于对卷积网络的至少部分权重进行量化。
由前述内容可知,所属于第二量化模型的量化第一子模型,在针对第二待定神经网络进行的训练的过程中发挥着较为重要的作用。该量化第一子模型在针对权重的量化方面,不仅仅能够在功能上近似于第一量化模型,还能够在针对神经网络进行的反向传播的过程中,保证梯度的有效性和真实性。
可选地,量化第一子模型包括至少一个权重量化单元,如图3b和图3c所示的第k个权重量化单元k,权重量化单元与神经网络的权重一一对应。
以采用待训练的第二量化模型对所述预先训练的神经网络的至少部分参数进行量化,得到第一待定神经网络为例,该过程具体可以是:可以针对预先训练的神经网络的至少部分权重,将该权重输入至与该权重对应的权重量化单元,得到该权重量化单元输出的量化后的权重。
在本说明一个可选的实施例中,量化第一子模型Qw,可以通过以下公式表征:
式中:wi是神经网络的第i层的输出端对应的权重;是量化第一子模型中,用于对神经网络的第i层的输出端对应的权重进行量化的权重量化单元(以下简称第i个权重量化单元);n是神经网络的权重需要进行量化的层的总数;是与i的取值相关参数,可以通过训练得到;是第i个权重量化单元的量化方程。
具体地,可以将神经网络的第i层的输出端对应的权重wi,输入至公式(6)中,得到对该权重wi量化的结果
进一步地,第i个权重量化单元的量化方程可以是公式(7)至公式(9)中的任一种。
式中:是量化方程中与i的取值相关参数,可以通过训练得到。
可选地,参数中的至少一种,可以通过前述的“针对第二量化模型进行的第一次训练”和/或“针对第二量化模型进行的第二次训练”得到。
具体地,可以在前述的针对第二量化模型进行的训练的过程中,根据得到的损失,对参数中的至少一种进行调整,直至相应的条件。
2)针对第二量化模型中用于对神经网络生成的激活值进行量化的模型的设计。
在本说明书一个可选的实施例中,第二量化模型包括:用于对所述神经网络生成的激活值进行量化的量化第二子模型,如图3b和图3c所示。
以采用待训练的第二量化模型对第一待定神经网络生成的至少部分激活值进行量化,得到量化后的激活值为例,该过程具体可以是:
①将所述样本输入所述第一待定神经网络。
②针对所述第一待定神经网络的每个层,采用所述量化第二子模型对该层输出的激活值进行量化,得到该层输出的量化后的激活值。
可选地,量化第二子模型包括至少一个激活值量化单元,如图3b和图3c所示的第k个激活值量化单元k,激活值量化单元与神经网络的层一一对应。则采用量化第二子模型对第一待定神经网络生成的激活值进行量化的过程可以是:针对所述第一待定神经网络的每个层,将该层生成的激活值输入与该层对应的激活值量化单元,得到该激活值量化单元输出的量化后的激活值。
③根据每个层输出的量化后的激活值,得到第一待定神经网络输出的处理结果。
在本说明一个可选的实施例中,该第二量化模型Qa,可以通过以下公式表征:
式中:aj是神经网络的第j层输出端对应的激活值;是量化第二子模型中,用于对神经网络的第j层的输出端对应的激活值进行量化的激活值量化单元(以下简称第j个激活值量化单元);m是神经网络的激活值需要进行量化的层的总数;是与j的取值相关参数,可以通过训练得到;是第j个激活值量化单元的量化方程。
将神经网络的第j层的输出端对应的激活值aj,输入至公式(10)中,可以得到对该激活值aj量化的结果
进一步地,第j个激活值量化单元的量化方程可以是公式(11)至公式(13)中的任一种。
式中:是量化方程中与j的取值相关参数,可以通过训练得到。
可选地,参数中的至少一种,可以通过前述的“针对第二量化模型进行的第一次训练”和/或“针对第二量化模型进行的第二次训练”得到。
具体地,可以在前述的针对第二量化模型进行的训练的过程中,根据得到的损失,参数中的至少一种进行调整,直至相应的条件。
通过上述的至少部分的训练步骤,可以得到在采用训练后的第二量化模型量化后仍然具备较好的数据处理能力的第三待定神经网络。由于针对第二量化模型的训练过程,能够使得训练后的第二量化模型的量化效果等同于第一量化模型,则采用第一量化模型对第三待定神经网络进行量化,得到的量化神经网络也具备较好的数据处理能力。
可选地,该量化神经网络可以是二值神经网络(Binarized Neural Networks,BNN)、三值神经网络(Ternary Neural Networks,TNN)中的任一种。
在本说明书一个可选的实施例中,对第三待定神经网络进行量化的第一量化模型可以包括:权重量化子模型、激活值量化子模型中的至少一种。权重量化子模型用于对第三待定神经网络的至少部分权重进行量化;激活值量化子模型用于对第三待定神经网络的至少部分激活值进行量化。
以量化神经网络是二值神经网络为例,则得到该量化神经网络所采用的权重量化子模型Pw,可以通过以下公式(14)和公式(15)表征:
式中:是权重量化子模型中,用于对第三待定神经网络的第i层的输出端对应的权重进行二值化的权重二值化单元;是第三待定神经网络的第i层的输出端对应的权重。
具体地,可以将第三待定神经网络的第i层的输出端对应的权重输入至如公式(15)所示的权重二值化单元中,得到对该权重量化的结果
进一步地,得到该量化神经网络所采用的激活值量化子模型Pw,可以通过以下公式(16)和公式(17)表征:
式中:是激活值量化子模型中,用于对第三待定神经网络的第j层的输出端对应的激活值进行二值化的激活值二值化单元;是第三待定神经网络的第i层的输出的激活值。
具体地,可以将第三待定神经网络的第i层的输出的激活值输入至如公式(17)所示的激活值二值化单元中,得到对该权重量化的结果
可见,通过本说明书实施例中的一种数据处理过程,对第二量化模型进行训练,得到的训练后的第二量化模型具备相当于第一量化模型的量化效果;且,通过该训练后的第二量化模型对该神经网络的至少部分参数进行量化,能够使得在针对该神经网络的调整(训练)过程中得到的损失具有一定的梯度。进而能够避免在对该神经网络的调整时,发生由于量化引起的无法获得梯度的现象。此外,本说明书中的过程在所述调整的过程中,能够得到神经网络的真实的损失,则根据该真实的损失调整得到的调整后的神经网络,也具备较好的数据处理能力,有利于保证数据处理结果的准确性。
即,通过本说明书中的方法及装置得到的量化神经网络,其参数和数据处理的复杂程度均能够得到有效的压缩且不会对其数据处理能力和数据处理效果造成明显影响。则本说明书中的数据处理过程,更适于加载于诸如无人车、智能终端等储存空间有限且对计算性能、计算质量要求较高的硬件环境。
可选地,在本说明书中的预先训练的神经网络是深度神经网络时,可以在训练的过程中,采用批规范化(Batch Norm)的方式,对神经网络的至少部分参数进行规范化。
本说明书提供的上述数据处理过程,具体可应用于使用无人车进行配送的领域,如,使用于无人车进行快递、外卖等配送的场景中。具体的,在上述的场景中,可使用多个无人车所构成的自动驾驶车队进行配送。
基于同样的思路,本说明书实施例还提供了对应于图1所示过程的数据处理装置,该数据处理装置如图4所示。
图4为本说明书实施例提供的一种数据处理装置的结构示意图,该数据处理装置包括:
准备模块400,确定预先训练的神经网络、预设的样本以及第一量化模型;
第一待定神经网络确定模块402,采用待训练的第二量化模型对所述预先训练的神经网络的至少部分参数进行量化,得到第一待定神经网络;所述待训练的第二量化模型是根据所述第一量化模型生成的;
中间结果确定模块404,用于将所述样本输入所述第一待定神经网络,得到所述第一待定神经网络输出的处理结果,作为中间结果;
中间损失确定模块406,用于根据所述中间结果和所述样本对应的标签,确定所述第一待定神经网络的损失,作为中间损失;
第二量化模型训练模块408,用于以所述中间损失最小化,且所述中间损失的梯度最大化为训练目标,训练所述待训练的第二量化模型,得到训练后的第二量化模型;
第二待定神经网络确定模块410,用于采用所述训练后的第二量化模型,对所述预先训练的神经网络的至少部分参数进行量化,得到第二待定神经网络;
第三待定神经网络确定模块412,用于根据所述预设的样本,以采用第二待定神经网络对所述样本进行处理时的损失最小化为训练目标,对第二待定神经网络进行调整,得到第三待定神经网络;
数据处理模块414,用于当需要对待处理数据进行处理时,采用所述第一量化模型对所述第三待定神经网络进行量化,得到量化神经网络,将所述待处理数据输入所述量化神经网络,得到对所述待处理数据的处理结果。
可选地,第一待定神经网络确定模块402可以包括:权重量化子模块。
权重量化子模块,用于采用所述待训练的量化第一子模型对所述预先训练的神经网络的权重进行量化,得到权重量化后的神经网络,作为第一待定神经网络。
可选地,中间结果确定模块404可以包括:激活值量化子模块。激活值量化子模块可以包括:输入单元、激活值量化单元和第一处理结果生成单元。
输入单元,用于将所述样本输入所述第一待定神经网络。
激活值量化单元,用于针对所述第一待定神经网络的每个层,采用所述量化第二子模型对该层输出的激活值进行量化,得到该层输出的量化后的激活值。
第一处理结果生成单元,用于根据每个层输出的量化后的激活值,得到第一待定神经网络输出的处理结果。
可选地,第二量化模型训练模块408可以包括:参考结果确定子模块、参考损失确定子模块、量化损失确定子模块和第二量化模型训练子模块。
参考结果确定子模块,用于将所述样本输入所述预先训练的神经网络,得到所述预先训练的神经网络输出的处理结果,作为参考结果。
参考损失确定子模块,用于根据所述参考结果和所述样本对应的标签,确定所述预先训练的神经网络处理所述样本时的参考损失。
量化损失确定子模块,用于根据所述参考损失和所述中间损失,确定通过所述待训练的第二量化模型量化该预先训练的神经网络造成的量化损失。
第二量化模型训练子模块,用于以所述量化损失最小化,且所述中间损失的梯度最大化为训练目标,训练所述待训练的第二量化模型,得到训练后的第二量化模型。
可选地,量化损失确定子模块可以包括:参考损失梯度确定单元、差异确定单元和量化损失确定单元。
参考损失梯度确定单元,用于根据所述参考损失,确定所述参考损失的梯度。
差异确定单元,用于确定所述参考损失的梯度和所述中间损失的梯度之间的差异。
量化损失确定单元,用于根据所述差异和所述中间损失的梯度,确定通过所述待训练的量化模型量化该神经网络的量化损失,其中,所述量化损失与所述差异正相关,所述量化损失与所述中间损失的梯度负相关。
可选地,第三待定神经网络确定模块412可以包括:第二处理结果生成子模块、损失确定子模块、调整子模块和判断子模块。
第二处理结果生成子模块,用于将所述预设的样本输入所述第二待定神经网络,得到所述第二待定神经网络输出的处理结果。
损失确定子模块,用于根据所述第二待定神经网络输出的处理结果和所述样本对应的标签,确定所述第二待定神经网络对所述样本进行处理时的损失。
调整子模块,用于以所述第二待定神经网络对所述样本进行处理时的损失最小化为目标,对所述训练后的第二量化模型和所述第二待定神经网络进行调整,得到中间第二量化模型和中间第二待定神经网络。
判断子模块,用于判断中间第二待定神经网络是否满足预设条件;若是,则将所述中间第二待定神经网络确定为第三待定神经网络;否则,采用中间第二量化模型,对所述中间第二待定神经网络的至少部分参数进行量化,得到量化后的中间第二待定神经网络,并根据量化后的中间第二待定神经网络,继续对所述中间第二量化模型和中间第二待定神经网络进行训练。
可选地,本说明书中的数据处理装置还可以包括预训练模块。预训练模块可以包括:获取子模块、量化子模块和预训练子模块。
获取子模块,用于获取待训练的神经网络和用于预训练所述神经网络的预训练样本。
量化子模块,用于采用所述第一量化模型对所述待训练的神经网络的至少部分参数进行量化,得到量化后的待训练的神经网络。
预训练子模块,用于根据所述预训练样本对所述量化后的待训练的神经网络进行训练,得到预训练后的神经网络。
可选地,准备模块400可以包括:预先训练的神经网络确定子模块和预设的样本确定子模块。
预先训练的神经网络确定子模块,用于确定预训练后的神经网络,为预先训练的神经网络。
预设的样本确定子模块,用于确定所述预训练样本,为预设的样本。
本说明书实施例还提供了一种计算机可读存储介质,该存储介质存储有计算机程序,计算机程序可用于执行上述图1提供的数据处理的过程。
本说明书实施例还提出了图5所示的第一种电子设备的示意结构图。如图5,在硬件层面,该电子设备包括处理器、内部总线、网络接口、内存以及非易失性存储器,当然还可能包括其他业务所需要的硬件。处理器从非易失性存储器中读取对应的计算机程序到内存中然后运行,以实现上述图1所述的数据处理的过程。当然,除了软件实现方式之外,本说明书并不排除其他实现方式,比如逻辑器件抑或软硬件结合的方式等等,也就是说以下处理流程的执行主体并不限定于各个逻辑单元,也可以是硬件或逻辑器件。
在20世纪90年代,对于一个技术的改进可以很明显地区分是硬件上的改进(例如,对二极管、晶体管、开关等电路结构的改进)还是软件上的改进(对于方法流程的改进)。然而,随着技术的发展,当今的很多方法流程的改进已经可以视为硬件电路结构的直接改进。设计人员几乎都通过将改进的方法流程编程到硬件电路中来得到相应的硬件电路结构。因此,不能说一个方法流程的改进就不能用硬件实体模块来实现。例如,可编程逻辑器件(Programmable Logic Device,PLD)(例如现场可编程门阵列(Field Programmable GateArray,FPGA))就是这样一种集成电路,其逻辑功能由用户对器件编程来确定。由设计人员自行编程来把一个数字系统“集成”在一片PLD上,而不需要请芯片制造厂商来设计和制作专用的集成电路芯片。而且,如今,取代手工地制作集成电路芯片,这种编程也多半改用“逻辑编译器(logic compiler)”软件来实现,它与程序开发撰写时所用的软件编译器相类似,而要编译之前的原始代码也得用特定的编程语言来撰写,此称之为硬件描述语言(Hardware Description Language,HDL),而HDL也并非仅有一种,而是有许多种,如ABEL(Advanced Boolean Expression Language)、AHDL(Altera Hardware DescriptionLanguage)、Confluence、CUPL(Cornell University Programming Language)、HDCal、JHDL(Java Hardware Description Language)、Lava、Lola、MyHDL、PALASM、RHDL(RubyHardware Description Language)等,目前最普遍使用的是VHDL(Very-High-SpeedIntegrated Circuit Hardware Description Language)与Verilog。本领域技术人员也应该清楚,只需要将方法流程用上述几种硬件描述语言稍作逻辑编程并编程到集成电路中,就可以很容易得到实现该逻辑方法流程的硬件电路。
控制器可以按任何适当的方式实现,例如,控制器可以采取例如微处理器或处理器以及存储可由该(微)处理器执行的计算机可读程序代码(例如软件或固件)的计算机可读介质、逻辑门、开关、专用集成电路(Application Specific Integrated Circuit,ASIC)、可编程逻辑控制器和嵌入微控制器的形式,控制器的例子包括但不限于以下微控制器:ARC 625D、Atmel AT91SAM、Microchip PIC18F26K20以及Silicone Labs C8051F320,存储器控制器还可以被实现为存储器的控制逻辑的一部分。本领域技术人员也知道,除了以纯计算机可读程序代码方式实现控制器以外,完全可以通过将方法步骤进行逻辑编程来使得控制器以逻辑门、开关、专用集成电路、可编程逻辑控制器和嵌入微控制器等的形式来实现相同功能。因此这种控制器可以被认为是一种硬件部件,而对其内包括的用于实现各种功能的装置也可以视为硬件部件内的结构。或者甚至,可以将用于实现各种功能的装置视为既可以是实现方法的软件模块又可以是硬件部件内的结构。
上述实施例阐明的系统、装置、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机。具体的,计算机例如可以为个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任何设备的组合。
为了描述的方便,描述以上装置时以功能分为各种单元分别描述。当然,在实施本说明书时可以把各单元的功能在同一个或多个软件和/或硬件中实现。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
在一个典型的配置中,计算设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。内存是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。
本领域技术人员应明白,本说明书的实施例可提供为方法、系统或计算机程序产品。因此,本说明书可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本说明书可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本说明书可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序模块。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等等。也可以在分布式计算环境中实践本说明书,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行任务。在分布式计算环境中,程序模块可以位于包括存储设备在内的本地和远程计算机存储介质中。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
以上所述仅为本说明书的实施例而已,并不用于限制本说明书。对于本领域技术人员来说,本说明书可以有各种更改和变化。凡在本说明书的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本说明书的权利要求范围之内。
Claims (10)
1.一种数据处理方法,其特征在于,所述方法包括:
确定预先训练的神经网络、预设的样本以及第一量化模型;
采用待训练的第二量化模型对所述预先训练的神经网络的至少部分参数进行量化,得到第一待定神经网络;所述待训练的第二量化模型是根据所述第一量化模型生成的;
将所述样本输入所述第一待定神经网络,得到所述第一待定神经网络输出的处理结果,作为中间结果;
根据所述中间结果和所述样本对应的标签,确定所述第一待定神经网络的损失,作为中间损失;
以所述中间损失最小化,且所述中间损失的梯度最大化为训练目标,训练所述待训练的第二量化模型,得到训练后的第二量化模型;
采用所述训练后的第二量化模型,对所述预先训练的神经网络的至少部分参数进行量化,得到第二待定神经网络;
根据所述预设的样本,以采用第二待定神经网络对所述样本进行处理时的损失最小化为训练目标,对第二待定神经网络进行调整,得到第三待定神经网络;
当需要对待处理数据进行处理时,采用所述第一量化模型对所述第三待定神经网络进行量化,得到量化神经网络,将所述待处理数据输入所述量化神经网络,得到对所述待处理数据的处理结果;
所述预先训练的神经网络用于执行多分类任务;所述预设的样本为历史上针对交通环境采集的图像,所述样本对应的标签为所述图像中的各动态障碍物的分类结果;或者,所述预先训练的神经网络用于生成行驶策略,所述预设的样本为无人车所处环境中的各障碍物的运动状态,所述样本对应的标签可以是行驶策略。
2.如权利要求1所述的方法,其特征在于,所述第二量化模型包括:用于对所述神经网络的权重进行量化的量化第一子模型;
采用所述待训练的第二量化模型对所述预先训练的神经网络的至少部分参数进行量化,得到第一待定神经网络,具体包括:
采用所述待训练的量化第一子模型对所述预先训练的神经网络的权重进行量化,得到权重量化后的神经网络,作为第一待定神经网络。
3.如权利要求2所述的方法,其特征在于,所述第二量化模型包括:用于对所述神经网络生成的至少部分激活值进行量化的量化第二子模型;
将所述样本输入所述第一待定神经网络,得到所述第一待定神经网络输出的处理结果,具体包括:
将所述样本输入所述第一待定神经网络;
针对所述第一待定神经网络的每个层,采用所述量化第二子模型对该层输出的激活值进行量化,得到该层输出的量化后的激活值;
根据每个层输出的量化后的激活值,得到第一待定神经网络输出的处理结果。
4.如权利要求1-3任一所述的方法,其特征在于,以所述中间损失最小化,且所述中间损失的梯度最大化为训练目标,训练所述待训练的第二量化模型,得到训练后的第二量化模型,具体包括:
将所述样本输入所述预先训练的神经网络,得到所述预先训练的神经网络输出的处理结果,作为参考结果;
根据所述参考结果和所述样本对应的标签,确定所述预先训练的神经网络处理所述样本时的参考损失;
根据所述参考损失和所述中间损失,确定通过所述待训练的第二量化模型量化该预先训练的神经网络造成的量化损失;
以所述量化损失最小化,且所述中间损失的梯度最大化为训练目标,训练所述待训练的第二量化模型,得到训练后的第二量化模型。
5.如权利要求4所述的方法,其特征在于,根据所述参考损失和所述中间损失,确定通过所述待训练的第二量化模型量化该预先训练的神经网络造成的量化损失,具体包括:
根据所述参考损失,确定所述参考损失的梯度;
确定所述参考损失的梯度和所述中间损失的梯度之间的差异;
根据所述差异和所述中间损失的梯度,确定通过所述待训练的量化模型量化该神经网络的量化损失,其中,所述量化损失与所述差异正相关,所述量化损失与所述中间损失的梯度负相关。
6.如权利要求1-3任一所述的方法,其特征在于,根据所述预设的样本,以采用第二待定神经网络对所述样本进行处理时的损失最小化为训练目标,对第二待定神经网络进行调整,得到第三待定神经网络,具体包括:
将所述预设的样本输入所述第二待定神经网络,得到所述第二待定神经网络输出的处理结果;
根据所述第二待定神经网络输出的处理结果和所述样本对应的标签,确定所述第二待定神经网络对所述样本进行处理时的损失;
以所述第二待定神经网络对所述样本进行处理时的损失最小化为目标,对所述训练后的第二量化模型和所述第二待定神经网络进行调整,得到中间第二量化模型和中间第二待定神经网络;
判断中间第二待定神经网络是否满足预设的调整条件;
若是,则将所述中间第二待定神经网络确定为第三待定神经网络;
否则,采用中间第二量化模型,对所述中间第二待定神经网络的至少部分参数进行量化,得到量化后的中间第二待定神经网络,并根据量化后的中间第二待定神经网络,继续对所述中间第二量化模型和中间第二待定神经网络进行训练。
7.如权利要求1-3任一所述的方法,其特征在于,预先训练的神经网络,具体包括:
获取待训练的神经网络和用于预训练所述神经网络的预训练样本;
采用所述第一量化模型对所述待训练的神经网络的至少部分参数进行量化,得到量化后的待训练的神经网络;
根据所述预训练样本对所述量化后的待训练的神经网络进行训练,得到预训练后的神经网络;
确定预先训练的神经网络、预设的样本,具体包括:
确定预训练后的神经网络,为预先训练的神经网络;并且,确定所述预训练样本,为预设的样本。
8.一种数据处理装置,其特征在于,所述装置包括:
准备模块,用于确定预先训练的神经网络、预设的样本以及第一量化模型;
第一待定神经网络确定模块,用于采用待训练的第二量化模型对所述预先训练的神经网络的至少部分参数进行量化,得到第一待定神经网络;所述待训练的第二量化模型是根据所述第一量化模型生成的;
中间结果确定模块,用于将所述样本输入所述第一待定神经网络,得到所述第一待定神经网络输出的处理结果,作为中间结果;
中间损失确定模块,用于根据所述中间结果和所述样本对应的标签,确定所述第一待定神经网络的损失,作为中间损失;
第二量化模型训练模块,用于以所述中间损失最小化,且所述中间损失的梯度最大化为训练目标,训练所述待训练的第二量化模型,得到训练后的第二量化模型;
第二待定神经网络确定模块,用于采用所述训练后的第二量化模型,对所述预先训练的神经网络的至少部分参数进行量化,得到第二待定神经网络;
第三待定神经网络确定模块,用于根据所述预设的样本,以采用第二待定神经网络对所述样本进行处理时的损失最小化为训练目标,对第二待定神经网络进行调整,得到第三待定神经网络;
数据处理模块,用于当需要对待处理数据进行处理时,采用所述第一量化模型对所述第三待定神经网络进行量化,得到量化神经网络,将所述待处理数据输入所述量化神经网络,得到对所述待处理数据的处理结果;
所述预先训练的神经网络用于执行多分类任务;所述预设的样本为历史上针对交通环境采集的图像,所述样本对应的标签为所述图像中的各动态障碍物的分类结果;或者,所述预先训练的神经网络用于生成行驶策略,所述预设的样本为无人车所处环境中的各障碍物的运动状态,所述样本对应的标签可以是行驶策略。
9.一种计算机可读存储介质,其特征在于,所述存储介质存储有计算机程序,所述计算机程序被处理器执行时实现上述权利要求1-7任一所述的方法。
10.一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现上述权利要求1-7任一所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010404466.3A CN111639745B (zh) | 2020-05-13 | 2020-05-13 | 一种数据处理方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010404466.3A CN111639745B (zh) | 2020-05-13 | 2020-05-13 | 一种数据处理方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111639745A CN111639745A (zh) | 2020-09-08 |
CN111639745B true CN111639745B (zh) | 2024-03-01 |
Family
ID=72332083
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010404466.3A Active CN111639745B (zh) | 2020-05-13 | 2020-05-13 | 一种数据处理方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111639745B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112288032B (zh) * | 2020-11-18 | 2022-01-14 | 上海依图网络科技有限公司 | 一种基于生成对抗网络的量化模型训练的方法及装置 |
CN113762403B (zh) * | 2021-09-14 | 2023-09-05 | 杭州海康威视数字技术股份有限公司 | 图像处理模型量化方法、装置、电子设备及存储介质 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110443165A (zh) * | 2019-07-23 | 2019-11-12 | 北京迈格威科技有限公司 | 神经网络量化方法、图像识别方法、装置和计算机设备 |
CN110969251A (zh) * | 2019-11-28 | 2020-04-07 | 中国科学院自动化研究所 | 基于无标签数据的神经网络模型量化方法及装置 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11875251B2 (en) * | 2018-05-03 | 2024-01-16 | Samsung Electronics Co., Ltd. | Neural network method and apparatus |
-
2020
- 2020-05-13 CN CN202010404466.3A patent/CN111639745B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110443165A (zh) * | 2019-07-23 | 2019-11-12 | 北京迈格威科技有限公司 | 神经网络量化方法、图像识别方法、装置和计算机设备 |
CN110969251A (zh) * | 2019-11-28 | 2020-04-07 | 中国科学院自动化研究所 | 基于无标签数据的神经网络模型量化方法及装置 |
Non-Patent Citations (3)
Title |
---|
Optimization Strategies in Quantized Neural Networks: A Review;Yuhan Lin, et al;2019 International Conference on Data Mining Workshops (ICDMW);全文 * |
基于深度卷积神经网络的道路场景理解;吴宗胜;傅卫平;韩改宁;;计算机工程与应用(第22期);全文 * |
基于轻量型卷积神经网络的交通标志识别方法;程越;刘志刚;;计算机系统应用(第02期);全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN111639745A (zh) | 2020-09-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11263515B2 (en) | Heterogeneous processor architecture for integrating CNN and RNN into single high-performance, low-power chip | |
CN111126558B (zh) | 一种卷积神经网络计算加速方法及装置、设备、介质 | |
CN111639745B (zh) | 一种数据处理方法及装置 | |
CN108765334A (zh) | 一种图像去噪方法、装置以及电子设备 | |
CN111639684B (zh) | 一种数据处理模型的训练方法及装置 | |
CN116304720B (zh) | 一种代价模型训练的方法、装置、存储介质及电子设备 | |
CN113688832B (zh) | 一种模型训练及图像处理方法、装置 | |
CN113887351B (zh) | 一种用于无人驾驶的障碍物检测方法及障碍物检测装置 | |
CN112766397B (zh) | 一种分类网络及其实现方法和装置 | |
CN115543945B (zh) | 一种模型压缩的方法、装置、存储介质及电子设备 | |
CN116403097A (zh) | 一种目标检测方法、装置、存储介质及电子设备 | |
CN116434787B (zh) | 一种语音情感识别的方法、装置、存储介质及电子设备 | |
CN115409991B (zh) | 目标识别方法、装置、电子设备和存储介质 | |
CN113887719B (zh) | 一种模型压缩方法及装置 | |
CN116030309A (zh) | 一种对抗样本生成方法、装置、存储介质及电子设备 | |
CN117649568B (zh) | 一种用于图像分类卷积神经网络的网络压缩方法及装置 | |
CN117058525B (zh) | 一种模型的训练方法、装置、存储介质及电子设备 | |
CN117036869B (zh) | 一种基于多样性和随机策略的模型训练方法及装置 | |
CN117152570A (zh) | 一种自主持续学习方法、装置、存储介质及电子设备 | |
CN116109008B (zh) | 一种业务执行的方法、装置、存储介质及电子设备 | |
CN117152752B (zh) | 一种自适应权重的视觉深度特征重建方法和装置 | |
CN117201334B (zh) | 一种多模态网络流量预测方法及装置 | |
CN113204664B (zh) | 一种图像聚类方法及装置 | |
CN116152274A (zh) | 一种图像分割方法、装置、设备及存储介质 | |
CN117591130A (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 |