CN113762503A - 数据处理方法、装置、设备及计算机可读存储介质 - Google Patents

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

Info

Publication number
CN113762503A
CN113762503A CN202110583709.9A CN202110583709A CN113762503A CN 113762503 A CN113762503 A CN 113762503A CN 202110583709 A CN202110583709 A CN 202110583709A CN 113762503 A CN113762503 A CN 113762503A
Authority
CN
China
Prior art keywords
training
model
quantized
quantization
network layer
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
CN202110583709.9A
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.)
Tencent Cloud Computing Beijing Co Ltd
Original Assignee
Tencent Cloud Computing Beijing 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 Tencent Cloud Computing Beijing Co Ltd filed Critical Tencent Cloud Computing Beijing Co Ltd
Priority to CN202110583709.9A priority Critical patent/CN113762503A/zh
Priority to PCT/CN2021/106602 priority patent/WO2022246986A1/zh
Publication of CN113762503A publication Critical patent/CN113762503A/zh
Priority to US18/300,071 priority patent/US20230252294A1/en
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
    • 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
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • G06N3/082Learning methods modifying the architecture, e.g. adding, deleting or silencing nodes or connections
    • 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/09Supervised learning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/40Extraction of image or video features
    • G06V10/44Local feature extraction by analysis of parts of the pattern, e.g. by detecting edges, contours, loops, corners, strokes or intersections; Connectivity analysis, e.g. of connected components
    • G06V10/443Local feature extraction by analysis of parts of the pattern, e.g. by detecting edges, contours, loops, corners, strokes or intersections; Connectivity analysis, e.g. of connected components by matching or filtering
    • G06V10/449Biologically inspired filters, e.g. difference of Gaussians [DoG] or Gabor filters
    • G06V10/451Biologically inspired filters, e.g. difference of Gaussians [DoG] or Gabor filters with interaction between the filter responses, e.g. cortical complex cells
    • G06V10/454Integrating the filters into a hierarchical structure, e.g. convolutional neural networks [CNN]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/70Arrangements for image or video recognition or understanding using pattern recognition or machine learning
    • G06V10/82Arrangements for image or video recognition or understanding using pattern recognition or machine learning using neural networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V40/00Recognition of biometric, human-related or animal-related patterns in image or video data
    • G06V40/10Human or animal bodies, e.g. vehicle occupants or pedestrians; Body parts, e.g. hands
    • G06V40/16Human faces, e.g. facial parts, sketches or expressions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V40/00Recognition of biometric, human-related or animal-related patterns in image or video data
    • G06V40/10Human or animal bodies, e.g. vehicle occupants or pedestrians; Body parts, e.g. hands
    • G06V40/16Human faces, e.g. facial parts, sketches or expressions
    • G06V40/172Classification, e.g. identification

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Evolutionary Computation (AREA)
  • Artificial Intelligence (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Biomedical Technology (AREA)
  • Software Systems (AREA)
  • Molecular Biology (AREA)
  • Computing Systems (AREA)
  • Biophysics (AREA)
  • General Engineering & Computer Science (AREA)
  • Mathematical Physics (AREA)
  • Data Mining & Analysis (AREA)
  • Computational Linguistics (AREA)
  • Multimedia (AREA)
  • Human Computer Interaction (AREA)
  • Oral & Maxillofacial Surgery (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Databases & Information Systems (AREA)
  • Medical Informatics (AREA)
  • Biodiversity & Conservation Biology (AREA)
  • Image Analysis (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)

Abstract

本申请实施例公开了一种数据处理方法,装置、设备及计算机可读存储介质。其中方法包括:获取预训练模型,以及第二训练数据集,并采用第二训练数据集对预训练模型进行迭代训练;在迭代训练过程中若当前迭代次数满足参数量化条件,则从N个网络层中确定出目标待量化网络层,对目标待量化网络层进行量化,根据量化后的目标待量化网络层更新预训练模型;并采用第二训练数据集对更新后的预训练模型进行训练,得到量化模型。可见,在对预训练模型进行迭代训练过程中,通过采用量化后的目标待量化网络层来更新预训练模型,实现了更好的模型量化。

Description

数据处理方法、装置、设备及计算机可读存储介质
技术领域
本申请涉及人工智能领域,具体涉及一种数据处理方法、装置、设备及计算机可读存储介质。
背景技术
随着计算机技术的不断发展,越来越多的神经网络模型被应用于各类业务中;例如,人脸识别模型被应用于人脸检测,噪声优化模型被应用于降低噪声。研究发现,神经网络模型的表征能力与其规模(参数量,计算量)有着较强的正相关性;简单来说,规模较大的神经网络模型的预测结果的精确度优于规模较小的神经网络模型的预测结果的精确度。但是,规模越大的神经网络在部署时,对设备的配置参数要求越高,比如要求更大的存储空间,要求更高的运行速度等等。因此,为了将规模大的神经网络配置在存储空间有限或者功耗有限的设备中,需要对大规模的神经网络进行量化处理。目前,在人工智能领域中,如何对神经网络模型进行量化处理成为研究的热点问题之一。
发明内容
本申请实施例提供了一种数据处理方法、装置、设备及计算机可读存储介质,实现了模型量化。
一方面,本申请实施例提供了一种数据处理方法,包括:
获取预训练模型,所述预训练模型包括N个网络层,所述N个网络层的参数是基于预训练模型中N个网络层的参数初始化得到的;所述预训练模型是基于第一训练数据集进行迭代训练得到的,所述第一训练数据集包括全精度的第一训练数据以及所述第一训练数据的训练标签;
获取第二训练数据集,并采用所述第二训练数据集对所述预训练模型进行迭代训练;所述第二训练数据集包括量化的第二训练数据以及所述第二训练数据对应的训练标签;
在迭代训练过程若当前迭代次数满足参数量化条件,则从所述N个网络层中确定出目标待量化网络层,对所述目标待量化网络层进行量化,根据量化后的目标待量化网络层更新所述预训练模型;
采用所述第二训练数据集对更新后的预训练模型进行训练,得到量化模型。
一方面,本申请实施例提供了一种数据处理装置,包括:
获取单元,用于获取预训练模型,以及用于获取第二训练数据集;所述预训练模型包括N个网络层,所述N个网络层的参数是基于预训练模型中N个网络层的参数初始化得到的;所述预训练模型是基于第一训练数据集进行迭代训练得到的,所述第一训练数据集包括全精度的第一训练数据以及所述第一训练数据的训练标签;
处理单元,用于采用所述第二训练数据集对所述预训练模型进行迭代训练;所述第二训练数据集包括量化的第二训练数据以及所述第二训练数据对应的训练标签;以及用于在迭代训练过程若当前迭代次数满足参数量化条件,则从所述N个网络层中确定出目标待量化网络层,对所述目标待量化网络层进行量化,根据量化后的目标待量化网络层更新所述预训练模型;以及用于采用所述第二训练数据集对更新后的预训练模型进行训练,得到量化模型。
相应地,本发明实施例还提供了一种数据处理设备,包括:存储装置和处理器;所述存储装置中存储有计算机程序;处理器,执行计算机程序,实现上述的数据处理方法。
相应地,本发明实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时,上述的数据处理方法被实现。
相应地,本申请提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中,计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述的数据处理方法。
在本申请实施例中,获取预训练模型,以及第二训练数据集,并采用第二训练数据集对预训练模型进行迭代训练;在迭代训练过程中若当前迭代次数满足参数量化条件,则从N个网络层中确定出目标待量化网络层,对目标待量化网络层进行量化,根据量化后的目标待量化网络层更新预训练模型;并采用第二训练数据集对更新后的预训练模型进行训练,得到量化模型。可见,在对预训练模型进行迭代训练过程中,通过采用量化后的目标待量化网络层来更新预训练模型,能够较好地减小神经网络模型的规模,从而实现了模型量化。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1a为本申请实施例提供的一种模型量化系统的结构示意图;
图1b为本申请实施例提供的另一种模型量化系统的结构图示意图;
图2为本申请实施例提供的一种数据处理方法的流程图;
图3为本申请实施例提供的另一种数据处理方法的流程图;
图4a为本申请实施例提供的一种预训练模型的更新流程图;
图4b为本申请实施例提供的一种量化模型的应用场景图;
图4c为本申请实施例提供的另一种量化模型的应用场景图;
图5为本申请实施例提供的一种数据处理装置的结构示意图;
图6为本申请实施例提供的一种数据处理设备的结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述。
本申请实施例涉及人工智能(Artificial Intelligence,AI)及机器学习(Machine Learning,ML)。其中,AI是利用数字计算机或者数字计算机控制的机器模拟、延伸和扩展人的智能,感知环境、获取知识并使用知识获得最佳结果的理论、方法、技术及应用系统。换句话说,人工智能是计算机科学的一个综合技术,它企图了解智能的实质,并生产出一种新的能以人类智能相似的方式做出反应的智能机器。人工智能也就是研究各种智能机器的设计原理与实现方法,使机器具有感知、推理与决策的功能。本申请实施例主要涉及在迭代训练过程中,通过分阶段在待训练模型中的多个待量化网络层中插入伪量化算子,得到待转换模型;将待转换模型进行转换,并对转换后的模型进行训练,最终得到待训练模型所对应量化模型,以达到减小神经网络模型的规模的目的。
AI技术是一门综合学科,涉及领域广泛,既有硬件层面的技术也有软件层面的技术。人工智能基础技术一般包括如传感器、专用人工智能芯片、云计算、分布式存储、大应用程序的处理技术、操作/交互系统、机电一体化等技术。人工智能软件技术主要包括计算机视觉技术、语音处理技术、自然语言处理技术以及机器学习/深度学习等几大方向。其中,计算机视觉技术是一门研究如何使机器“看”的科学,更进一步的说,就是指用摄影机和电脑代替人眼对目标进行识别、跟踪和测量等机器视觉,并进一步做图形处理,使电脑处理成为更适合人眼观察或传送给仪器检测的图像。作为一个科学学科,计算机视觉研究相关的理论和技术,试图建立能够从图像或者多维数据中获取信息的人工智能系统;其通常包括图像处理、视频处理、视频语义理解、视频内容/行为识别等技术。
机器学习是一门多领域交叉学科,涉及概率论、统计学、逼近论、凸分析、算法复杂度理论等多门学科。专门研究计算机怎样模拟或实现人类的学习行为,以获取新的知识或技能,重新组织已有的知识结构使之不断改善自身的性能。机器学习是AI的核心,是使计算机具有智能的根本途径,其应用遍及人工智能的各个领域。机器学习/深度学习通常包括人工神经网络、置信网络、强化学习、迁移学习、归纳学习等技术。神经网络模型的表征能力与其规模(比如参数量、计算量)有着较强的正相关性,越深越宽的模型,其性能往往优于较小的模型。然而,一味地扩大模型大小,虽然能提高人脸识别的精度,但是对于模型的实际应用与部署造成了极大的障碍,尤其是在计算能力、功耗受限的移动设备上。因此,在训练得到一个全精度的预训练模型之后,各个部署该模型的设备会根据自身情况对预训练模型进行压缩处理后再部署,对模型的压缩处理可以理解为对模型进行量化。本发明实施例在模型量化研究过程中提出了以下几种模型量化方法:
1)后量化方案(post-quantization):后量化方案先利用传统的深度神经网络模型训练方法,针对特定的模型结构、损失函数,训练得到一个全精度的模型。然后将模型的参数利用特定的量化方法,量化至约定的位数(如int8量化,即整型化);接着利用少批量的训练数据(如2000张,或远小于训练集规模的数据量),得到模型中各个层输出的范围,即激活函数的值域大小,进而对模型中各个网络层的输出进行量化。最终得到的模型即量化后的模型,此时对某一层网络层而言,参与计算的模型参数与上一层的激活输出(本层输入)均为量化后的定点数。
2)量化感知训练方案(QAT):在后量化方案的量化步骤中,模型参数仅仅被量化,无法将量化带来的精度损失考虑到训练过程中,针对量化本身调整模型参数(即未考虑量化对模型的精度带来的影响)。为此,在量化感知的训练方案中,模型参数后与激活函数后均被人为插入伪量化节点,用于模拟量化过程。该方案能在训练过程模拟了量化后实际的计算,训练完即可得到量化后的模型,故能够很大程度的缩减量化带来的识别精度损失。
3)分阶段逐层量化的模型量化训练方案:量化感知训练过程中,不是一次性插入全部的伪量化节点,而是由浅至深,按照预定的规则,分阶段、逐层插入伪量化节点。也就是说了,每次对模型中的一层网络层进行量化后,会对模型进行训练(参数调整)。最终,当模型中所有需要量化的网络层量化完成,且模型收敛时,得到更新后的模型。
实践发现,上述3种方案中,后量化方案直接对全精度的模型进行后量化操作无法保证量化后模型能够获得很好的识别效果。这是因为在全精度模型的训练过程中,没有将量化带来的误差考虑其中。而模型往往对准确率要求极高,模型量化带来的误差可能导致错误地识别结果,其带来的损失不可估量。
量化感知训练的方案,能在一定程度上调整量化后模型参数,尽可能减少量化操作带来的误差,但是在实际操作中,伪量化算子的一次性插入会破坏训练的稳定性,使得模型无法收敛到最优点。这是因为量化操作对应的伪量化算子会降低模型的表征能力,表征能力过于剧烈的跳变会使得模型跳出原本收敛的最优点,而陷入其他次优点。
分阶段逐层量化的模型量化训练方案,通过分阶段插入的方式相比于一次性插入,将模型表征能力的“巨变”切分为若干个“小跳变”。在插入伪量化节点后,后续层仍能够保留全精度的计算流程,能够逐步适应量化带来误差,渐进的调整自身的参数。这种“温和”的模型量化感知训练方式,能极大程度地减少量化误差对模型训练的干扰,使得通过该方法训练得到的量化模型,在得到模型大小缩减、推理速度提升的收益后,仍然能保持较高的识别精度,达到模型应用的实际要求。
由上述分析可知,分阶段逐层量化的模型量化训练方案在实际应用中效果更佳,因此本申请主要对分阶段逐层量化的模型量化训练方案进行详细介绍。基于分阶段逐层量化的模型量化训练方案本申请提供了一种模型量化系统,参见图1a为本发明实施例提供的一种模型量化系统的结构示意图,在图1a所示的模型量化系统中包括数据处理设备101和模型存储设备102,数据处理设备101和模型存储设备102均可以是终端,比如智能手机(如Android手机、iOS手机等)、平板电脑、便携式个人计算机、移动互联网设备(MobileInternet Devices,MID)等设备;数据处理设备101和模型存储设备102也可以均是服务器,比如独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、CDN、以及大数据和人工智能平台等基础云计算服务的云服务器。
在图1a中以数据处理设备101为终端,模型存储设备102为服务器为例进行示意。模型存储设备102主要用于存储训练完成的预训练模型,该预训练模型可以是模型存储设备102基于第一训练数据集进行训练的,也可以是其他设备基于第一训练数据集训练完成后上传到模型存储设备102中存储的,第一训练数据集中包括全精度的第一训练数据以及第一训练数据的训练标签。模型存储设备102可以是区块链网络中的一个节点,如此可以实现将预训练模型存储在区块链中,区块链是分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型应用模式。其本质上是一个去中心化的数据库,是一串使用密码学方法相关联产生的数据块,用区块链所串接的分布式账本能让多方有效记录交易,且可永久查验此交易(不可篡改)。区块链中的数据具有不可篡改性,将预训练模型存储到区块链中可以保证预训练模型的安全性。
当数据处理设备101中需要部署预训练模型时,数据处理设备101首先获取数据处理设备的配置参数,比如存储空间、运行内存以及功耗情况等等;然后在判断数据处理设备的配置参数与预训练模型的部署条件是否匹配,如果匹配,则直接从模型存储设备102中获取预训练模型,并将预训练模型部署在数据处理设备中;如果数据处理设备的配置参数与预训练模型的部署条件不匹配,则数据处理设备101可以采用上述提出的分阶段逐层量化的模型量化训练方案对模型存储设备102中获取的预训练模型进行量化处理,得到量化模型,该量化模型的部署条件与数据处理设备的配置参数相匹配,进而将量化模型部署在数据处理设备101中。
后续,数据处理设备101可以采集待处理的数据,并调用量化模型对待处理的数据进行识别处理,输出识别结果。比如量化模型是人脸识别模型,数据处理设备101可以采集待识别人脸数据(即待处理的数据),调用量化模型对待识别人脸数据进行识别处理,输出识别结果。
基于上述的模型量化系统,本申请实施例还提供另一种模型量化系统的结构示意图,如图1b所示。在图1b中,模型量化系统可包括训练数据模块、全精度模型训练模块、分阶段量化感知训练模块、量化模型转换模块、量化模型执行模块,以及模型应用模块。其中,训练数据模块主要负责对全精度模型模块和分阶段量化感知训练模块所需要的数据进行预处理。具体地,在全精度模型训练阶段,训练数据模块为其提供原始的训练数据(预处理、归一化后的全精度形式);而在分阶段量化感知训练阶段,训练数据模块为其提供量化后的训练数据(预处理、归一化后的量化形式)。需要说明的是,量化训练模块所需的数据预处理形式需要参考后续量化模型执行模块的一些限制,比如,常用的TNN量化模型执行框架仅支持输入形式为范围-1至+1的对称量化形式,故该模块则需要将训练数据处理为相应的范围-1至+1的对称量化形式。
全精度模型训练模块为神经网络训练模块,用于为后续分阶段量化感知训练模块提供高精度的预训练模型。具体而言,全精度模型训练步骤分为:0)初始化模型参数;1)获取特定大小的训练数据及其对应的标签;2)利用全精度的模型推理得到预测结果,并利用标签根据事先设计好的损失函数计算模型损失;3)根据损失计算各个参数的梯度;4)根据事先规定的方式更新模型参数;5)重复执行1)~4)直至模型收敛;6)得到全精度的预训练模型。
分阶段量化感知训练模块用于对预训练模型中需要进行量化的待量化网络层进行量化(即由浅至深,按照预定的规则,分阶段、逐层插入伪量化节点),得到更新后的预训练模型。
量化模型转换模块用于对更新后的预训练模型进行模型转换,得到量化模型。由于分阶段量化感知训练模块中得到的更新后的预训练模型中包含伪量化算子,且模型参数仍为全精度,故需要进一步处理。量化模型执行模块用于对输入的待预测数据进行处理得到预测结果。相比于全精度的浮点数计算,量化后的定点数计算需要相应的处理器底层指令支持。量化模型执行模块利用量化模型转换模块中得到的量化模型,对输入数据进行推理,得到预测结果。以int8量化为例,开源项目TNN、NCNN等框架能够对int8数值计算做专门的底层支持与优化,以真正发挥模型量化的优点。模型应用模块用于将量化模型部署至数据处理设备中。
总结上述,图1b所示的模型量化系统在进行模型量化时,具体过程可以概括为如下:(1)分阶段量化感知训练模型从全精度模型训练模块获取预训练模型,该预训练模型包括N个网络层,预训练模型是基于第一训练数据集对初始模型进行迭代训练得到的,第一训练数据集可以是由训练数据模块提供的,第一训练数据集包括全精度的第一训练数据以及所述第一训练数据的训练标签,通常来说,全精度数据是指未经处理(如量化处理、压缩处理、模糊处理、裁剪处理等)的原始数据。(2)分阶段量化感知模块从训练数据模块获取第二训练数据集,并采用第二训练数据集对预训练模型进行迭代训练,第二训练数据集包括量化的第二训练数据以及第二训练数据集对应的训练标签,对于信号来说,量化可以理解为将连续的信号转换为离散的信号;对于图像来说,量化可以理解为将图像的清晰度降低;对于数据来说,量化可以理解为将高精度数据转换为低精度数据。(3)在迭代训练过程中,若检测到当前迭代次数满足参数量化条件(如当前迭代次数能被P整除,P为正整数),则从N个网络层中确定出目标待量化网络层;在一个实施例中,目标待量化网络层可以是由预训练模型中的卷积层和全连接层组成的网络层集合中未被量化处理过的网络层;进一步地,对目标待量化网络层进行量化(如通过伪量化算子对目标待量化网络层中的参数进行运算处理),并采用量化后的目标待量化网络模型更新预训练模型;(4)采用第二训练数据集对更新后的预训练模型进行训练(即将第二训练数据输入更新后的预训练模型,并根据更新后的预训练模型输出的结果和第二训练数据的训练标签,对更新后的预训练模型的N个网络层的参数进行更新),得到量化模型。可以理解的是,通过重复执行步骤(3)和步骤(4)(即在迭代训练过程中),可以逐步(分阶段)对预训练模型中需要进行量化的网络层进行量化,直至预训练模型中所有需要进行量化的网络层均完成量化,且预训练模型收敛,得到待转换模块。进一步地,通过量化模型转换模块对待转换模块进行量化转换(基于量化系数对待转换模型包括的N个网络参数进行量化转换),得到最终的量化模型。量化模型执行模块可以调用量化模型转换模块转换得到的量化模型对待处理数据进行处理,得到处理结果;例如,设量化模型转换模块转换得到的量化模型是人脸识别模型,量化模型执行模块调用人脸识别模型对待识别人脸数据(即待处理数据)进行识别,得到人脸识别结果(即处理结果)。此外,量化模型转换模块转换得到的量化模型还可以通过模型应用模块部署到数据处理设备中;例如,通过模型应用模块将人脸识别模型(量化模型)部署到摄像头(数据处理设备)中。
请参阅图2,图2为本申请实施例提供的一种数据处理方法的流程图。该方法可以由一个数据处理设备来执行,本申请实施例的所述方法包括如下步骤:
S201、获取预训练模型。
预训练模型可以是指使用全精度的训练数据对初始模型训练完成的模型,初始模型可以是人脸识别模型、噪声识别模型、文本识别模型、疾病预测模型等。具体实现中,预训练模型是基于第一训练数据集对初始模型进行迭代训练得到的,第一训练数据集包括全精度的第一训练数据(全精度数据是指未经处理(如量化处理、压缩处理、模糊处理、裁剪处理等)的原始数据)以及第一训练数据的训练标签(用于对预训练网络模型中的参数进行优化);具体地,预训练模型可以是训练至收敛的全精度的模型,预训练模型的训练过程包括:1)获取特定大小的训练数据(第一训练数据集中的第一训练数据)及其对应的标签;2)利用全精度的模型推理得到预测结果,并利用标签根据事先设计好的损失函数计算模型损失;3)根据损失计算各个参数的梯度;4)根据事先规定的方式更新模型参数(使得优化后的模型的预测结果相比于优化前更加接近第一训练数据的训练标签);5)重复执行1)~4)直至模型收敛;6)得到全精度的预训练模型。
S202、获取第二训练数据集,并采用第二训练数据集对预训练模型进行迭代训练。
第二训练数据集包括量化的第二训练数据(对于信号来说,量化可以理解为将连续的信号转换为离散的信号;对于图像来说,量化可以理解为将图像的清晰度降低;对于数据来说,量化可以理解为将高精度数据转换为低精度数据(如将浮点型数据转换为整型数据))以及第二训练数据集对应的训练标签(用于对预训练模型中的参数进行优化)。
采用第二训练数据集对预训练模型进行迭代训练是指:将第二训练数据输入预训练模型,并根据预训练模型输出的结果和第二训练数据的训练标签,对预训练模型的N个网络层的参数进行优化(使得优化后的模型的预测结果相比于优化前更加接近第二训练数据的训练标签),得到量化模型。具体地,每次迭代训练包括前向运算和反向运算(后向运算);其中,前向运算是指,在训练数据输入预训练模型后,通过预训练模型的N个网络层中的神经元对输入的数据进行加权处理,并根据加权处理的结果输出训练数据的预测结果;反向运算是指,根据预测结果和训练数据对应的训练标签(通过预训练模型对应的损失函数)计算模型损失,并根据损失计算各个参数的梯度,进而对预训练模型的参数进行更新,使得更新后的预训练模型的预测结果相比于更新前更趋近于训练数据对应的训练标签。
可选的,第二训练数据集可以是对第一训练数据集进行量化处理后得到的,在进行量化处理时,还需要考虑量化模型在执行时的限制;例如,常用的TNN量化模型执行框架仅支持输入形式为范围-1至+1的对称量化形式,故该模块则需要将训练数据处理为相应的范围-1至+1的对称量化形式。
S203、在迭代训练过程中,若当前迭代次数满足参数量化条件,则从N个网络层中确定出目标待量化网络层,并对目标待量化网络层进行量化;以及根据量化后的目标待量化网络层更新预训练模型。
参数量化条件可以是由用户指定的;例如,用户指定在迭代次数为第3次,第5次,第11次,第19次,第23次…时,对目标待量化网络层进行量化;参数量化条件也可以由开发人员设定的(迭代次数满足一定规律);例如,开发人员设定每进行N次迭代,则对目标待量化网络层进行量化;又例如,若当前迭代次数满足预设的运算规律(如等比数列,等差数列等)时,则对目标待量化网络层进行量化;参数量化条件还可以是,若数据处理设备检测到预训练模型收敛,则对目标待量化网络层进行量化。
在一种实施方式中,目标待量化网络层可以是有用户指定的;例如,用户指定对预训练模型的第3层网络层,第10层网络层和第15层网络层逐一进行量化。目标待量化网络层也可以是只能设备根据判断条件从预训练模型中确定的,例如,数据处理设备按照由浅至深的顺序,逐一进行判断,设数据处理设备当前判断的是第j层网络层(即前j-1层均不符合目标待量化网络层的判断条件),j为正整数,且j小于等于N;若第j层网络层属于目标层(如卷积层,全连接层),且第j层网络层未经过量化,则将第j层网络层确定为目标待量化网络层。
进一步地,数据处理设备对目标待量化网络层进行量化的过程包括:获取量化系数,并基于该量化系数与第一参数计算伪量化算子,第一参数是指目标待量化网络层中的参数,在一个实施例中,第一参数是指目标待量化网络层中绝对值最大的参数;将第一参数与伪量化算子进行预设的运算处理,并采用运算处理结果(即运算处理后得到的参数)替换目标待量化网络层中的原始参数。再根据量化后的目标待量化网络层更新预训练模型,例如,在目标量化网络层更新后,预训练模型中除目标量化网络层之外的一个或多个网络层中的参数也需要随之更新,以便于更新后的预训练模型的预测结果更接近实际结果(即第二训练数据的标签)。
S204、采用第二训练数据集对更新后的预训练模型进行训练,得到量化模型。
在一种实施方式中,数据处理设备将第二训练数据输入更新后的预训练模型,并根据更新后的预训练模型输出的结果和第二训练数据的训练标签,对更新后的预训练模型的N个网络层的参数进行更新,使得更新后的预训练模型的预测结果更接近实际结果(即第二训练数据的标签),进而得到量化模型。
可以理解的是,在迭代训练过程中,通过重复执行步骤S203和步骤S204,数据处理设备可以逐步(分阶段)对待量化网络模型中需要进行量化的网络层进行量化(即每次选择待量化网络模型中的一个需要进行量化的网络层进行量化),直至待量化网络模型中所有需要进行量化的网络层均完成量化,且预训练模型收敛,得到最终的量化模型。实践发现,通过本申请提供的数据处理方法对模型进行处理,可以较好地减小神经网络模型的规模,且较好地保留了神经网络模型的表征能力(即降低了直接对升级网络模型中的所有网络层进行量化带来的识别精度损失)。
在本申请实施例中,获取预训练模型,以及第二训练数据集,并采用第二训练数据集对预训练模型进行迭代训练;在迭代训练过程中若当前迭代次数满足参数量化条件,则从N个网络层中确定出目标待量化网络层,对目标待量化网络层进行量化,根据量化后的目标待量化网络层更新预训练模型;并采用第二训练数据集对更新后的预训练模型进行训练,得到量化模型。可见,在对预训练模型进行迭代训练过程中,通过采用量化后的目标待量化网络层来更新预训练模型,能够较好地减小神经网络模型的规模。
请参阅图3,图3为本申请实施例提供的另一种数据处理方法的流程图。该方法可以由一个数据处理设备来执行,本申请实施例的所述方法包括如下步骤:
S301、获取预训练模型。
在一种实施方式中,响应于在数据处理设备中部署预训练模型,数据处理设备获取预训练模型,在获取预训练模型后,数据处理设备根据自身的配置参数(如存储空间、计算能力、功耗等)判断自身是否满足部署预训练模型的部署条件;若数据处理设备判定自身不满足预训练模型的部署条件,则继续执行步骤S302-步骤S308,或者执行步骤S202-步骤S204,进而得到预训练模型对应的量化模型,响应于量化模型的部署条件与数据处理设备的配置参数相匹配,部署该量化模型;相应地,若数据处理设备判定自身满足预训练模型的部署条件,则数据处理设备可以直接部署预训练模型。
S302、获取第二训练数据集,并采用第二训练数据集对预训练模型进行迭代训练。
步骤S301和步骤S302的具体实施方式可参考图2中步骤S201和步骤S202中的实施方式,在此不再赘述。
S303、在迭代训练过程若当前迭代次数满足参数量化条件,则从N个网络层中确定出目标待量化网络层。
在一种实施方式中,N个网络层中包括按照网络由浅至深顺序连接的M个卷积层和W个全连接层,M,W为正整数,且M,W均小于N。数据处理设备按照由浅至深顺序从M个卷积层和W个全连接层中,选择未进行量化处理的网络层,并将选择的网络层作为目标待量化网络层。例如,设预训练模型中第3层-第7层为卷积层,第21层-第23层为全连接层,且第3层和第4层已进行过量化处理,则数据处理设备按照由浅至深的顺序,将第5层确定为目标待量化网络层。
S304、获取量化系数,并基于量化系数与第一参数计算伪量化算子。
在一种实施方式中,第一参数(即目标待量化网络层中的参数)的数量为至少一个。数据处理设备获取量化系数的过程包括:确定量化位数,量化位数可以是由用户根据量化需求设定的,也可以是由开发人员预先设置好的;并从至少一个第一参数中确定满足绝对值要求的目标第一参数。在一个实施例中,目标第一参数是至少一个第一参数中,绝对值最大的第一参数。进一步地,数据处理设备将目标第一参数和量化位数代入量化系数运算规则中进行运算,得到量化系数,在得到量化系数后,数据处理设备基于量化系数和第一参数计算伪量化算子。在一个实施例中,数据处理设备将第一参数和量化系数进行相除运算,并采用取整函数对相除运算结果进行取整运算,再将取整运算结果与量化系数进行相乘运算,得到伪量化算子,具体计算方法如公式1所示:
Figure BDA0003087229610000131
其中,Q表示伪量化算子,R为第一参数,D表示量化系数,round()函数表示取整,即大于等于0.5的部分向上进位,反之则舍去。在一个实施例中,
Figure BDA0003087229610000132
MAX=max(abs(R));abs()为绝对值函数,abs(R)表示求R的绝对值,max(abs(R))即目标第一参数(绝对值最大的第一参数),N为量化位数,对于整形化而言,N=8(即量化位数为8位)。
S305、将第一参数与伪量化算子进行预设的运算处理,并采用运算处理结果替换目标待量化网络层。
在一种实施方式中,数据处理设备在计算得到伪量化算子后,将伪量化算子与第一参数(即目标待量化网络层中的参数)进行预设的运算处理(如相乘,或者相除等),得到目标待量化网络层中各个参数对应的量化后的参数,采用量化后的参数替换掉目标待量化网络层中的参数,得到量化后的目标待量化网络层。
S306、采用第二训练数据集对更新后的预训练模型进行训练,训练完成后得到待转换模型。
在一种实施方式中,数据处理设备根据量化后的目标待量化网络层更新预训练模型,即在更新目标待量化网络层后,采用第二训练数据集对更新后的预训练模型进行训练(参数调整),得到更新后的预训练模型。也就是说,当数据处理设备根据伪量化算子更新预训练模型中的一层网络层的参数后,可能会对其他网络层造成影响,因此每更新一层网络层的参数,需要采用第二训练数据集对更新后的预训练模型进行训练,来调整预训练模型中的参数,以使得更新后的预训练模型的预测结果更接近实际结果(即第二训练数据的标签)。
进一步地,数据处理设备采用第二训练数据集对更新后的预训练模型进行训练过程中,若当前迭代次数满足参数量化条件,且N个网络层中存在待量化处理的待量化网络层,将待量化处理的待量化网络层确定为目标待量化网络层,并触发执行对目标待量化网络层进行量化的步骤。
也就是说,在迭代训练过程中,通过重复执行步骤S303-步骤S306,数据处理设备可以逐步(分阶段)对待量化网络模型中需要进行量化的网络层进行量化(即每次选择待量化网络模型中的一个需要进行量化的网络层进行量化),直至待量化网络模型中所有需要进行量化的网络层均完成量化,且预训练模型收敛,得到最终的量化模型。实践发现,通过本申请提供的数据处理方法对模型进行处理,可以较好地减小神经网络模型的规模,且较好地保留了神经网络模型的表征能力(即降低了直接对升级网络模型中的所有网络层进行量化带来的识别精度损失)。
图4a为本申请实施例提供的一种预训练模型的更新流程图。如图4a所示,预训练模型的更新流程包括Step1-Step7:
Step1:数据处理设备获取预训练模型,该预训练模型的参数可以是全精度模型训练模块采用训练数据模块中的全精度训练数据集(即第一训练数据集)对初始模型进行预训练得到的。
Step2:数据处理设备根据预先设定好的分阶段量化规则,确定伪量化节点的插入时机(即触发对目标待量化网络层进行量化的条件)以及插入位置。本本申请提出的分阶段逐层量化方案对应的示例规则为:由浅层至深层,每隔N步(步:一次模型前向、反向运算,即将训练数据输入模型,得到预测结果,根据预测结果和训练数据的标签对模型进行更新)在需要量化的层的关联位置处插入伪量化算子(如在两层网络层之间伪量化算子),以模拟实际的量化操作。
Step3:若Step2数据处理设备判定当前网络层中需要插入伪量化算子,则根据上述公式1插入当前网络层对应的伪量化算子(即通过伪量化算子对当前网络层的参数进行更新,具体的实施方式可参考步骤S304和步骤S305,在此不再赘述)。
Step4:数据处理设备获取训练数据,该训练数据可以是由训练数据模块提供的训练数据(如训练数据是训练数据模块对全精度数据进行量化后得到的数据)。
Step5:数据处理设备在带有伪量化算子的预训练模型中前向计算损失函数。
Step6:数据处理设备根据损失函数计算量化模型中各个参数的梯度,最后根据事先设定的方式更新预训练模型的参数。需要说明的是,此时计算的数据仍以全精度形式计算,伪量化算子仅仅模拟了量化操作。
Step7:判断预训练模型中是否还存在需要进行量化的网络层(即确保预训练模型中所有需要量化的网络层均已完成量化),若预训练模型中不存在需要进行量化的网络层,并且预训练模型已经收敛,则停止迭代更新预训练模型,输出更新后的预训练模型;若预训练模型中存在需要进行量化的网络层,则继续重复step2~6,直至若预训练模型中不存在需要进行量化的网络层,且预训练模型已经收敛。
S307、基于量化系数对待转换模型包括的N个网络参数进行量化转换,得到量化模型。
在一种实施方式中,数据处理设备提取各个伪量化算子中对应网络层的量化系数D和对应网络层量化后的参数Z=round(R/D),此时Z为N比特的定点数,量化系数D为全精度数。对于激活输出的量化算子,除了提取量化系数D外,保留对应的伪量化算子。在提取上述参数后,数据处理设备可以通过模型转换框架(如tflite、onnx等框架),将预训练模型转换为量化模型。
在另一种实施方式中,数据处理设备在得到量化模型后,根据自身的配置参数判断量化模型是否满足部署条件,若量化模型满足部署条件,则部署量化模型;若量化模型不满足部署条件,则可以通过调整量化位数(量化位数越小,则模型的规模(所需存储空间、计算能力、功耗等)越小)进一步缩小量化模型的规模,以便于得到满足部署条件的量化模型。
在一种实施方式中,数据处理设备在部署量化模型后,数据处理设备获取待预测数据;对待预测数据进行量化(如通过训练数据模块对待预测数据进行量化),并调用量化模型对量化后的待预测数据进行数据处理。具体实现中,量化模型可以是人脸识别模型,数据处理设备(通过具有图像采集功能的设备,如摄像头)采集待处理人脸数据(即待预测数据),并对待处理人脸数据进行量化,得到量化人脸数据(即量化后的待预测数据),数据处理设备从量化人脸数据中确定人脸区域(如对量化人脸数据进行裁剪,得到人脸区域),调用人脸识别模型对量化人脸区域进行人脸识别,并输出识别结果。可以理解的是,通过从量化人脸数据中确定人脸区域,可以进一步减小人脸识别模型的运算量,提高人脸识别模型的识别效率。同理,量化模型还可以是语音识别模型,数据处理设备通过语音采集设备(如麦克风)采集的待识别语音数据(即待预测数据),并对待识别语音数据进行量化,得到量化语音数据(即量化后的待预测数据),数据处理设备调用语音识别模型对量化语音数据进行语音识别,并输出识别结果。类似地,量化模型还可以是预测模型(如预测用户可能喜欢的商品、视频等)、分类模型(如对短视频进行分类)等。
本申请实施例中,获取预训练模型,以及第二训练数据集,并采用第二训练数据集对预训练模型进行迭代训练;在迭代训练过程中若当前迭代次数满足参数量化条件,则从N个网络层中确定出目标待量化网络层,对目标待量化网络层进行量化,根据量化后的目标待量化网络层更新预训练模型;并采用第二训练数据集对更新后的预训练模型进行训练,得到量化模型。可见,在对预训练模型进行迭代训练过程中,通过采用量化后的目标待量化网络层来更新预训练模型,能够较好地减小神经网络模型的规模;实践发现,通过渐进优化的方式不仅能够得到紧凑、高效的识别模型,还能够显著降低量化误差对训练过程的干扰,进而优化量化模型的性能(如识别速度,识别精度等)。
基于上述的数据处理方法,本发明实施例提供了一种量化模型的应用场景,参见图4b,为本申请实施例提供的一种量化模型的应用场景图。在图4b中,数据处理设备401是部署了人脸识别模型的摄像头,人脸识别模型的部署方式可参考上述步骤S201-步骤S204,或者参考步骤S301-步骤S307,在此不再赘述。此外,该摄像头(数据处理设备401)中存储了待寻找的目标人脸(如走失的小孩的照片),摄像头采集经过区域402(即摄像采集区域)的人的人脸数据,并将这些人脸与目标人脸进行比对,当检测到采集的人脸数据中存在与目标人脸匹配的人脸(如相似度高于阈值)时,则输出提示信息。具体地,数据处理设备401将区域402中采集的人脸数据(图片)进行量化处理(如调整清晰度),得到量化后的人脸数据,并从量化后的人脸数据中确定出人脸区域,调用人脸识别模型对量化人脸区域进行人脸识别(即检测人脸区域与目标人脸相似度),并输出人脸识别结果。
参见图4c,为本申请实施例提供的另一种量化模型的应用场景图。在图4c中,数据处理设备403是部署了人脸识别模型的门禁设备,该门禁设备中存储了具有开门权限的目标用户的人脸;当检测到开门请求时,门禁设备采集当前请求开门的请求用户的人脸,若请求用户的人脸与目标用户的人脸匹配,则开门,若不匹配,则输出提示信息,该提示信息用于提示请求用户不具有开门权限。具体地,数据处理设备403将区域404(即摄像采集区域)中采集的人脸数据(图片)进行量化处理(如调整清晰度),得到量化后的人脸数据,并从量化后的人脸数据中确定出人脸区域,调用人脸识别模型对量化人脸区域进行人脸识别(即检测人脸区域与目标用户的人脸相似度),若人脸识别通过(相似度高于阈值),则开门;若人脸识别未通过(相似度低于阈值),则提示请求用户不具有开门权限。
上述详细阐述了本申请实施例的方法,为了便于更好地实施本申请实施例的上述方案,相应地,下面提供了本申请实施例的装置。
请参见图5,图5为本申请实施例提供的一种数据处理装置的结构示意图,该装置可以搭载在图1a所示的数据处理设备101,或者模型存储设备102上。图5所示的数据处理装置可以用于执行上述图2和图3所描述的方法实施例中的部分或全部功能。其中,各个单元的详细描述如下:
获取单元501,用于获取预训练模型,以及用于获取第二训练数据集;所述预训练模型包括N个网络层,所述N个网络层的参数是基于预训练模型中N个网络层的参数初始化得到的;所述预训练模型是基于第一训练数据集进行迭代训练得到的,所述第一训练数据集包括全精度的第一训练数据以及所述第一训练数据的训练标签;
处理单元502,用于采用所述第二训练数据集对所述预训练模型进行迭代训练;所述第二训练数据集包括量化的第二训练数据以及所述第二训练数据对应的训练标签;以及用于在迭代训练过程若当前迭代次数满足参数量化条件,则从所述N个网络层中确定出目标待量化网络层,对所述目标待量化网络层进行量化,根据量化后的目标待量化网络层更新所述预训练模型;以及用于采用所述第二训练数据集对更新后的预训练模型进行训练,得到量化模型。
在一个实施例中,所述处理单元502,具体用于:
获取量化系数,并基于所述量化系数与第一参数计算伪量化算子,所述第一参数是指所述目标待量化网络层中的参数;
将所述第一参数与所述伪量化算子进行预设的运算处理,并采用运算处理结果替换所述目标待量化网络层。
在一个实施例中,所述第一参数的数量为至少一个;所述处理单元502,具体用于:
确定量化位数,以及从至少一个第一参数中确定满足绝对值要求的目标第一参数;
将所述目标第一参数和所述量化位数代入量化系数运算规则中进行运算得到量化系数。
在一个实施例中,所述处理单元502,具体用于:
将所述第一参数和所述量化系数进行相除运算,并采用取整函数对相除运算结果进行取整运算;
将取整运算结果与所述量化系数进行相乘运算,得到伪量化算子。
在一个实施例中,所述N个网络层中包括按照网络由浅至深顺序连接的M个卷积层和W个全连接层,M,W为正整数,且M,W均小于N;所述处理单元502,具体用于:
按照由浅至深顺序从M个卷积层和W个全连接层中,选择未进行量化处理的网络层;
将选择的网络层作为目标待量化网络层。
在一个实施例中,所述处理单元502,还用于:
采用所述第二训练数据集对更新后的预训练模型进行训练过程中,若当前迭代次数满足参数量化条件,且所述N个网络层中存在待量化处理的待量化网络层,将待量化处理的待量化网络层确定为目标待量化网络层,并触发执行对所述目标待量化网络层进行量化的步骤。
在一个实施例中,所述处理单元502,具体用于:
采用所述第二训练数据集对更新后的预训练模型进行训练,训练完成后得到待转换模型;
基于量化系数对所述待转换模型包括的N个网络参数进行量化转换,得到量化模型。
在一个实施例中,所述处理单元502,具体用于:
获取所述更新后的预训练模型中量化后的网络层对应的伪量化算子的参数,以及所述量化后的网络层的参数;
根据量化后的网络层对应的伪量化算子的参数,以及所述量化后的网络层的参数对所述更新后的预训练模型进行转换,得到量化模型。
在一个实施例中,所述参数量化条件包括:当前迭代次数能被P整除,P为正整数。
在一个实施例中,所述处理单元502,还用于:
响应于在数据处理设备中部署所述预训练模型,获取所述数据处理设备的配置参数;
若所述数据处理设备的配置参数与所述预训练模型的部署条件不匹配,则触发执行如步骤S201-步骤S204,或者步骤S301-步骤S307所述的方法得到量化模型,所述量化模型的部署条件与所述数据处理设备的配置参数相匹配;
将所述量化模型部署在所述数据处理设备中。
在一个实施例中,所述量化模型为人脸识别模型;所述处理单元502,还用于:
采集待识别人脸数据;
对所述待识别人脸数据进行量化得到量化人脸数据;
从所述量化人脸数据中确定人脸区域;
调用所述量化模型对所述人脸区域进行识别处理,并输出识别结果。
根据本申请的一个实施例,图2和图3所示的数据处理方法所涉及的部分步骤可由图5所示的数据处理装置中的各个单元来执行。例如,图2中所示的步骤S201和步骤S202可由图5所示的获取单元501执行,步骤S203和步骤S204可由图5所示的处理单元502执行。图3中所示的步骤S301和步骤S302可由图5所示的获取单元501执行,步骤S303-步骤S308可由图5所示的处理单元502执行。图5所示的数据处理装置中的各个单元可以分别或全部合并为一个或若干个另外的单元来构成,或者其中的某个(些)单元还可以再拆分为功能上更小的多个单元来构成,这可以实现同样的操作,而不影响本申请的实施例的技术效果的实现。上述单元是基于逻辑功能划分的,在实际应用中,一个单元的功能也可以由多个单元来实现,或者多个单元的功能由一个单元实现。在本申请的其它实施例中,数据处理装置也可以包括其它单元,在实际应用中,这些功能也可以由其它单元协助实现,并且可以由多个单元协作实现。
根据本申请的另一个实施例,可以通过在包括中央处理单元(CPU)、随机存取存储介质(RAM)、只读存储介质(ROM)等处理元件和存储元件的例如计算机的通用计算装置上运行能够执行如图2和图3中所示的相应方法所涉及的各步骤的计算机程序(包括程序代码),来构造如图5中所示的数据处理装置,以及来实现本申请实施例的数据处理方法。所述计算机程序可以记载于例如计算机可读记录介质上,并通过计算机可读记录介质装载于上述计算装置中,并在其中运行。
基于同一发明构思,本申请实施例中提供的数据处理装置解决问题的原理与有益效果与本申请方法实施例中数据处理装置解决问题的原理和有益效果相似,可以参见方法的实施的原理和有益效果,为简洁描述,在这里不再赘述。
请参阅图6,图6为本申请实施例提供的一种数据处理设备的结构示意图,所述数据处理设备至少包括处理器601、通信接口602和存储器603。其中,处理器601、通信接口602和存储器603可通过总线或其他方式连接。其中,处理器601(或称中央处理器(CentralProcessing Unit,CPU))是终端的计算核心以及控制核心,其可以解析终端内的各类指令以及处理终端的各类数据,例如:CPU可以用于解析用户向终端所发送的开关机指令,并控制终端进行开关机操作;再如:CPU可以在终端内部结构之间传输各类交互数据,等等。通信接口602可选的可以包括标准的有线接口、无线接口(如WI-FI、移动通信接口等),受处理器601的控制可以用于收发数据;通信接口602还可以用于终端内部数据的传输以及交互。存储器603(Memory)是终端中的记忆设备,用于存放程序和数据。可以理解的是,此处的存储器603既可以包括终端的内置存储器,当然也可以包括终端所支持的扩展存储器。存储器603提供存储空间,该存储空间存储了终端的操作系统,可包括但不限于:Android系统、iOS系统、Windows Phone系统等等,本申请对此并不作限定。
在本申请实施例中,处理器601通过运行存储器603中的可执行程序代码,用于执行如下操作:
获取预训练模型,所述预训练模型包括N个网络层;所述预训练模型是基于第一训练数据集进行迭代训练得到的,所述第一训练数据集包括全精度的第一训练数据以及所述第一训练数据的训练标签;
获取第二训练数据集,并采用所述第二训练数据集对所述预训练模型进行迭代训练;所述第二训练数据集包括量化的第二训练数据以及所述第二训练数据对应的训练标签;
在迭代训练过程中,若当前迭代次数满足参数量化条件,则从所述N个网络层中确定出目标待量化网络层,并对所述目标待量化网络层进行量化;以及根据量化后的目标待量化网络层更新所述预训练模型;
采用所述第二训练数据集对更新后的预训练模型进行训练,得到量化模型。
作为一种可选的实施例,处理器601对所述目标待量化网络层进行量化的具体实施例为:
获取量化系数,并基于所述量化系数与第一参数计算伪量化算子,所述第一参数是指所述目标待量化网络层中的参数;
将所述第一参数与所述伪量化算子进行预设的运算处理,并采用运算处理结果替换所述目标待量化网络层。
作为一种可选的实施例,第一参数的数量为至少一个,处理器601获取量化系数的具体实施例为:
确定量化位数,以及从至少一个第一参数中确定满足绝对值要求的目标第一参数;
将所述目标第一参数和所述量化位数代入量化系数运算规则中进行运算得到量化系数。
作为一种可选的实施例,处理器601基于所述量化系数与第一参数计算伪量化算子的具体实施例为:
将所述第一参数和所述量化系数进行相除运算,并采用取整函数对相除运算结果进行取整运算;
将取整运算结果与所述量化系数进行相乘运算,得到伪量化算子。
作为一种可选的实施例,N个网络层中包括按照网络由浅至深顺序连接的M个卷积层和W个全连接层,M,W为正整数,且M,W均小于N;处理器601从N个网络层中确定出目标待量化网络层的具体实施例为:
按照由浅至深顺序从M个卷积层和W个全连接层中,选择未进行量化处理的网络层;
将选择的网络层作为目标待量化网络层。
作为一种可选的实施例,处理器601通过运行存储器603中的可执行程序代码,还执行如下操作:
采用所述第二训练数据集对更新后的预训练模型进行训练过程中,若当前迭代次数满足参数量化条件,且所述N个网络层中存在待量化处理的待量化网络层,将待量化处理的待量化网络层确定为目标待量化网络层,并触发执行对所述目标待量化网络层进行量化的步骤。
作为一种可选的实施例,处理器601采用所述第二训练数据集对更新后的预训练模型进行训练,得到量化模型的具体实施例为:
采用所述第二训练数据集对更新后的预训练模型进行训练,训练完成后得到待转换模型;
基于量化系数对所述待转换模型包括的N个网络参数进行量化转换,得到量化模型。
作为一种可选的实施例,处理器601基于量化系数对所述待转换模型包括的N个网络参数进行量化转换,得到量化模型的具体实施例为:
获取所述更新后的预训练模型中量化后的网络层对应的伪量化算子的参数,以及所述量化后的网络层的参数;
根据量化后的网络层对应的伪量化算子的参数,以及所述量化后的网络层的参数对所述更新后的预训练模型进行转换,得到量化模型。
作为一种可选的实施例,所述参数量化条件包括:当前迭代次数能被P整除,P为正整数。
作为一种可选的实施例,处理器601通过运行存储器603中的可执行程序代码,还执行如下操作:
响应于在数据处理设备中部署所述预训练模型,获取所述数据处理设备的配置参数;
若所述数据处理设备的配置参数与所述预训练模型的部署条件不匹配,则触发执行如步骤S201-步骤S204,或者步骤S301-步骤S307所述的方法得到量化模型,所述量化模型的部署条件与所述数据处理设备的配置参数相匹配;
将所述量化模型部署在所述数据处理设备中。
作为一种可选的实施例,所述量化模型为人脸识别模型;处理器601通过运行存储器603中的可执行程序代码,还执行如下操作:
采集待识别人脸数据;
对所述待识别人脸数据进行量化得到量化人脸数据;
从所述量化人脸数据中确定人脸区域;
调用所述量化模型对所述人脸区域进行识别处理,并输出识别结果。
基于同一发明构思,本申请实施例中提供的数据处理设备解决问题的原理与有益效果与本申请方法实施例中数据处理方法解决问题的原理和有益效果相似,可以参见方法的实施的原理和有益效果,为简洁描述,在这里不再赘述。
本申请实施例还提供一种计算机可读存储介质,所述计算机可读存储介质中存储有一条或多条指令,所述一条或多条指令适于由处理器加载并执行上述方法实施例所述的数据处理方法。
本申请实施例还提供一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述方法实施例所述的数据处理方法。
本申请实施例还提供一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述数据处理的方法。
本申请实施例方法中的步骤可以根据实际需要进行顺序调整、合并和删减。
本申请实施例装置中的模块可以根据实际需要进行合并、划分和删减。
本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序可以存储于一计算机可读存储介质中,可读存储介质可以包括:闪存盘、只读存储器(Read-Only Memory,ROM)、随机存取器(RandomAccess Memory,RAM)、磁盘或光盘等。
以上所揭露的仅为本申请一种较佳实施例而已,当然不能以此来限定本申请之权利范围,本领域普通技术人员可以理解实现上述实施例的全部或部分流程,并依本申请权利要求所作的等同变化,仍属于发明所涵盖的范围。

