CN116384452A - 动态网络模型构建方法、装置、设备及存储介质 - Google Patents

动态网络模型构建方法、装置、设备及存储介质 Download PDF

Info

Publication number
CN116384452A
CN116384452A CN202310546559.3A CN202310546559A CN116384452A CN 116384452 A CN116384452 A CN 116384452A CN 202310546559 A CN202310546559 A CN 202310546559A CN 116384452 A CN116384452 A CN 116384452A
Authority
CN
China
Prior art keywords
prediction
result
neural network
reasoning
dynamic
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN202310546559.3A
Other languages
English (en)
Other versions
CN116384452B (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.)
Xi'an Aixin Yuanzhi Technology Co ltd
Beijing Aixin Technology Co ltd
Original Assignee
Xi'an Aixin Yuanzhi Technology Co ltd
Beijing Aixin Technology Co ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Xi'an Aixin Yuanzhi Technology Co ltd, Beijing Aixin Technology Co ltd filed Critical Xi'an Aixin Yuanzhi Technology Co ltd
Priority to CN202310546559.3A priority Critical patent/CN116384452B/zh
Publication of CN116384452A publication Critical patent/CN116384452A/zh
Application granted granted Critical
Publication of CN116384452B publication Critical patent/CN116384452B/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/04Architecture, e.g. interconnection topology
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N5/00Computing arrangements using knowledge-based models
    • G06N5/04Inference or reasoning models
    • G06N5/041Abduction
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • Software Systems (AREA)
  • Artificial Intelligence (AREA)
  • Mathematical Physics (AREA)
  • Computational Linguistics (AREA)
  • Data Mining & Analysis (AREA)
  • Evolutionary Computation (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Biomedical Technology (AREA)
  • Molecular Biology (AREA)
  • General Health & Medical Sciences (AREA)
  • Biophysics (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)
  • Feedback Control In General (AREA)

Abstract

本申请提供一种动态网络模型构建方法、装置、设备及存储介质,涉及机器学习领域,该方法包括:将预设神经网络划分为多个预测阶段;其中,多个预测阶段均可独立地输出推理结果;对预测阶段中的神经网络层进行量化,获得动态神经网络;其中,动态神经网络包括:多个不同比特位宽的预测阶段;对动态神经网络进行训练,获得目标动态网络模型。通过将多个可独立输出推理结果的预测阶段分别量化到不同的比特位宽,节省了计算量,降低了简单样本的推断成本,提高了对困难样本的推断精度;结合量化技术和动态网络技术两者的优势,能够同时从量化和动态网络技术中受益,提升了目标动态网络模型的性能。

Description

动态网络模型构建方法、装置、设备及存储介质
技术领域
本申请涉及机器学习技术领域,具体而言,涉及一种动态网络模型构建方法、装置、设备及存储介质。
背景技术
人工神经网络也简称为神经网络或称作连接模型,它是一种模仿动物神经网络行为特征,进行分布式并行信息处理的算法数学模型。模型量化是压缩模型体量、提升模型速度的常用方法,在量化后,模型中原本的浮点数被映射为离散的低比特整数,存储成本大幅降低、推理速度显著提升。动态神经网络也是一种提升模型推理速度的技术方案,通过让不同的样本在网络上对应不同的推理成本,相较于常规的静态网络,动态网络能够在几乎不牺牲模型推理精度的前提下,显著降低模型的平均推理成本。
目前,网络量化技术和动态神经网络技术的研究和应用相对独立,尚未出现有效的方法将两者有机结合起来,现有结合的方式常使得整个网络被量化到同一个比特位宽,因此,神经网络无法同时从量化和动态网络技术中受益,使得网络模型的推理效率大大降低。
发明内容
有鉴于此,本申请实施例的目的在于提供一种动态网络模型构建方法、装置、设备及存储介质,通过将神经网络模型划分成多个可独立输出推理结果的预测阶段,并将这些预测阶段分别量化到不同的比特位宽,且越靠后的预测阶段具有更高的比特位宽,具体的比特位宽设置可以根据实际需要灵活设置,从而节省了计算量,降低了简单样本的推断成本,提高了对困难样本的推断精度,从而解决了上述“无法同时从量化和动态网络技术中受益,使得网络模型的推理效率大大降低”的技术问题。
第一方面,本申请实施例提供一种动态网络模型构建方法,所述方法包括:将预设神经网络划分为多个预测阶段;其中,所述多个预测阶段均可独立地输出推理结果;对所述预测阶段中的神经网络层进行量化,获得动态神经网络;其中,所述动态神经网络包括:多个不同比特位宽的预测阶段;对所述动态神经网络进行训练,获得目标动态网络模型。
在上述实现过程中,通过将预设神经网络模型划分成多个可独立输出推理结果的预测阶段,并将这些预测阶段分别量化到不同的比特位宽,具体的比特位宽设置可以根据实际需要灵活设置,节省了计算量,降低了简单样本的推断成本,提高了对困难样本的推断精度;结合量化技术和动态网络技术两者的优势,能够同时从量化和动态网络技术中受益,提升了目标动态网络模型的性能。
可选地,所述将预设神经网络划分为多个预测阶段,包括:基于预设神经网络的给定拓扑结构,将所述预设神经网络依次划分为多个可独立地输出推理结果的预测阶段;其中,所述多个预测阶段中的前一个预测阶段的特征输出为后一个预测阶段的特征输入。
在上述实现过程中,通过基于给定拓扑结构将预设神经网络依次划分为多个可独立地输出推理结果的预测阶段,使得在推理时,每个预测阶段结束时都会输出对于目标问题的预测结果,方便后续将不同的预测阶段进行量化,量化到不同的比特位宽使得能够更好地同时处理简单样本、困难样本,降低了网络存储成本,提升了模型的性能。
可选地,所述预测阶段包括:前预测阶段、中间预测阶段和后预测阶段;所述前预测阶段的特征输出为所述中间预测阶段的特征输入,所述中间预测阶段的特征输出为所述后预测阶段的特征输入。
在上述实现过程中,预设神经网络可以被划分两个以上任意数量的预测阶段。但是,如果划分的预测阶段过多,结果准确但推理速度慢;如果划分的预测阶段过少,推理速度快但结果不够准确;将神经网络划分为三个级联的预测阶段,可同时提升推理速度和结果的准确率。
可选地,所述对所述预测阶段中的神经网络层进行量化,获得动态神经网络,包括:对所述前预测阶段、中间预测阶段和后预测阶段中可量化的神经网络层添加量化器进行量化,获得多个不同比特位宽的预测阶段;其中,所述前预测阶段被赋予低比特位宽、所述中间预测阶段被赋予较高比特位宽和所述后预测阶段被赋予高比特位宽;根据所述多个不同比特位宽的预测阶段,确定动态神经网络。
在上述实现过程中,通过在网络训练时就对参数和特征进行量化,将靠前的预测阶段量化到较低的比特位宽数,在动态网络的基础上进一步降低了简单样本的推断成本;将靠后的预测阶段量化到较高的比特位宽数,确保了对困难样本的推断精度。在动态网络的基础上进一步通过低比特量化显著降低了简单样本推理时所需要的计算成本,从而降低整个网络的期望推理成本,降低了网络的存储成本。
可选地,所述对所述动态神经网络进行训练,获得目标动态网络模型之后,还包括:基于目标动态网络模型对目标任务进行推理,获得目标推理结果。
在上述实现过程中,通过使用量化为不同比特位宽的多个预测阶段的目标动态网络模型进行推理,可输出多个预测结果,可任意选择其一作为目标推理结果,提高了目标推理结果的准确性和适用性,不同的输入样本在网络上可对应不同的推理成本,能够同时处理简单样本、困难样本,提升了推理性能。
可选地,所述基于目标动态网络模型对目标任务进行推理,获得目标推理结果,包括:获取所述前预测阶段、中间预测阶段和后预测阶段对所述目标任务的推理结果;其中,所述推理结果包括:前预测结果、中间预测结果、后预测结果;将所述推理结果的置信度与预设阈值进行比对;根据比对结果,将所述前预测结果、中间预测结果、后预测结果中的一个预测结果确定为目标推理结果。
在上述实现过程中,通过使用量化为不同比特位宽的三个预测阶段的目标动态网络模型进行推理,可对应输出三个预测结果,可根据置信度与预设阈值任意选择其一作为目标推理结果,提高了目标推理结果的准确性和适用性,不同的输入样本在网络上可对应不同的推理成本,能够同时处理简单样本、困难样本,提升了推理性能。
可选地,所述根据比对结果,将所述前预测结果、中间预测结果、后预测结果中的一个预测结果确定为目标推理结果,包括:若前预测结果的置信度超过所述预设阈值,将所述前预测结果作为目标推理结果;若前预测结果的置信度未超过所述预设阈值、且中间预测结果的置信度超过所述预设阈值,将所述中间预测结果作为目标推理结果;若前预测结果的置信度未超过所述预设阈值、且中间预测结果的置信度未超过所述预设阈值,将所述后预测结果作为目标推理结果。
在上述实现过程中,当某个预测阶段输出的结果的置信度已经超过阈值时,网络会直接将该中间结果作为最终结果输出,并跳过之后的预测阶段。通过这种推理方式,网络在处理简单样本时只需要动用靠前的预测阶段即可输出较准确的推理结果,降低了推理成本;在处理困难样本时可动用全部预测阶段输出较准确的推理结果,从而确保了处理精度。
第二方面,本申请实施例提供了一种动态网络模型构建装置,所述装置包括:划分模块,用于将预设神经网络划分为多个预测阶段;其中,所述多个预测阶段均可独立地输出推理结果;量化模块,用于对所述预测阶段中的神经网络层进行量化,获得动态神经网络;其中,所述动态神经网络包括:多个不同比特位宽的预测阶段;训练模型模块,用于对所述动态神经网络进行训练,获得目标动态网络模型。
第三方面,本申请实施例还提供一种电子设备,包括:处理器、存储器,所述存储器存储有所述处理器可执行的机器可读指令,当电子设备运行时,所述机器可读指令被所述处理器执行时执行上述的方法的步骤。
第四方面,本申请实施例提供一种计算机可读存储介质,所述存储介质上存储有计算机程序,所述计算机程序被处理器运行时执行上述的方法的步骤。
为使本申请的上述目的、特征和优点能更明显易懂,下文特举实施例,并配合所附附图,作详细说明如下。
附图说明
为了更清楚地说明本申请实施例的技术方案,下面将对本申请实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本申请的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1为本申请实施例提供的一种动态网络模型构建方法的流程图;
图2为本申请实施例提供的一种目标动态网络模型;
图3为本申请实施例提供的动态网络模型构建装置的功能模块示意图;
图4为本申请实施例提供动态网络模型构建装置的电子设备的方框示意图。
图标:210-划分模块;220-量化模块;230-训练模型模块;300-电子设备;311-存储器;312-存储控制器;313-处理器;314-外设接口;315-输入输出单元;316-显示单元。
具体实施方式
下面将结合本申请实施例中附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本申请实施例的组件可以以各种不同的配置来布置和设计。因此,以下对在附图中提供的本申请的实施例的详细描述并非旨在限制要求保护的本申请的范围,而是仅仅表示本申请的选定实施例。基于本申请的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本申请保护的范围。
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。术语“第一”、“第二”等仅用于区分描述,而不能理解为指示或暗示相对重要性。
在介绍本申请实施例前,先对本申请涉及的几个技术概念作简要介绍。
动态神经网络:对应于传统的静态神经网络,动态神经网络指那些可以在推理阶段根据输入样本适应性地调整自身的结构或参数的网络。具体来说,对于简单样本,动态神经网络仅需少量计算和存储资源就可以完成推断;对于复杂样本,动态神经网络可以分配更多资源以提高推断精度。因此,相较于传统神经网络,动态神经网路能在相同推断精度下降低平均推断成本,在相同推断成本下提高推断精度。其中,动态网络的适应性计算通常通过动态深度、动态宽度、动态路由等方式实现。
量化:神经网络的量化,也就是将神经网络中大部分op的浮点权重值(高精度浮点数)转换为定点整数(低精度定点值)表示,同时将op替换成可以执行类似的定点整数运算的op。于是网络中大部分的浮点运算,都能使用定点整数计算替代。神经网络对量化的实现:需要先把常见操作(卷积,矩阵乘法,激活函数,池化,拼接等)转换为等价的8位整数版本的操作,然后在操作的前后分别加上quantize和dequantize操作,quantize操作将input从浮点数转换成8位整数,dequantize操作把output从8位整数转回浮点数。
量化感知训练(quantization-aware training):在网络模型中插入伪量化模块(fake quant module)模拟量化模型在推理过程中进行的舍入(rounding)和钳位(clamping)操作,从而在训练过程中提高模型对量化效应的适应能力,获得更高的量化模型精度。在这个过程中,所有计算(包括模型正反向传播计算和伪量化节点计算)都是以浮点计算实现的,在训练完成后才量化为真正的int8模型。
权重值(weights):指代隐藏层中的参数,从广义上理解可以包括偏移量,是通过训练过程习得的数值,并且在推理时保持不变。激活值(Activation)指代从输入层开始,每一层的输出由输入值和权重值通过运算得到,在各层之间传递的数值,也称为特征值。与权重值不同,激活值的分布会根据输入数据样本而动态变化。
本申请发明人注意到,模型量化是压缩神经网络模型体量、提升模型速度的常用方法,在量化后,模型中原本的浮点数被映射为离散的低比特整数,存储成本大幅降低;同时,若量化后的模型部署在有相应低精度推理支持的硬件上,其推理速度会得到显著提升。动态神经网络也是一种提升模型推理速度的技术方案,其核心思想是让不同的样本在网络上对应不同的推理成本:简单样本只需被完整网络中的一部分模块处理,而随着样本难度增大,用于处理该样本的模块也对应增加;相较于常规的静态网络,动态网络能够在几乎不牺牲模型推理精度的前提下,显著降低模型的平均推理成本。目前,网络量化技术和动态神经网络技术被认为是两个独立的技术方向,相关研究与应用也几乎独立。然而,这两种技术之间有很好的相性,能够进行有机结合,可进一步提升模型的效率。有鉴于此,本申请实施例提供了如下介绍的动态网络模型构建方法。
请参阅图1,图1为本申请实施例提供的一种动态网络模型构建方法的流程图,该方法包括:步骤100、步骤120和步骤140。
步骤100:将预设神经网络划分为多个预测阶段;其中,多个预测阶段均可独立地输出推理结果;
步骤120:对预测阶段中的神经网络层进行量化,获得动态神经网络;其中,动态神经网络包括:多个不同比特位宽的预测阶段;
步骤140:对动态神经网络进行训练,获得目标动态网络模型。
示例性地,预设神经网络可以是:各种常规的人工神经网络,其包括深度神经网络(DNN)、循环神经网络(RNN)与卷积神经网络(CNN)。例如:基于卷积神经网络的分类算法,CNN由输入层、输出层和多个隐藏层等神经网络层串联组成,这些神经网络层大致可分为带权重的层(如卷积层、全连接层、批量归一化层等)和不带权重的层(如池化层、ReLU层、Softmax层等)。CNN的第一层读取输入值,例如输入图像,并输出一系列的激活值(也可称为特征图);后面的层读取由前一层产生的激活值,并输出新的激活值;最后一个分类器(classifier)输出该输入图像可能属于的每一类别的概率。权重指代隐藏层中的参数,可包括偏移量,是通过训练过程习得的数值,并且在推理时保持不变;激活值指代从输入层开始,每一层的输出由输入值和权重值通过运算得到,在各层之间传递的数值,也称为特征值;与权重值不同,激活值的分布会根据输入数据样本而动态变化。预测阶段可以是:对预设神经网络的多个网络层进行均分,均分为多个(两个及以上)不同阶段,同时每个阶段结束时能够独立输出对于目标问题的预测结果,在训练时,每个预测阶段的预测都被要求能够尽量精确地完成目标任务。
可选地,预设神经网络以CNN为例,预测阶段为3个为例进行实施例介绍。在宏观结构上,本申请的目标动态网络模型与常规的动态神经网络结构相近,但又区别于一般的动态神经网络:首先,将CNN神经网络的多个神经网络层划分为三个级联的预测阶段,靠后的阶段以之前阶段的输出为输入,同时每个预测阶段结束时也会输出对于目标问题的预测结果,即在训练时,要求每个预测阶段的预测都被要求能够尽量精确地完成目标任务。然后,对每一个预测阶段中的神经网络层进行量化,使得每个预测阶段对应不同的比特位宽,与将量化应用到一般的CNN神经网络的方法基本一致,但存在区别的是一般的网络量化将整个CNN神经网络量化到了同一个比特位宽,而本申请量化前将CNN神经网络分成多个预测阶段,再分别量化到了不同的比特位宽。最后,由于在使用CNN神经网络进行推理之前,即进行目标任务(例如,图像分类)时,需要先对CNN神经网络进行训练,通过训练数据的大量导入,确定CNN神经网络模型各层的参数,因此对量化到不同比特位宽的CNN神经网络进行训练,确定各个既定比特位宽的预测阶段下各层的权重、偏移量等参数,从而获得目标动态网络模型。
通过将预设神经网络模型划分成多个可独立输出推理结果的预测阶段,并将这些预测阶段分别量化到不同的比特位宽,具体的比特位宽设置可以根据实际需要灵活设置,节省了计算量,降低了简单样本的推断成本,提高了对困难样本的推断精度;结合量化技术和动态网络技术两者的优势,能够同时从量化和动态网络技术中受益,提升了目标动态网络模型的性能。
在一个实施例中,步骤100可以包括:步骤101。
步骤101:基于预设神经网络的给定拓扑结构,将预设神经网络依次划分为多个可独立地输出推理结果的预测阶段;其中,多个预测阶段中的前一个预测阶段的特征输出为后一个预测阶段的特征输入。
示例性地,预设神经网络的给定拓扑结构可以是:预设神经网络的网络层数、各层神经元数量以及各神经元之间已存在的相互连接方式;从其拓扑结构的层次出发,神经网络被分为输入层(InputLayer)、隐层(HiddenLayer)和输出层(OutputLayer),各层顺序连接;其中,输入层神经元负责接收来自外界的输入信息,并将其传递给隐层神经元,隐层负责神经网络内部的信息处理、信息变换,通常会根据变换的需要,将隐层设计为一层或多层。可选地,这些神经网络层大致可具体分为带权重的卷积层、全连接层、批量归一化层等多个层和不带权重的池化层、ReLU层、Softmax层等多个层。
对预设神经网络的卷积层、全连接层、批量归一化层、池化层、ReLU层、Softmax层等多个网络层组成的拓扑结构层沿输入到输出的方向进行均分,依次均分为多个(两个及以上)不同的预测阶段;由于从输入层开始,每一层的特征输出都由输入值和权重值通过运算得到,即在各层之间传递的数值,也称为特征值,因此靠后的预测阶段是以之前预测阶段的输出特征值作为输入值;同时,每个预测阶段结束时都能够独立输出对于目标问题的预测结果,即在训练时,每个预测阶段的预测都被要求能够尽量精确地完成目标任务。
通过基于给定拓扑结构将预设神经网络依次划分为多个可独立地输出推理结果的预测阶段,使得在推理时,每个预测阶段结束时都会输出对于目标问题的预测结果,方便后续将不同的预测阶段进行量化,量化到不同的比特位宽使得能够更好地同时处理简单样本、困难样本,降低了网络存储成本,提升了模型的性能。
在一个实施例中,预测阶段包括:前预测阶段、中间预测阶段和后预测阶段;前预测阶段的特征输出为中间预测阶段的特征输入,中间预测阶段的特征输出为后预测阶段的特征输入。
示例性地,预设神经网络可以被划分两个以上任意数量的预测阶段。但是,如果划分的预测阶段过多,后续将多个预测阶段量化为一系列梯度的比特位宽,推理输出的最终结果将因为多次计算更准确、精度更高,但由于推理时计算量大,使得计算效率大大降低,即结果准确但推理速度慢;相反,如果划分的预测阶段过少,例如两个,推理速度快但结果不够准确;因此,可选地,将神经网络划分为三个级联的预测阶段:前预测阶段、中间预测阶段和后预测阶段,一般能同时保证推理速度高效和结果准确;同样地,靠后的预测阶段是以之前预测阶段的输出特征值作为输入值,同时,每个阶段结束时也会输出对于目标问题的预测结果。
在一个实施例中,步骤120可以包括:步骤121和步骤122。
步骤121:对前预测阶段、中间预测阶段和后预测阶段中可量化的神经网络层添加量化器进行量化,获得多个不同比特位宽的预测阶段;其中,前预测阶段被赋予低比特位宽、中间预测阶段被赋予较高比特位宽和后预测阶段被赋予高比特位宽;
步骤122:根据多个不同比特位宽的预测阶段,确定动态神经网络。
示例性地,量化器可以是:量化(quantize)、反量化(Dequantize)、再量化(Requantize)模块操作,例如:Requantize指再一次量化,从FP32到int8是quantize,从int8到FP32是dequantize,而中间有一个过程,是int32到int8,这个量化与前面的量化过程无关,是requantize,最后得到的int8要转化成FP32,和第一次量化是一次逆向的量化转换,即反量化。在量化后,模型中原本的浮点数被映射为离散的低比特整数,存储成本大幅降低,同时,若量化后的模型部署在有相应低精度推理支持的硬件上,其推理速度会得到显著提升。
在训练阶段,通过使用quantize、dequantize操作对预设神经网络划分的三个预测阶段中可以量化的神经网络层进行量化,例如:卷积层、池化层。让预设神经网络在这种条件下训练。如图2所示,最终这三个预测阶段被量化到三个不同的比特位宽下,图中前预测阶段Stage1的比特位宽为4w4f,中间预测阶段Stage2的比特位宽为6w6f,后预测阶段Stage3的比特位宽为8w8f。越靠前的预测阶段使用的比特数越低,靠前预测阶段通过较低的比特位宽数降低了简单样本的推断成本;靠后的预测阶段通过较高的比特位宽数,保证了对困难样本的推断精度。在网络训练时对参数和特征进行量化,量化到不同比特位宽,获得初步的动态神经网络,等到训练结束后直接将网络的不同预测阶段按照既定比特位宽数部署即可。
可选地,当预测阶段为三个以上时,靠前的预测阶段就是指更接近输入、更先被使用的阶段,依然可以利用量化操作给动态网络的多个不同预测阶段依次赋予一系列梯度的比特位宽:靠前的预测阶段使用较低的比特位宽数表达参数和特征,而越靠后的预测阶段比特位宽数越高,具体的比特位宽设置可以根据实际需要灵活设置。
通过在网络训练时就对参数和特征进行量化,将靠前的预测阶段量化到较低的比特位宽数,在动态网络的基础上进一步降低了简单样本的推断成本;将靠后的预测阶段量化到较高的比特位宽数,确保了对困难样本的推断精度。在动态网络的基础上进一步通过低比特量化显著降低了简单样本推理时所需要的计算成本,从而降低整个网络的期望推理成本,降低了网络的存储成本。
在一个实施例中,步骤140可以包括:步骤141。
步骤141:基于目标动态网络模型对目标任务进行推理,获得目标推理结果。
示例性地,由于在使用神经网络模型进行推理之前,即进行目标任务推理时,需要先对神经网络模型进行训练,通过训练数据的大量导入,确定神经网络模型各层的参数。因此对量化到不同比特位宽的目标动态网络模型进行训练,确定各个既定比特位宽的预测阶段下各层的权重、偏移量等参数,从而获得目标动态网络模型。
由于动态网络是一种提升模型推理速度的技术方案,其核心思想是让不同的样本在网络上对应不同的推理成本:简单样本只需被完整网络中的一部分模块处理,而随着样本难度增大,用于处理该样本的模块也对应增加。可选地,与一般的三阶段神经网络相比,本申请的三阶段动态网络在输入一系列猫狗图片,进行目标分类任务的推理时,即结果判断是猫还是狗,会在每个预测阶段结束后都会给出一个对于是猫还是狗的预测概率值。对于三种推理结果中的预测概率值,哪一个会被认定为最终的目标推理结果,可根据预设阈值等超参数进行筛选。
通过使用量化为不同比特位宽的多个预测阶段的目标动态网络模型进行推理,可输出多个预测结果,可任意选择其一作为目标推理结果,提高了目标推理结果的准确性和适用性,不同的输入样本在网络上可对应不同的推理成本,能够同时处理简单样本、困难样本,提升了推理性能。
在一个实施例中,步骤141可以包括:步骤1411、步骤1412和步骤1413。
步骤1411:获取前预测阶段、中间预测阶段和后预测阶段对目标任务的推理结果;其中,推理结果包括:前预测结果、中间预测结果、后预测结果;
步骤1412:将推理结果的置信度与预设阈值进行比对;
步骤1413:根据比对结果,将前预测结果、中间预测结果、后预测结果中的一个预测结果确定为目标推理结果。
示例性地,在网络训练时对划分的三个预测阶段的参数和特征进行量化,量化到不同比特位宽,获得初步的动态神经网络,等到训练结束后直接将网络的不同预测阶段按照既定比特位宽数部署即可,获得目标动态网络模型。基于目标动态网络模型对分类猫和狗的任务进行推理,获得如图2中前预测阶段Stage1的前预测结果Output1,中间预测阶段Stage2的中间预测结果Output2,后预测阶段Stage3的后预测结果Output3。如图2所示,Output1、Output2、Output3可以是每一个预测阶段对目标分类任务的独立预测结果,例如:Output1中狗概率0.5,猫概率0.5;Output2中狗概率0.6,猫概率0.4;Output3中狗概率0.9,猫概率0.1。将每一个预测结果中的置信度与预设阈值(超参数)进行比对,假设预设阈值为0.7,将每一个预测结果中较大的概率值与0.7比对,基于一定的规则确定将Output1、Output2、Output3中的其中一个作为最终分类是猫是狗的目标推理结果。
通过使用量化为不同比特位宽的三个预测阶段的目标动态网络模型进行推理,可对应输出三个预测结果,可根据置信度与预设阈值任意选择其一作为目标推理结果,提高了目标推理结果的准确性和适用性,不同的输入样本在网络上可对应不同的推理成本,能够同时处理简单样本、困难样本,提升了推理性能。
步骤1413可以包括:步骤1413A、步骤1413B和步骤1413C。
步骤1413A:若前预测结果的置信度超过预设阈值,将前预测结果作为目标推理结果;
步骤1413B:若前预测结果的置信度未超过预设阈值、且中间预测结果的置信度超过预设阈值,将中间预测结果作为目标推理结果;
步骤1413C:若前预测结果的置信度未超过预设阈值、且中间预测结果的置信度未超过预设阈值,将后预测结果作为目标推理结果。
示例性地,如图2所示,Output1、Output2、Output3可以是每一个预测阶段对目标分类任务的独立预测结果,即前预测结果、中间预测结果和后预测结果。例如:Output1中狗概率0.5,猫概率0.5;Output2中狗概率0.6,猫概率0.4;Output3中狗概率0.9,猫概率0.1。将每一个预测结果中的置信度与预设阈值(超参数)进行比对,假设预设阈值为0.7,将每一个预测结果中较大的概率值(置信度)与0.7比对,由于前预测结果、中间预测结果均未超过0.7,因此将后预测结果Output3作为目标推理结果。如果在推理时,若某个预测阶段给出的预测结果的置信度高于预设阈值,则直接跳过后续的预测阶段,输出当前预测结果作为最终预测结果。
通过目标动态网络模型进行推理,会在每个预测阶段结束后都给出一个对于目标任务的预测结果,通过这种推理方式,网络在处理简单样本时只需要动用靠前的预测阶段即可输出较准确的推理结果,降低了推理成本;在处理困难样本时可动用全部预测阶段输出较准确的推理结果,从而确保了处理精度。
请参阅图3,图3为本申请实施例提供的一种动态网络模型构建装置的模块功能示意图。该装置包括:划分模块210、量化模块220和训练模型模块230。
划分模块210,用于将预设神经网络划分为多个预测阶段;其中,所述多个预测阶段均可独立地输出推理结果;
量化模块220,用于对所述预测阶段中的神经网络层进行量化,获得动态神经网络;其中,所述动态神经网络包括:多个不同比特位宽的预测阶段;
训练模型模块230,用于对所述动态神经网络进行训练,获得目标动态网络模型。
可选地,划分模块210可以用于:
基于预设神经网络的给定拓扑结构,将所述预设神经网络依次划分为多个可独立地输出推理结果的预测阶段;其中,所述多个预测阶段中的前一个预测阶段的特征输出为后一个预测阶段的特征输入。
可选地,所述预测阶段包括:前预测阶段、中间预测阶段和后预测阶段;所述前预测阶段的特征输出为所述中间预测阶段的特征输入,所述中间预测阶段的特征输出为所述后预测阶段的特征输入。
可选地,量化模块220可以用于:
对所述前预测阶段、中间预测阶段和后预测阶段中可量化的神经网络层添加量化器进行量化,获得多个不同比特位宽的预测阶段;其中,所述前预测阶段被赋予低比特位宽、所述中间预测阶段被赋予较高比特位宽和所述后预测阶段被赋予高比特位宽;
根据所述多个不同比特位宽的预测阶段,确定动态神经网络。
可选地,训练模型模块230可以包括推理单元,推理单元用于:
基于目标动态网络模型对目标任务进行推理,获得目标推理结果。
可选地,推理单元用于:
获取所述前预测阶段、中间预测阶段和后预测阶段对所述目标任务的推理结果;其中,所述推理结果包括:前预测结果、中间预测结果、后预测结果;
将所述推理结果的置信度与预设阈值进行比对;
根据比对结果,将所述前预测结果、中间预测结果、后预测结果中的一个预测结果确定为目标推理结果。
可选地,推理单元用于:
若前预测结果的置信度超过所述预设阈值,将所述前预测结果作为目标推理结果;
若前预测结果的置信度未超过所述预设阈值、且中间预测结果的置信度超过所述预设阈值,将所述中间预测结果作为目标推理结果;
若前预测结果的置信度未超过所述预设阈值、且中间预测结果的置信度未超过所述预设阈值,将所述后预测结果作为目标推理结果。
请参阅图4,图4是电子设备的方框示意图。电子设备300可以包括存储器311、存储控制器312、处理器313、外设接口314、输入输出单元315、显示单元316。本领域普通技术人员可以理解,图4所示的结构仅为示意,其并不对电子设备300的结构造成限定。例如,电子设备300还可包括比图4中所示更多或者更少的组件,或者具有与图4所示不同的配置。
上述的存储器311、存储控制器312、处理器313、外设接口314、输入输出单元315、显示单元316各元件相互之间直接或间接地电性连接,以实现数据的传输或交互。例如,这些元件相互之间可通过一条或多条通讯总线或信号线实现电性连接。上述的处理器313用于执行存储器中存储的可执行模块。
其中,存储器311可以是,但不限于,随机存取存储器(Random Access Memory,简称RAM),只读存储器(Read Only Memory,简称ROM),可编程只读存储器(ProgrammableRead-Only Memory,简称PROM),可擦除只读存储器(Erasable Programmable Read-OnlyMemory,简称EPROM),电可擦除只读存储器(Electric Erasable Programmable Read-OnlyMemory,简称EEPROM)等。其中,存储器311用于存储程序,所述处理器313在接收到执行指令后,执行所述程序,本申请实施例任一实施例揭示的过程定义的电子设备300所执行的方法可以应用于处理器313中,或者由处理器313实现。
上述的处理器313可能是一种集成电路芯片,具有信号的处理能力。上述的处理器313可以是通用处理器,包括中央处理器(Central Processing Unit,简称CPU)、网络处理器(Network Processor,简称NP)等;还可以是数字信号处理器(digital signalprocessor,简称DSP)、专用集成电路(Application Specific Integrated Circuit,简称ASIC)、现场可编程门阵列(FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本申请实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
上述的外设接口314将各种输入/输出装置耦合至处理器313以及存储器311。在一些实施例中,外设接口314,处理器313以及存储控制器312可以在单个芯片中实现。在其他一些实例中,他们可以分别由独立的芯片实现。
上述的输入输出单元315用于提供给用户输入数据。所述输入输出单元315可以是,但不限于,鼠标和键盘等。
上述的显示单元316在电子设备300与用户之间提供一个交互界面(例如用户操作界面)给用户参考。在本实施例中,所述显示单元316可以是液晶显示器或触控显示器。液晶显示器或触控显示器可以对处理器执行所述程序的过程进行显示。
本实施例中的电子设备300可以用于执行本申请实施例提供的各个方法中的各个步骤。
此外,本申请实施例还提供一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,该计算机程序被处理器运行时执行上述方法实施例中的步骤。
本申请实施例所提供的上述方法的计算机程序产品,包括存储了程序代码的计算机可读存储介质,所述程序代码包括的指令可用于执行上述方法实施例中的步骤,具体可参见上述方法实施例,在此不再赘述。
在本申请所提供的实施例中,应该理解到,所揭露装置和方法,可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,所述模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,又例如,多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些通信接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。在本申请实施例中的各功能模块可以集成在一起形成一个独立的部分,也可以是各个模块单独存在,也可以两个或两个以上模块集成形成一个独立的部分。
需要说明的是,功能如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-Only Memory,ROM)随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。
以上所述仅为本申请的实施例而已,并不用于限制本申请的保护范围,对于本领域的技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。

Claims (10)

1.一种动态网络模型构建方法,其特征在于,所述方法包括:
将预设神经网络划分为多个预测阶段;其中,所述多个预测阶段均可独立地输出推理结果;
对所述预测阶段中的神经网络层进行量化,获得动态神经网络;其中,所述动态神经网络包括:多个不同比特位宽的预测阶段;
对所述动态神经网络进行训练,获得目标动态网络模型。
2.根据权利要求1所述的方法,其特征在于,其中,所述将预设神经网络划分为多个预测阶段,包括:
基于预设神经网络的给定拓扑结构,将所述预设神经网络依次划分为多个可独立地输出推理结果的预测阶段;其中,所述多个预测阶段中的前一个预测阶段的特征输出为后一个预测阶段的特征输入。
3.根据权利要求2所述的方法,其特征在于,其中,所述预测阶段包括:前预测阶段、中间预测阶段和后预测阶段;所述前预测阶段的特征输出为所述中间预测阶段的特征输入,所述中间预测阶段的特征输出为所述后预测阶段的特征输入。
4.根据权利要求3所述的方法,其特征在于,所述对所述预测阶段中的神经网络层进行量化,获得动态神经网络,包括:
对所述前预测阶段、中间预测阶段和后预测阶段中可量化的神经网络层添加量化器进行量化,获得多个不同比特位宽的预测阶段;其中,所述前预测阶段被赋予低比特位宽、所述中间预测阶段被赋予较高比特位宽和所述后预测阶段被赋予高比特位宽;
根据所述多个不同比特位宽的预测阶段,确定动态神经网络。
5.根据权利要求3所述的方法,其特征在于,所述对所述动态神经网络进行训练,获得目标动态网络模型之后,还包括:
基于目标动态网络模型对目标任务进行推理,获得目标推理结果。
6.根据权利要求5所述的方法,其特征在于,所述基于目标动态网络模型对目标任务进行推理,获得目标推理结果,包括:
获取所述前预测阶段、中间预测阶段和后预测阶段对所述目标任务的推理结果;其中,所述推理结果包括:前预测结果、中间预测结果、后预测结果;
将所述推理结果的置信度与预设阈值进行比对;
根据比对结果,将所述前预测结果、中间预测结果、后预测结果中的一个预测结果确定为目标推理结果。
7.根据权利要求6所述的方法,其特征在于,所述根据比对结果,将所述前预测结果、中间预测结果、后预测结果中的一个预测结果确定为目标推理结果,包括:
若前预测结果的置信度超过所述预设阈值,将所述前预测结果作为目标推理结果;
若前预测结果的置信度未超过所述预设阈值、且中间预测结果的置信度超过所述预设阈值,将所述中间预测结果作为目标推理结果;
若前预测结果的置信度未超过所述预设阈值、且中间预测结果的置信度未超过所述预设阈值,将所述后预测结果作为目标推理结果。
8.一种动态网络模型构建装置,其特征在于,所述装置包括:
划分模块,用于将预设神经网络划分为多个预测阶段;其中,所述多个预测阶段均可独立地输出推理结果;
量化模块,用于对所述预测阶段中的神经网络层进行量化,获得动态神经网络;其中,所述动态神经网络包括:多个不同比特位宽的预测阶段;
训练模型模块,用于对所述动态神经网络进行训练,获得目标动态网络模型。
9.一种电子设备,其特征在于,包括:处理器、存储器,所述存储器存储有所述处理器可执行的机器可读指令,当电子设备运行时,所述机器可读指令被所述处理器执行时执行如权利要求1至7任一所述的方法的步骤。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器运行时执行如权利要求1至7任一所述的方法的步骤。
CN202310546559.3A 2023-05-16 2023-05-16 动态网络模型构建方法、装置、设备及存储介质 Active CN116384452B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202310546559.3A CN116384452B (zh) 2023-05-16 2023-05-16 动态网络模型构建方法、装置、设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202310546559.3A CN116384452B (zh) 2023-05-16 2023-05-16 动态网络模型构建方法、装置、设备及存储介质

Publications (2)

Publication Number Publication Date
CN116384452A true CN116384452A (zh) 2023-07-04
CN116384452B CN116384452B (zh) 2023-12-15

Family

ID=86965847

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202310546559.3A Active CN116384452B (zh) 2023-05-16 2023-05-16 动态网络模型构建方法、装置、设备及存储介质

Country Status (1)

Country Link
CN (1) CN116384452B (zh)

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20190012559A1 (en) * 2017-07-06 2019-01-10 Texas Instruments Incorporated Dynamic quantization for deep neural network inference system and method
CN110555508A (zh) * 2018-05-31 2019-12-10 北京深鉴智能科技有限公司 人工神经网络调整方法和装置
CN111104954A (zh) * 2018-10-26 2020-05-05 华为技术有限公司 一种对象分类的方法与装置
CN113902108A (zh) * 2021-11-24 2022-01-07 贵州电网有限责任公司 一种量化位宽动态选择的神经网络加速硬件架构及方法
CN114648123A (zh) * 2022-02-14 2022-06-21 之江实验室 一种卷积神经网络分层推理时间预测方法及装置
CN114781598A (zh) * 2022-03-29 2022-07-22 南京理工大学 一种基于分层神经网络分布式训练的故障预测方法

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20190012559A1 (en) * 2017-07-06 2019-01-10 Texas Instruments Incorporated Dynamic quantization for deep neural network inference system and method
CN110555508A (zh) * 2018-05-31 2019-12-10 北京深鉴智能科技有限公司 人工神经网络调整方法和装置
CN111104954A (zh) * 2018-10-26 2020-05-05 华为技术有限公司 一种对象分类的方法与装置
CN113902108A (zh) * 2021-11-24 2022-01-07 贵州电网有限责任公司 一种量化位宽动态选择的神经网络加速硬件架构及方法
CN114648123A (zh) * 2022-02-14 2022-06-21 之江实验室 一种卷积神经网络分层推理时间预测方法及装置
CN114781598A (zh) * 2022-03-29 2022-07-22 南京理工大学 一种基于分层神经网络分布式训练的故障预测方法

Also Published As

Publication number Publication date
CN116384452B (zh) 2023-12-15

Similar Documents

Publication Publication Date Title
CN111652368B (zh) 一种数据处理方法及相关产品
CN113449857A (zh) 一种数据处理方法和数据处理设备
CN110826708B (zh) 一种用多核处理器实现神经网络模型拆分方法及相关产品
CN113128678A (zh) 神经网络的自适应搜索方法及装置
CN112513886A (zh) 信息处理方法、信息处理装置和信息处理程序
CN111428854A (zh) 一种结构搜索方法及结构搜索装置
CN110647974A (zh) 深度神经网络中的网络层运算方法及装置
CN116194933A (zh) 处理系统、处理方法以及处理程序
CN114781618A (zh) 一种神经网络量化处理方法、装置、设备及可读存储介质
CN112528650B (zh) 一种Bert模型预训练方法、系统及计算机设备
CN112561050B (zh) 一种神经网络模型训练方法及装置
CN116384452B (zh) 动态网络模型构建方法、装置、设备及存储介质
CN117273092A (zh) 一种模型量化方法、装置、电子设备及存储介质
EP4128067A1 (en) Method and system for generating a predictive model
US6813390B2 (en) Scalable expandable system and method for optimizing a random system of algorithms for image quality
CN116306879A (zh) 数据处理方法、装置、电子设备以及存储介质
US20230058500A1 (en) Method and machine learning system to perform quantization of neural network
CN115983362A (zh) 一种量化方法、推荐方法以及装置
CN112446461A (zh) 一种神经网络模型训练方法及装置
CN116227332A (zh) 一种transformer混合比特量化方法及系统
CN115392441A (zh) 量化神经网络模型的片内适配方法、装置、设备及介质
CN110276448B (zh) 一种模型压缩方法及装置
CN117348837A (zh) 浮点精度模型的量化方法、装置、电子设备以及存储介质
CN114881221A (zh) 映射方案优化方法及装置、电子设备、可读存储介质
CN113177634A (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