Claims (14)

1.一种数据处理方法,其特征在于,所述方法包括:
获取预训练模型,所述预训练模型包括N个网络层;所述预训练模型是基于第一训练数据集进行迭代训练得到的,所述第一训练数据集包括全精度的第一训练数据以及所述第一训练数据的训练标签;
获取第二训练数据集,并采用所述第二训练数据集对所述预训练模型进行迭代训练;所述第二训练数据集包括量化的第二训练数据以及所述第二训练数据对应的训练标签;
在迭代训练过程中,若当前迭代次数满足参数量化条件,则从所述N个网络层中确定出目标待量化网络层,并对所述目标待量化网络层进行量化;以及根据量化后的目标待量化网络层更新所述预训练模型;
采用所述第二训练数据集对更新后的预训练模型进行训练,得到量化模型。
2.如权利要求1所述的方法,其特征在于,所述对所述目标待量化网络层进行量化,包括:
获取量化系数,并基于所述量化系数与第一参数计算伪量化算子,所述第一参数是指所述目标待量化网络层中的参数;
将所述第一参数与所述伪量化算子进行预设的运算处理,并采用运算处理结果替换所述目标待量化网络层。
3.如权利要求2所述的方法,其特征在于,所述第一参数的数量为至少一个,所述获取量化系数,包括:
确定量化位数,以及从至少一个第一参数中确定满足绝对值要求的目标第一参数;
将所述目标第一参数和所述量化位数代入量化系数运算规则中进行运算得到量化系数。
4.如权利要求2所述的方法,其特征在于,所述基于所述量化系数与第一参数计算伪量化算子,包括:
将所述第一参数和所述量化系数进行相除运算,并采用取整函数对相除运算结果进行取整运算;
将取整运算结果与所述量化系数进行相乘运算,得到伪量化算子。
5.如权利要求1所述的方法,其特征在于,所述N个网络层中包括按照网络由浅至深顺序连接的M个卷积层和W个全连接层,M,W为正整数,且M,W均小于N,所述从所述N个网络层中确定出目标待量化网络层,包括:
按照由浅至深顺序从M个卷积层和W个全连接层中,选择未进行量化处理的网络层;
将选择的网络层作为目标待量化网络层。
6.如权利要求1所述的方法,其特征在于,所述方法还包括:
采用所述第二训练数据集对更新后的预训练模型进行训练过程中,若当前迭代次数满足参数量化条件,且所述N个网络层中存在待量化处理的待量化网络层,将待量化处理的待量化网络层确定为目标待量化网络层,并触发执行对所述目标待量化网络层进行量化的步骤。
7.如权利要求1所述的方法,其特征在于,所述采用所述第二训练数据集对更新后的预训练模型进行训练,得到量化模型,包括:
采用所述第二训练数据集对更新后的预训练模型进行训练,训练完成后得到待转换模型;
基于量化系数对所述待转换模型包括的N个网络参数进行量化转换,得到量化模型。
8.如权利要求7所述的方法,其特征在于,所述基于量化系数对所述待转换模型包括的N个网络参数进行量化转换,得到量化模型,包括:
获取所述更新后的预训练模型中量化后的网络层对应的伪量化算子的参数,以及所述量化后的网络层的参数;
根据量化后的网络层对应的伪量化算子的参数,以及所述量化后的网络层的参数对所述更新后的预训练模型进行转换,得到量化模型。
9.如权利要求1所述的方法,其特征在于,所述参数量化条件包括:当前迭代次数能被P整除,P为正整数。
10.如权利要求1所述的方法,其特征在于,所述方法还包括:
响应于在数据处理设备中部署所述预训练模型,获取所述数据处理设备的配置参数;
若所述数据处理设备的配置参数与所述预训练模型的部署条件不匹配,则触发执行如权利要求1-9任一项所述的数据处理方法得到量化模型,所述量化模型的部署条件与所述数据处理设备的配置参数相匹配;
将所述量化模型部署在所述数据处理设备中。
11.如权利要求10所述的方法,其特征在于,所述量化模型为人脸识别模型,在将所述量化模型部署在所述数据处理设备中后,所述方法还包括:
采集待识别人脸数据;
对所述待识别人脸数据进行量化得到量化人脸数据;
从所述量化人脸数据中确定人脸区域;
调用所述量化模型对所述人脸区域进行识别处理,并输出识别结果。
12.一种数据处理装置,其特征在于,所述数据处理装置包括:
获取单元,用于获取预训练模型,以及用于获取第二训练数据集;所述预训练模型包括N个网络层,所述N个网络层的参数是基于预训练模型中N个网络层的参数初始化得到的;所述预训练模型是基于第一训练数据集进行迭代训练得到的,所述第一训练数据集包括全精度的第一训练数据以及所述第一训练数据的训练标签;
处理单元,用于采用所述第二训练数据集对所述预训练模型进行迭代训练;所述第二训练数据集包括量化的第二训练数据以及所述第二训练数据对应的训练标签;以及用于在迭代训练过程若当前迭代次数满足参数量化条件,则从所述N个网络层中确定出目标待量化网络层,对所述目标待量化网络层进行量化,根据量化后的目标待量化网络层更新所述预训练模型;以及用于采用所述第二训练数据集对更新后的预训练模型进行训练,得到量化模型。
13.一种数据处理设备,其特征在于,包括:存储装置和处理器;
所述存储装置中存储有计算机程序;
处理器,用于加载并执行所述计算机程序,以实现如权利要求1-11任一项所述的数据处理方法。
14.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机程序,所述计算机程序适于被处理器加载并执行如权利要求1-11任一项所述的数据处理方法。
CN202110583709.9A 2021-05-27 2021-05-27 数据处理方法、装置、设备及计算机可读存储介质 Pending CN113762503A (zh)

Priority Applications (3)

Application Number Priority Date Filing Date Title
CN202110583709.9A CN113762503A (zh) 2021-05-27 2021-05-27 数据处理方法、装置、设备及计算机可读存储介质
PCT/CN2021/106602 WO2022246986A1 (zh) 2021-05-27 2021-07-15 数据处理方法、装置、设备及计算机可读存储介质
US18/300,071 US20230252294A1 (en) 2021-05-27 2023-04-13 Data processing method, apparatus, and device, and computer-readable storage medium

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110583709.9A CN113762503A (zh) 2021-05-27 2021-05-27 数据处理方法、装置、设备及计算机可读存储介质

Publications (1)

Publication Number Publication Date
CN113762503A true CN113762503A (zh) 2021-12-07

Family

ID=78787214

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110583709.9A Pending CN113762503A (zh) 2021-05-27 2021-05-27 数据处理方法、装置、设备及计算机可读存储介质

Country Status (3)

Country Link
US (1) US20230252294A1 (zh)
CN (1) CN113762503A (zh)
WO (1) WO2022246986A1 (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20230076196A1 (en) * 2021-09-03 2023-03-09 Adobe Inc. Asynchronous multi-user real-time streaming of web-based image edits using generative adversarial network(s)
WO2024021621A1 (zh) * 2022-07-26 2024-02-01 中兴通讯股份有限公司 功率放大器模型的获取方法、装置及功率放大器模型

Citations (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20180107926A1 (en) * 2016-10-19 2018-04-19 Samsung Electronics Co., Ltd. Method and apparatus for neural network quantization
US20190354842A1 (en) * 2018-05-17 2019-11-21 Qualcomm Incorporated Continuous relaxation of quantization for discretized deep neural networks
CN111340226A (zh) * 2020-03-06 2020-06-26 北京市商汤科技开发有限公司 一种量化神经网络模型的训练及测试方法、装置及设备
CN111602402A (zh) * 2018-04-13 2020-08-28 谷歌有限责任公司 空间自适应量化感知去块滤波器
CN111612147A (zh) * 2020-06-30 2020-09-01 上海富瀚微电子股份有限公司 深度卷积网络的量化方法
CN111626402A (zh) * 2020-04-22 2020-09-04 中国人民解放军国防科技大学 一种卷积神经网络量化方法及装置、计算机可读存储介质
CN111695688A (zh) * 2020-06-11 2020-09-22 腾讯科技(深圳)有限公司 一种模型训练方法、装置、设备及存储介质
CN112132219A (zh) * 2020-09-24 2020-12-25 天津锋物科技有限公司 一种基于移动端的深度学习检测模型的通用部署方案
CN112508125A (zh) * 2020-12-22 2021-03-16 无锡江南计算技术研究所 一种图像检测模型的高效全整数量化方法
CN112613604A (zh) * 2021-01-07 2021-04-06 江苏禹盛科技有限公司 神经网络的量化方法及装置
CN112712068A (zh) * 2021-03-19 2021-04-27 腾讯科技(深圳)有限公司 一种关键点检测方法、装置、电子设备及存储介质
CN112766307A (zh) * 2020-12-25 2021-05-07 北京迈格威科技有限公司 图像处理方法、装置、电子设备及可读存储介质

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10929755B2 (en) * 2019-04-08 2021-02-23 Advanced New Technologies Co., Ltd. Optimization processing for neural network model
CN110188880A (zh) * 2019-06-03 2019-08-30 四川长虹电器股份有限公司 一种深度神经网络的量化方法及装置
CN110969251B (zh) * 2019-11-28 2023-10-31 中国科学院自动化研究所 基于无标签数据的神经网络模型量化方法及装置
CN111598237A (zh) * 2020-05-21 2020-08-28 上海商汤智能科技有限公司 量化训练、图像处理方法及装置、存储介质
CN112101543A (zh) * 2020-07-29 2020-12-18 北京迈格威科技有限公司 神经网络模型确定方法、装置、电子设备及可读存储介质

Patent Citations (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20180107926A1 (en) * 2016-10-19 2018-04-19 Samsung Electronics Co., Ltd. Method and apparatus for neural network quantization
CN111602402A (zh) * 2018-04-13 2020-08-28 谷歌有限责任公司 空间自适应量化感知去块滤波器
US20190354842A1 (en) * 2018-05-17 2019-11-21 Qualcomm Incorporated Continuous relaxation of quantization for discretized deep neural networks
CN111340226A (zh) * 2020-03-06 2020-06-26 北京市商汤科技开发有限公司 一种量化神经网络模型的训练及测试方法、装置及设备
CN111626402A (zh) * 2020-04-22 2020-09-04 中国人民解放军国防科技大学 一种卷积神经网络量化方法及装置、计算机可读存储介质
CN111695688A (zh) * 2020-06-11 2020-09-22 腾讯科技(深圳)有限公司 一种模型训练方法、装置、设备及存储介质
CN111612147A (zh) * 2020-06-30 2020-09-01 上海富瀚微电子股份有限公司 深度卷积网络的量化方法
CN112132219A (zh) * 2020-09-24 2020-12-25 天津锋物科技有限公司 一种基于移动端的深度学习检测模型的通用部署方案
CN112508125A (zh) * 2020-12-22 2021-03-16 无锡江南计算技术研究所 一种图像检测模型的高效全整数量化方法
CN112766307A (zh) * 2020-12-25 2021-05-07 北京迈格威科技有限公司 图像处理方法、装置、电子设备及可读存储介质
CN112613604A (zh) * 2021-01-07 2021-04-06 江苏禹盛科技有限公司 神经网络的量化方法及装置
CN112712068A (zh) * 2021-03-19 2021-04-27 腾讯科技(深圳)有限公司 一种关键点检测方法、装置、电子设备及存储介质

Non-Patent Citations (4)

* Cited by examiner, † Cited by third party
Title
BENOIT JACOB等: "Quantization and Training of Neural Nerworks for Efficient Interger-Arithmetic Only Inference", 《CVPR 2018》, 16 December 2018 (2018-12-16), pages 2704 - 2713 *
YURIY MISHCHENKO: "Low-Bit Quantization and Quantization-Aware Training for Small-Footprint Keyword Spotting", 《2019 18TH IEEE INTERNATIONAL CONFERENCE ON MACHINE LEARNING AND APPLICATIONS (ICMLA)》, 17 February 2020 (2020-02-17), pages 706 - 711 *
叶佩文等: "基于深度学习的自编码器端到端物理层优化方案", 《计算机工程》, no. 12, 7 January 2020 (2020-01-07), pages 86 - 90 *
孙彦丽: "基于剪枝与量化的卷积神经网络压缩方法", 《计算机科学》, vol. 47, no. 08, 8 July 2020 (2020-07-08), pages 261 - 266 *

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20230076196A1 (en) * 2021-09-03 2023-03-09 Adobe Inc. Asynchronous multi-user real-time streaming of web-based image edits using generative adversarial network(s)
US11928762B2 (en) * 2021-09-03 2024-03-12 Adobe Inc. Asynchronous multi-user real-time streaming of web-based image edits using generative adversarial network(s)
WO2024021621A1 (zh) * 2022-07-26 2024-02-01 中兴通讯股份有限公司 功率放大器模型的获取方法、装置及功率放大器模型

Also Published As

Publication number Publication date
US20230252294A1 (en) 2023-08-10
WO2022246986A1 (zh) 2022-12-01

Similar Documents

Publication Publication Date Title
CN110347873B (zh) 视频分类方法、装置、电子设备及存储介质
CN111741330B (zh) 一种视频内容评估方法、装置、存储介质及计算机设备
CN111598190B (zh) 图像目标识别模型的训练方法、图像识别方法及装置
KR20180125905A (ko) 딥 뉴럴 네트워크(Deep Neural Network)를 이용하여 문장이 속하는 클래스(class)를 분류하는 방법 및 장치
US20230252294A1 (en) Data processing method, apparatus, and device, and computer-readable storage medium
CN112529149B (zh) 一种数据处理方法及相关装置
KR20220098991A (ko) 음성 신호에 기반한 감정 인식 장치 및 방법
CN115512005A (zh) 一种数据处理方法及其装置
CN116564338B (zh) 语音动画生成方法、装置、电子设备和介质
CN111274412A (zh) 信息提取方法、信息提取模型训练方法、装置及存储介质
CN114021524A (zh) 一种情感识别方法、装置、设备及可读存储介质
CN114694255B (zh) 基于通道注意力与时间卷积网络的句子级唇语识别方法
CN113656563A (zh) 一种神经网络搜索方法及相关设备
CN113850012B (zh) 数据处理模型生成方法、装置、介质及电子设备
CN116152938A (zh) 身份识别模型训练和电子资源转移方法、装置及设备
CN117036834B (zh) 基于人工智能的数据分类方法、装置及电子设备
CN111445545B (zh) 一种文本转贴图方法、装置、存储介质及电子设备
CN115292439A (zh) 一种数据处理方法及相关设备
CN113761282A (zh) 视频查重方法、装置、电子设备以及存储介质
CN116911361A (zh) 基于深度学习框架网络训练网络模型的方法、装置和设备
CN115905613A (zh) 音视频多任务学习、评估方法、计算机设备及介质
CN114913871A (zh) 目标对象分类方法、系统、电子设备及存储介质
CN113011555B (zh) 一种数据处理方法、装置、设备及存储介质
CN116913278B (zh) 语音处理方法、装置、设备和存储介质
CN112102830B (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