CN113807504B - 一种神经网络的生成方法、装置、计算机设备及存储介质 - Google Patents

一种神经网络的生成方法、装置、计算机设备及存储介质 Download PDF

Info

Publication number
CN113807504B
CN113807504B CN202111158652.4A CN202111158652A CN113807504B CN 113807504 B CN113807504 B CN 113807504B CN 202111158652 A CN202111158652 A CN 202111158652A CN 113807504 B CN113807504 B CN 113807504B
Authority
CN
China
Prior art keywords
network
neural network
loss
parameter
quantization
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN202111158652.4A
Other languages
English (en)
Other versions
CN113807504A (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.)
Shanghai Power Tensors Intelligent Technology Co Ltd
Original Assignee
Shanghai Power Tensors Intelligent 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 Shanghai Power Tensors Intelligent Technology Co Ltd filed Critical Shanghai Power Tensors Intelligent Technology Co Ltd
Priority to CN202111158652.4A priority Critical patent/CN113807504B/zh
Publication of CN113807504A publication Critical patent/CN113807504A/zh
Application granted granted Critical
Publication of CN113807504B publication Critical patent/CN113807504B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

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/045Combinations of 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

Landscapes

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

Abstract

本公开提供了一种神经网络的生成方法、装置、计算机设备及存储介质,其中,该方法包括:获取第一神经网络;利用量化参数对所述第一神经网络中的第一网络参数进行量化处理,得到第二神经网络;基于所述第一网络参数、以及对所述第一网络参数进行量化后得到的第二网络参数,确定所述第二神经网络的第一损失;基于所述第一损失调整所述量化参数,得到目标神经网络。本公开实施例能够在对量化参数进行调整的同时,保证得到生成的目标神经网络的精度,以达到兼顾量化效果和模型精度的目的。

Description

一种神经网络的生成方法、装置、计算机设备及存储介质
技术领域
本公开涉及深度学习技术领域,具体而言,涉及一种神经网络的生成方法、装置、计算机设备及存储介质。
背景技术
量化法是当前一种常见的神经网络压缩方法。该方法能够将神经网络从高精度浮点精度量化至低精度的浮点或定点精度,也即将神经网络中各网络层中的输入数据和参数数据由高精度浮点精度量化为具有固定数量比特位的低精度浮点或定点精度数据,然后对输入数据进行处理。
当前的量化方法存在量化后的模型精度、和量化效果无法兼顾的问题。
发明内容
本公开实施例至少提供一种神经网络的生成方法、装置、计算机设备及存储介质。
第一方面,本公开实施例提供了一种神经网络的生成方法,包括:获取第一神经网络;利用量化参数对所述第一神经网络中的第一网络参数进行量化处理,得到第二神经网络;基于所述第一网络参数、以及对所述第一网络参数进行量化后得到的第二网络参数,确定所述第二神经网络的第一损失;基于所述第一损失调整所述量化参数,得到目标神经网络。
一种可选的实施方式中,所述量化参数包括:所述第一神经网络中各个网络层的第一网络参数分别对应的第一量化比特数。
一种可选的实施方式中,所述基于所述第一网络参数、以及对所述第一网络参数进行量化后得到的第二网络参数,确定所述第二神经网络的第一损失,包括:确定所述第一网络参数、和所述第二网络参数之间的结构相似性;基于所述第一网络参数、以及所述第二网络参数之间的结构相似性,确定所述第二神经网络的第一损失。
一种可选的实施方式中,所述第一网络参数包括:每个网络层对应的第一网络子参数;所述第二网络参数包括:每个网络层对应的第二网络子参数;所述确定所述第一网络参数、和所述第二网络参数之间的结构相似性,包括:针对每个网络层,确定该网络层对应的第一网络子参数和第二网络子参数之间的结构相似性;所述基于所述第一网络参数、以及所述第二网络参数之间的结构相似性,确定所述第二神经网络的第一损失,包括:基于各网络层分别对应的结构相似性,确定第二神经网络的第一损失。
一种可选的实施方式中,所述基于所述第一损失调整所述量化参数,得到目标神经网络,包括:利用所述第二神经网络对样本数据进行处理,得到第二损失;基于所述第一损失和所述第二损失,确定模型损失;将所述模型损失和预设的损失阈值进行比对,并基于比对的结果,调整所述量化参数,得到目标神经网络。
一种可选的实施方式中,所述量化参数还包括:所述第一神经网络中各个网络层的输入数据和/或输出数据分别对应的第二量化比特数;所述方法还包括:利用所述第一神经网络对样本数据进行处理,得到所述样本数据在所述第一神经网络中的目标网络层的第一特征数据;以及利用所述第二神经网络、以及所述第二量化比特数对样本数据进行处理,得到所述样本数据在所述第二神经网络中的目标网络层的第二特征数据;基于所述第一特征数据、以及所述第二特征数据,确定第三损失;所述基于所述第一损失调整所述量化参数,得到目标神经网络,包括:基于所述第一损失、以及所述第三损失调整所述量化参数,生成所述目标神经网络。
一种可选的实施方式中,所述基于所述第一特征数据、以及所述第二特征数据,确定第三损失,包括:确定所述第一特征数据、以及所述第二特征数据之间的结构相似性;基于所述第一特征数据、以及所述第二特征数据之间的结构相似性,确定所述第二神经网络的第三损失。
一种可选的实施方式中,所述利用量化参数对所述第一神经网络中的第一网络参数进行量化处理,得到第二神经网络,包括:对所述第一神经网络进行至少一个周期的量化处理,将每一个周期作为当前周期,在当前周期中执行如下量化处理步骤:针对当前周期,根据所述当前周期对应的量化参数对所述第一神经网络中的第一网络参数进行量化处理,得到所述当前周期对应的第二网络参数;基于所述当前周期对应的第二网络参数,得到所述当前周期对应的当前第二神经网络;其中,所述当前周期对应的量化参数基于原始量化参数确定,或者基于前一周期确定;
所述基于所述第一网络参数、以及对所述第一网络参数进行量化后得到的第二网络参数,确定所述第二神经网络的第一损失,包括:基于所述第一网络参数、以及所述当前周期对应的第二网络参数,确定所述当前第二神经网络的第一损失。
一种可选的实施方式中,所述基于所述第一损失调整所述量化参数,得到目标神经网络,包括:利用所述当前第二神经网络对样本数据进行处理,得到所述当前第二神经网络的第二损失;基于所述当前第二神经网络的第一损失和第二损失,确定所述当前第二神经网络的当前模型损失;将所述当前模型损失和预设的损失阈值进行比对;响应于所述当前模型损失小于或者等于所述损失阈值,将所述当前周期对应的量化参数确定为目标量化参数,并基于所述目标量化参数生成所述目标神经网络。
一种可选的实施方式中,所述方法还包括:响应于所述当前模型损失大于所述损失阈值,基于当前周期对应的量化参数,确定新的量化参数;将所述新的量化参数确定为下一周期对应的量化参数,返回至利用量化参数对所述第一神经网络中的第一网络参数进行量化处理,得到第二神经网络的步骤中,下一个周期的量化处理步骤。
一种可选的实施方式中,所述响应于所述当前模型损失小于或者等于所述损失阈值,将所述当前周期对应的量化参数确定为目标量化参数,并基于所述目标量化参数生成所述目标神经网络,包括:响应于所述当前模型损失小于或者等于所述损失阈值、且满足预设迭代停止条件,将所述当前周期对应的量化参数确定为所述目标量化参数,并基于所述目标量化参数生成所述目标神经网络。
一种可选的实施方式中,所述方法还包括:响应于所述当前模型损失小于或者等于所述损失阈值、但不满足所述预设迭代停止条件,基于当前周期对应的量化参数,确定新的量化参数;将所述新的量化参数确定为下一周期对应的量化参数,返回至利用量化参数对所述第一神经网络中的第一网络参数进行量化处理,得到第二神经网络的步骤中,下一个周期的量化处理步骤。
一种可选的实施方式中,所述预设迭代停止条件包括下述至少一种:迭代周期达到预设周期数;第二神经网络中各个网络层的第一网络参数分别对应的量化比特数的总比特数值大于预设的比特数阈值。
第二方面,本公开实施例还提供一种神经网络的生成装置,包括:获取模块,用于获取第一神经网络;量化模块,用于利用量化参数对所述第一神经网络中的第一网络参数进行量化处理,得到第二神经网络;确定模块,用于基于所述第一网络参数、以及对所述第一网络参数进行量化后得到的第二网络参数,确定所述第二神经网络的第一损失;生成模块,用于基于所述第一损失调整所述量化参数,得到目标神经网络。
一种可能的实施方式中,所述量化参数包括:所述第一神经网络中各个网络层的第一网络参数分别对应的第一量化比特数。
一种可能的实施方式中,所述确定模块,在基于所述第一网络参数、以及对所述第一网络参数进行量化后得到的第二网络参数,确定所述第二神经网络的第一损失时,用于:确定所述第一网络参数、和所述第二网络参数之间的结构相似性;基于所述第一网络参数、以及所述第二网络参数之间的结构相似性,确定所述第二神经网络的第一损失。
一种可能的实施方式中,所述第一网络参数包括:每个网络层对应的第一网络子参数;所述第二网络参数包括:每个网络层对应的第二网络子参数;所述确定模块,在确定所述第一网络参数、和所述第二网络参数之间的结构相似性时,用于:针对每个网络层,确定该网络层对应的第一网络子参数和第二网络子参数之间的结构相似性;所述确定模块,在基于所述第一网络参数、以及所述第二网络参数之间的结构相似性,确定所述第二神经网络的第一损失时,用于:基于各网络层分别对应的结构相似性,确定第二神经网络的第一损失。
一种可能的实施方式中,所述生成模块,在基于所述第一损失调整所述量化参数,得到目标神经网络时,用于:利用所述第二神经网络对样本数据进行处理,得到第二损失;基于所述第一损失和所述第二损失,确定模型损失;将所述模型损失和预设的损失阈值进行比对,并基于比对的结果,调整所述量化参数,得到目标神经网络。
一种可能的实施方式中,所述量化参数还包括:所述第一神经网络中各个网络层的输入数据和/或输出数据分别对应的第二量化比特数;所述确定模块还用于:利用所述第一神经网络对样本数据进行处理,得到所述样本数据在所述第一神经网络中的目标网络层的第一特征数据;以及利用所述第二神经网络、以及所述第二量化比特数对样本数据进行处理,得到所述样本数据在所述第二神经网络中的目标网络层的第二特征数据;基于所述第一特征数据、以及所述第二特征数据,确定第三损失;所述生成模块,在基于所述第一损失调整所述量化参数,得到目标神经网络时,用于:基于所述第一损失、以及所述第二损失调整所述量化参数,生成所述目标神经网络。
一种可能的实施方式中,所述确定模块,在基于所述第一特征数据、以及所述第二特征数据,确定第三损失时,用于:确定所述第一特征数据、以及所述第二特征数据之间的结构相似性;基于所述第一特征数据、以及所述第二特征数据之间的结构相似性,确定所述第二神经网络的第三损失。
一种可能的实施方式中,所述量化模块,在利用量化参数对所述第一神经网络中的第一网络参数进行量化处理,得到第二神经网络时,用于:对所述第一神经网络进行至少一个周期的量化处理,将每一个周期作为当前周期,并在当前周期中执行如下量化处理步骤:针对当前周期,根据所述当前周期对应的量化参数对所述第一神经网络中的第一网络参数进行量化处理,得到所述当前周期对应的第二网络参数;基于所述当前周期对应的第二网络参数,得到所述当前周期对应的当前第二神经网络;其中,所述当前周期对应的量化参数基于原始量化参数确定,或者基于前一周期确定;所述确定模块,在基于所述第一网络参数、以及对所述第一网络参数进行量化后得到的第二网络参数,确定所述第二神经网络的第一损失时,用于:基于所述第一网络参数、以及所述当前周期对应的第二网络参数,确定所述当前第二神经网络的第一损失。
一种可能的实施方式中,所述生成模块,在基于所述第一损失调整所述量化参数,得到目标神经网络时,用于:利用所述当前第二神经网络对样本数据进行处理,得到所述当前第二神经网络的第二损失;基于所述当前第二神经网络的第一损失和第二损失,确定所述当前第二神经网络的当前模型损失;将所述当前模型损失和预设的损失阈值进行比对;响应于所述当前模型损失小于或者等于所述损失阈值,将所述当前周期对应的量化参数确定为目标量化参数,并基于所述目标量化参数生成所述目标神经网络。
一种可能的实施方式中,所述生成模块,还用于:响应于所述当前模型损失大于所述损失阈值,基于当前周期对应的量化参数,确定新的量化参数;将所述新的量化参数确定为下一周期对应的量化参数,返回至利用量化参数对所述第一神经网络中的第一网络参数进行量化处理,得到第二神经网络的步骤中,下一个周期的量化处理步骤。
所述生成模块,在所述生成模块,在响应于所述当前模型损失小于或者等于所述损失阈值,将所述当前周期对应的量化参数确定为所述目标量化参数,并基于所述目标量化参数生成所述目标神经网络时,用于:响应于所述当前模型损失小于或者等于所述损失阈值、且满足预设迭代停止条件,将所述当前周期对应的量化参数确定为所述目标量化参数,并基于所述目标量化参数生成所述目标神经网络。
一种可能的实施方式中,所述生成模块,还用于:响应于所述当前模型损失小于或者等于所述损失阈值、但不满足所述预设迭代停止条件,基于当前周期对应的量化参数,确定新的量化参数;将所述新的量化参数确定为下一周期对应的量化参数,返回至利用量化参数对所述第一神经网络中的第一网络参数进行量化处理,得到第二神经网络的步骤。
一种可能的实施方式中,所述预设迭代停止条件包括下述至少一种:迭代周期达到预设周期数;第二神经网络中各个网络层的第一网络参数分别对应的量化比特数的总比特数值大于预设的比特数阈值中,下一个周期的量化处理步骤。
第三方面,本公开可选实现方式还提供一种计算机设备,处理器、存储器,所述存储器存储有所述处理器可执行的机器可读指令,所述处理器用于执行所述存储器中存储的机器可读指令,所述机器可读指令被所述处理器执行时,所述机器可读指令被所述处理器执行时执行上述第一方面,或第一方面中任一种可能的实施方式中的步骤。
第四方面,本公开可选实现方式还提供一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,该计算机程序被运行时执行上述第一方面,或第一方面中任一种可能的实施方式中的步骤。
关于上述神经网络的生成装置、计算机设备、及计算机可读存储介质的效果描述参见上述神经网络的生成方法的说明,这里不再赘述。
为使本公开的上述目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附附图,作详细说明如下。
附图说明
为了更清楚地说明本公开实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,此处的附图被并入说明书中并构成本说明书中的一部分,这些附图示出了符合本公开的实施例,并与说明书一起用于说明本公开的技术方案。应当理解,以下附图仅示出了本公开的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1示出了本公开实施例所提供的一种神经网络的生成方法的流程图;
图2示出了本公开实施例所提供的神经网络的生成方法中,确定第二神经网络的第一损失的具体方法的流程图;
图3示出了本公开实施例所提供的通过输入通道和输出通道确定的子数据的示例;
图4示出了本公开实施例所提供的另一种神经网络的生成方法的流程图;
图5示出了本公开实施例所提供的另一种神经网络的生成方法的流程图;
图6示出了本公开实施例所提供的一种神经网络的生成装置的示意图;
图7示出了本公开实施例所提供的一种计算机设备的示意图。
具体实施方式
为使本公开实施例的目的、技术方案和优点更加清楚,下面将结合本公开实施例中附图,对本公开实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本公开一部分实施例,而不是全部的实施例。通常在此处描述和示出的本公开实施例的组件可以以各种不同的配置来布置和设计。因此,以下对本公开的实施例的详细描述并非旨在限制要求保护的本公开的范围,而是仅仅表示本公开的选定实施例。基于本公开的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本公开保护的范围。
经研究发现,为了减少模型消耗的计算、存储资源,同时保持模型性能(performance)可接受,对模型中的参数和计算结果进行量化是一个可行的方案。具体的,该方法能够将神经网络从高精度浮点精度量化至低精度的浮点或定点精度,也即将神经网络中各网络层中的输入数据和参数数据由高精度浮点精度量化为具有固定数量比特位的低精度浮点或定点精度数据,然后对输入数据进行处理;该方法通过减少表示神经网络中各个网络层中各个网络内参数占用的比特bit数,以减少神经网络在执行处理任务过程中所需要的计算资源和存储资源、以及数据传输资源,降低神经网络部署时所需要的运行环境要求。
但由于将高精度的浮点数量化至具有固定比特数的定点精度数据,造成了神经网络中参数的一定精度损失,因此会导致量化后得到的神经网络存在较大的精度下降问题;为了减少精度的下降,量化后的参数的比特数又不能太少,这又会导致量化的效果往往较差。因此当前的量化方法存在量化后的模型精度、和量化效果无法兼顾的问题。
基于上述研究,本公开提供了一种神经网络的生成方法,在利用量化参数对第一神经网络中的第一网络参数进行量化处理,得到第二神经网络后,基于第一网络参数、以及对第一网络参数进行量化后得到的第二网络参数确定第二神经网络的第一损失,并根据该第一损失,生成目标神经网络,从而能够在对量化参数进行调整的同时,保证得到生成的目标神经网络的精度,以达到兼顾量化效果和模型精度的目的。
针对以上方案所存在的缺陷,均是发明人在经过实践并仔细研究后得出的结果,因此,上述问题的发现过程以及下文中本公开针对上述问题所提出的解决方案,都应该是发明人在本公开过程中对本公开做出的贡献。
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。
为便于对本实施例进行理解,首先对本公开实施例所公开的一种神经网络的生成方法进行详细介绍,本公开实施例所提供的神经网络的生成方法的执行主体一般为具有一定计算能力的计算机设备,该计算机设备例如包括:终端设备或服务器或其它处理设备,终端设备可以为用户设备(User Equipment,UE)、移动设备、用户终端、终端、蜂窝电话、无绳电话、个人数字助理(Personal Digital Assistant,PDA)、手持设备、计算设备、车载设备、可穿戴设备等。在一些可能的实现方式中,该神经网络的生成方法可以通过处理器调用存储器中存储的计算机可读指令的方式来实现。
下面对本公开实施例提供的神经网络的生成方法加以说明。
参见图1所示,为本公开实施例提供的神经网络的生成方法的流程图,所述方法包括步骤S101~S104,其中:
S101:获取第一神经网络;
S102:利用量化参数对所述第一神经网络中的第一网络参数进行量化处理,得到第二神经网络;
S103:基于所述第一网络参数、以及对所述第一网络参数进行量化后得到的第二网络参数,确定所述第二神经网络的第一损失;
S104:基于所述第一损失调整所述量化参数,得到目标神经网络。
本公开实施例在获取第一神经网络后,利用量化参数对第一神经网络中的第一网络参数进行量化处理,得到第二神经网络,并基于第一神经网络参数、以及对所述第一网络参数进行量化后得到的第二网络参数,确定第二神经网络的第一损失,并利用该第一损失调整量化参数,生成目标神经网络,从而通过减少表示神经网络中各个网络层中各个网络内参数占用的比特数,以减少神经网络在执行处理任务过程中所需要的计算资源和存储资源、以及数据传输资源,降低神经网络部署时所需要的运行环境要求,并且能够在对量化参数进行调整的同时,保证得到生成的目标神经网络的精度,以达到兼顾量化效果和模型精度的目的。
下面对上述S101~S104加以详细描述。
针对S101,第一神经网络例如是预先训练好的神经网络;根据要达到的目的不同,第一神经网络可以具有相应的功能以及结构;示例性的,若要达到的目的为人脸检测,则第一神经网络为人脸检测神经网络,对应的待处理数据为包含人脸的图像,对第一神经网络进行训练的样本数据为样本图像;若要达到的目的为三维重建,则第一神经网络为三维重建神经网络,对应的待处理数据为进行三维重建的图像,对第一神经网络进行训练的样本数据为样本图像;若要达到的目的为语音识别,则第一神经网络为语音识别网络,对应的待处理数据为语音,对第一神经网络进行训练的样本数据为样本语音。具体的,可以根据实际的需要确定第一神经网络的功能以及结构,本公开实施例不做限定。
在获取第一神经网络时,例如可以利用样本数据对待训练神经网络进行训练,并在待训练神经网络满足一定的条件时,得到训练好的第一神经网络;其中,该条件例如包括待训练神经网络的精度达到预设的精度要求。
针对上述S102~S103,量化参数包括:第一神经网络中各个网络层的第一网络参数分别对应的第一量化比特数。该第一量化比特数例如用于将第一网络参数从浮点数量化至固定的比特数;例如某一网络参数对应的第一量化比特数为4,其在第一网络参数中为32位浮点数,则在利用该第一量化比特数对第一网络参数进行量化时,将其从32位浮点数量化至4位定点数。
其中,第一网络参数包括:第一神经网络中各个网络层的网络内参,该网络内参例如包括:卷积网络层的卷积核、全连接网络层的全连接权重等,具体的根据网络层的不同,网络内参也有所区别。第二网络参数包括:第二神经网络中各个网络层的网络内参;其中,第二网络参数是利用量化参数对第一网络参数进行量化后得到的;第一神经网络和第二神经网络的结构相同,因此,第一神经网络和第二神经网络具有相应的网络层。
在利用量化参数对第一神经网络中的第一网络参数进行量化处理,得到第二神经网络时,例如可以采用下述方式:
利用量化参数对第一网络参数进行量化处理,得到第二网络参数;
将所述第一神经网络中的第一网络参数替换为第二网络参数,生成第二神经网络。
在生成第二神经网络后,即可利用第一网络参数、以及对所述第一网络参数进行量化后得到的第二网络参数,确定所述第二神经网络的第一损失。
参见图2所示,本公开实施例还提供一种确定第二神经网络的第一损失的具体方法,包括:
S201:确定所述第一网络参数、和所述第二网络参数之间的结构相似性;
在具体实施中,第一神经网络和第二神经网络包括相同的网络结构;第一网络参数,包括与各个网络层分别对应的第一网络子参数;第二网络参数,包括与各个网络层分别对应的第二网络子参数。第一网络参数和第二网络参数之间的结构相似性,可以包括每个网络层分别对应的结构相似性。其中,在确定第一网络参数和第二网络参数之间的结构相似性时,例如可以针对每个网络层,确定该网络层对应的第一网络子参数和第二网络子参数之间的结构相似性。
示例性的,针对每个网络层,第一网络参数和第二网络参数之间的结构相似性例如可以是二维空间结构相似性/>三维空间结构相似性/>或四维空间结构相似性/>中至少一种。
其中,Wconv表示第一网络参数;表示对第一网络参数进行量化后得到的第二网络参数。则Wi conv表示第i层网络层对应的第一网络子参数;/>表示第i层网络层对应的第二网络子参数。
A:以确定第i层网络层对应的第一网络子参数和第二网络子参数之间的二维空间结构相似性为例,例如可以采用下述方式:
基于第i层网络层对应的输入通道数、以及输出通道数,将第一网络子参数分为多组第一子数据,并将第二网络子参数分为多组与第一子数据对应的第二子数据;
确定每组第一子数据和第二子数据之间的相似性;
基于每组第一子数据和第二子数据之间的相似性,确定第i层网络层对应的第一网络子参数和第二网络子参数之间的二维空间结构相似性。
在具体实施中,采用Wi conv(Co,Ci,:,:)表示第i层网络层中的各第一子数据,采用表示第i层网络层中的各第二子数据,Co表示输出通道,Ci表示输入通道。
以第i层网络层为卷积层为例,参见图3所示,提供一种通过输入通道和输出通道确定子数据的具体示例,其中,该子数据包括:第一子数据和/或第二子数据。在该实例中,第i层网络层对应的输入数据为3通道的输入特征图P,输入通道数为3,对应的输出通道数为10;也即,采用10个尺寸为3*3*3的卷积核a1~a10,依次对特征图输入特征图P进行卷积处理,得到与每个卷积核分别对应的特征子图s1~s10,由10张特征子图s1~s10构成h*w*10的输出特征图Q;其中,h和w分别表示输出特征图Q的高和宽;10表示Q的通道数;在10个卷积核的每个卷积核中包括与3个输入通道分别对应的子卷积核;例如,在卷积核a1中,包括与3个输入通道分别对应的子卷积核:a1-1,a1-2以及a1-3;在卷积核a2中,包括与3个输入通道分别对应的子卷积核:a2-1,a2-2和a2-3;在卷积核a3中,包括与3个输入通道分别对应的子卷积核:a3-1,a3-2和a3-3;……;在卷积核a10中,包括与3个输入通道分别对应的子卷积核:a10-1,a10-2和a10-3。
在该示例中,Co的取值范围为1-10的整数;Ci的取值范围为:1-3的整数;若Co=5,Ci=2,则对应的Wi conv(5,2,:,:)为:卷积核a5(对应于输出通道)中的第二个通道对应的卷积参数:a5-2(对应于输入通道)。
则第一子数据Wi conv(Co,Ci,:,:)和第二子数据之间的相似性满足下述公式(1):
表示Wi conv(Co,Ci,:,:)的均值;/>表示/>的均值;/>表示Wi conv(Co,Ci,:,:)的方差;/>表示/>的方差;/>表示/>和Wi conv(Co,Ci,:,:)的协方差;c1和c2是用于维持稳定的常数。
第i层网络层对应的第一网络子参数和第二网络子参数之间的二维空间结构相似性例如满足下述公式(2)或公式(3):
其中,K表示输出通道的数量;L表示输入通道的数量。
B:在确定第i层网络层对应的第一网络子参数和第二网络子参数之间的三维空间结构相似性时,例如可以采用下述方式:
基于第i层网络层对应的输出通道数,将第一网络子参数分为多组第一子数据,并将第二网络子参数分为多组与第一子数据对应的第二子数据;
确定每组第一子数据和第二子数据之间的相似性;
基于每组第一子数据和第二子数据之间的相似性,确定第i层网络层对应的第一网络子参数和第二网络子参数之间的三维空间结构相似性。
在具体实施中,采用Wi conv(Co,:,:,:)表示第i层网络层中的各第一子数据,采用表示第i层网络层中的各第二子数据,Co表示输出通道。
仍然以第i层网络层为卷积层为例,在上述图3示出的示例中,第一子数据和对应的第二子数据,例如可以包括:10个卷积核中的1个卷积核。输出通道。即为卷积核的数量。
如在图3对应的示例中,第i层网络层对应的输入数据为3通道的输入特征图P,输入通道数为3,对应的输出通道数为10;也即,采用10个尺寸为3*3*3的卷积核a1~a10,依次对特征图输入特征图P进行卷积处理,得到与每个卷积核分别对应的特征子图s1~s10,由10张特征子图s1~s10构成h*w*10的输出特征图Q;其中,h和w分别表示输出特征图Q的高和宽;10表示Q的通道数;若Co=7,则对应的第一子数据为第7个卷积核a7。若Co=9,则对应的第一子数据为第9个卷积核a9。
第一子数据Wi conv(Co,:,:,:)和第二子数据之间的相似性例如满足下述公式(4):
其中,表示Wi conv(Co,:,:,:)的均值;/>表示/>的均值;/>表示Wi conv(Co,:,:,:)的方差;/>表示/>的方差;/>表示Wi conv(Co,:,:,:)和/>的协方差。c1和c2是用于维持稳定的常数。
第i层网络层对应的第一网络子参数和第二网络子参数之间的三维空间结构相似性满足下述公式(5)或公式(6):
C:在确定第i层网络层对应的第一网络子参数和第二网络子参数之间的四维空间结构相似性时,可以直接基于第一网络子参数和第二网络子参数,确定两者之间的四维空间结构相似性。
仍然以第i层网络层为卷积层为例,在上述图3示出的示例中,第一子数据和对应的第二子数据,例如可以包括:10个卷积核。
第i层网络层对应的第一网络子参数和第二网络子参数之间的四维空间结构相似性例如满足下述公式(7):
其中,μi表示Wi conv(:,:,:,:)的均值;表示/>的均值;σi表示Wi conv(:,:,:,:)的方差;/>表示/>的方差;ψi表示Wi conv(:,:,:,:)和/>的协方差;c1和c2是用于维持稳定的常数。
由此可见,以确定第i层网络层对应的第一网络子参数和第二网络子参数之间的结构相似性为例,若第i层网络层为卷积层,且利用n个卷积核对输入的数据进行卷积处理。
二维空间结构相似性:第一网络子参数和第二网络子参数均为卷积核中的一个子卷积核。
三维空间结构相似性:第一网络子参数和第二网络子参数均为n个卷积核中的一个卷积核。
四维空间结构相似性:第一网络子参数和第二网络子参数均为n个卷积核。
这样,可以在不同的空间维度上,确定第一网络子参数和第二网络子参数之间的相似性。
承接上述S201,本公开实施例提供的确定第一损失的方法还包括:
S202:基于所述第一网络参数、以及所述第二网络参数之间的结构相似性,确定所述第二神经网络的第一损失。
在具体实施中,确定第一损失时,例如可以基于各网络层分别对应的结构相似性,确定第二神经网络的第一损失。
示例性的,若网络层的数量为I,则得到的各层网络层的第一网络子参数和第二网络子参数之间的结构相似性也有I个;然后I个网络层分别对应的I个结构相似性,确定第二神经网络的第一损失。
第一损失Lp例如满足下述公式(8):
其中,Combine(·)例如可以是累乘、累加等操作中任一种。表示第一网络参数Wconv和第二网络参数/>之间的结构相似性。
通过上述方式,即可得到第一损失。
在得到第一损失后,可以采用下述方式基于第一损失调整量化参数,得到目标神经网络:
利用所述第二神经网络对样本数据进行处理,得到第二损失;
基于所述第一损失和所述第二损失,确定模型损失;
将所述模型损失和预设的损失阈值进行比对,并基于比对的结果,调整所述量化参数,得到目标神经网络。
在具体实施行中,利用第二神经网络对样本数据进行处理,例如是将样本数据输入至第二神经网络,得到对第二神经网络进行处理的结果。该处理与第二神经网络的功能相关;例如,若第二神经网络用于目标检测,则处理的结果为目标检测结果;若第二神经网络用于三维空间恢复,则处理的结果为三维模型。
第二损失,包括第二神经网络对样本数据进行处理时的精度损失,其利用对样本数据进行处理的结果、以及样本数据的标注信息生成。
在基于第一损失和第二损失确定模型损失时,例如可以将第一损失和第二损失相加、加权求和、相乘等,得到模型损失。
例如,模型损失L满足:L=Lacc+Lp;其中,Lacc表示第二损失。
在得到模型损失后,将模型损失和预设的损失阈值进行比对,并基于比对的结果,调整所述量化参数,得到目标神经网络。
示例性的,若模型损失大于或者等于预设的损失阈值,可以相应增大量化参数;在增大量化参数时,可以增大至少部分网络层的第一网络参数分别对应的第一量化比特数,或者增大各个网络层的第一网络参数分别对应的第一量化比特数的总比特数。在增大量化参数的同时,也可以减小部分第一网络参数分别对应的第一量化比特数,保持各个网络层的第一网络参数分别对应的第一量化比特数的总比特数增加即可。
相应的,若模型损失小于预设的损失阈值,则可以响应减小量化参数。在减小量化参数时,例如可以减小至少部分网络层的第一网络参数分别对应的第一量化比特数,或者减小各个网络层的第一网络参数分别对应的第一量化比特数的总比特数。在减小量化参数的同时,也可以增大部分第一网络参数分别对应的第一量化比特数,保持各个网络层的第一网络参数分别对应的第一量化比特数的总比特数减小即可。
在本公开另一实施例中,量化参数还可以包括:所述第一神经网络中各个网络层的输入数据和/或输出数据分别对应的第二量化比特数。该第二量化比特数,用于在第二神经网络对样本数据进行处理时,将各个网络层的输入数据和/或输出数据从浮点数数据量化至固定的比特数,或者从一个固定的比特数量化至另一个固定的比特数。例如,若某一网络层对应的输入数据对应的量化比特数为6,该输入数据为16位浮点数;在利用量化神经网络对样本数据进行处理时,与该网络层对应的输入数据在输入至该网络层之前,从16位浮点数被量化至6位定点数;或者,若某一网络层对应的输入数据对应的量化比特数为5,该输入数据为8位定点数;在利用量化神经网络对样本数据进行处理时,与该网络层对应的输入数据在输入至该网络层之前,从8位定点数被量化至5位定点数。
示例性的,各个网络层的输入数据,若该网络层为第一神经网络中的首个网络层,则该首个网络层的输入数据为输入至第一神经网络中的样本数据或者待处理数据;若该网络层为第一神经网络中除首个网络层外的其他网络层,则输入数据为前一层网络层的输出数据;各个网络层的输出数据,若该网络层为第一神经网络中的最后一个网络层,则该最后一个网络层的输出数据为第一神经网络对样本数据或者待处理数据进行处理后得到的处理结果。
参见图4所示,本公开实施例还提供另外一种神经网络的生成方法,包括:
S401:获取第一神经网络;
S402:利用第一量化比特数对所述第一神经网络中的第一网络参数进行量化处理,得到第二神经网络;
S403:基于所述第一网络参数、以及对所述第一网络参数进行量化后得到的第二网络参数,确定所述第二神经网络的第一损失。
其中,上述S401~S403与上述S101~S103的实现过程类似,在此不再赘述。
S404:利用所述第一神经网络对样本数据进行处理,得到所述样本数据在所述第一神经网络中的目标网络层的第一特征数据;以及利用所述第二神经网络、以及所述第二量化比特数对样本数据进行处理,得到所述样本数据在所述第二神经网络中的目标网络层的第二特征数据。
此处,目标网络层可以是神经网络中的全部网络层或者部分特定的网络层,具体的,可以根据实际的需要进行确定。示例性的,若神经网络的结构较为简单,所包括的网络层的数量较少,则可以将全部的网络层均确定为目标网络层;若神经网络的结构较为复杂,所包括的网络层的数量较多,则可以将其中部分网络层确定为目标网络层。
S405:基于所述第一特征数据、以及所述第二特征数据,确定第三损失。
此处,例如可以确定所述第一特征数据、以及所述第二特征数据之间的结构相似性;基于所述第一特征数据、以及所述第二特征数据之间的结构相似性,确定所述第二神经网络的第三损失。
其中,第一特征数据和第二特征数据之间的结构相似性,和上述第一网络参数、第二网络参数之间的结构相似性的确定方式类似,具体可参见上述图2对应的实施例,在此不再赘述。
S406:基于所述第一损失、以及所述第三损失调整所述量化参数,生成所述目标神经网络。
此处,在基于第一损失、第三损失调整量化参数时,例如可以采用下述方式:
利用所述第二神经网络对样本数据进行处理,得到第二损失;
基于所述第一损失、所述第二损失和所述第三损失,确定模型损失;
将所述模型损失和预设的损失阈值进行比对,并基于比对的结果,调整所述量化参数,得到目标神经网络。
具体的调整方式与上述实施例类似,在此不再赘述。
在本公开另一种实施例中,在生成目标神经网络的时候,例如可以对量化参数进行多个周期的迭代。参见图5所示,本公开实施例提供一种通过对量化参数进行多个周期的迭代,生成目标神经网络的具体方法,包括:
S501:获取第一神经网络。
此处,S501的具体实现方式与上述S101的具体实现方式相似,在此不再赘述。
执行下述多次周期的迭代过程,直至满足预设的迭代停止条件:
S502:根据当前周期对应的量化参数对所述第一神经网络中的第一网络参数进行量化处理,得到所述当前周期对应的第二网络参数;其中,所述当前周期对应的量化参数基于原始量化参数确定,或者基于前一周期得到的新的量化参数确定。
量化处理的过程与上述S102类似,在此不再赘述。
示例性的,例如可以预先设定原始量化参数,将各个第一网络参数对应的量化比特数均确定为8;在当前周期为首个周期的情况下,将原始量化参数确定为首个周期对应的量化参数,对第一神经网络中的第一网络参数进行量化处理,得到首个周期对应的第二网络参数,并利用该首个周期对应的第二网络参数,得到首个周期对应的第二神经网络。
若当前周期并非首个周期,则基于前一周期确定当前周期的量化参数,并利用前一周期确定的当前周期的量化参数,得到当前周期对应的第二神经网络。其中,根据前一周期确定当前周期的量化参数的具体过程,可参见下述S509,在此不再赘述。
S503:基于所述当前周期对应的第二网络参数,得到所述当前周期对应的当前第二神经网络。
得到当前第二神经网络的过程与上述S102中得到第二神经网络的过程类似,具体可参见对S102的描述,在此不再赘述。
S504:基于所述第一网络参数、以及所述当前周期对应的第二网络参数,确定所述当前第二神经网络的第一损失。
当前神经网络的第一损失的过程与上述S103类似,在此不再赘述。
S505:利用所述当前第二神经网络对样本数据进行处理,得到所述当前第二神经网络的第二损失。
S506:基于所述当前第二神经网络的第一损失和第二损失,确定所述当前第二神经网络的当前模型损失。
S507:将所述当前模型损失和预设的损失阈值进行比对。
S508:响应于所述当前模型损失小于或者等于所述损失阈值,将所述当前周期对应的量化参数确定为所述目标量化参数,并基于所述目标量化参数生成所述目标神经网络。
S509:响应于所述当前模型损失大于所述损失阈值,基于当前周期对应的量化参数,确定新的量化参数;将所述新的量化参数确定为下一周期对应的量化参数,并跳转至S502。
此处,基于当前周期对应的量化参数,确定新的量化参数的方式与上述S104中类似,在此不再赘述。
通过上述迭代过程,即可通过多个周期确定目标量化参数,并利用目标量化参数对第一神经网络中的第一网络参数进行处理,得到目标神经网络。
在本公开另一实施例中,在对量化参数进行迭代的过程中,上述S508还可以包括:
响应于所述当前模型损失小于或者等于所述损失阈值、且满足预设迭代停止条件,将所述当前周期对应的量化参数确定为所述目标量化参数,并基于所述目标量化参数生成所述目标神经网络。
此处,预设迭代停止条件包括:下述至少一种:
迭代周期达到预设周期数;
第二神经网络中各个网络层的第一网络参数分别对应的量化比特数的总比特数值大于预设的比特数阈值。
另外,响应于所述当前模型损失小于或者等于所述损失阈值、但不满足所述预设迭代停止条件,基于当前周期对应的量化参数,确定新的量化参数;
将所述新的量化参数确定为下一周期对应的量化参数,返回至利用量化参数对所述第一神经网络中的第一网络参数进行量化处理,得到第二神经网络的步骤。
这样,在满足当前模型损失小于或者等于所述损失阈值的情况下,若不满足预设迭代停止条件,还可以继续对量化参数进行迭代,使得得到的量化参数能够更优。
本领域技术人员可以理解,在具体实施方式的上述方法中,各步骤的撰写顺序并不意味着严格的执行顺序而对实施过程构成任何限定,各步骤的具体执行顺序应当以其功能和可能的内在逻辑确定。
基于同一发明构思,本公开实施例中还提供了与神经网络的生成方法对应的神经网络的生成装置,由于本公开实施例中的装置解决问题的原理与本公开实施例上述神经网络的生成方法相似,因此装置的实施可以参见方法的实施,重复之处不再赘述。
参照图6所示,为本公开实施例提供的一种神经网络的生成装置的示意图,所述装置包括:
获取模块61,用于获取第一神经网络;
量化模块62,用于利用量化参数对所述第一神经网络中的第一网络参数进行量化处理,得到第二神经网络;
确定模块63,用于基于所述第一网络参数、以及对所述第一网络参数进行量化后得到的第二网络参数,确定所述第二神经网络的第一损失;
生成模块64,用于基于所述第一损失调整所述量化参数,得到目标神经网络。
一种可能的实施方式中,所述量化参数包括:所述第一神经网络中各个网络层的第一网络参数分别对应的第一量化比特数。
一种可能的实施方式中,所述确定模块63,在基于所述第一网络参数、以及对所述第一网络参数进行量化后得到的第二网络参数,确定所述第二神经网络的第一损失时,用于:
确定所述第一网络参数、和所述第二网络参数之间的结构相似性;
基于所述第一网络参数、以及所述第二网络参数之间的结构相似性,确定所述第二神经网络的第一损失。
一种可能的实施方式中,所述第一网络参数包括:每个网络层对应的第一网络子参数;所述第二网络参数包括:每个网络层对应的第二网络子参数;
所述确定模块63,在确定所述第一网络参数、和所述第二网络参数之间的结构相似性时,用于:
针对每个网络层,确定该网络层对应的第一网络子参数和第二网络子参数之间的结构相似性;
所述确定模块63,在基于所述第一网络参数、以及所述第二网络参数之间的结构相似性,确定所述第二神经网络的第一损失时,用于:
基于各网络层分别对应的结构相似性,确定第二神经网络的第一损失。
一种可能的实施方式中,所述生成模块64,在基于所述第一损失调整所述量化参数,得到目标神经网络时,用于:
利用所述第二神经网络对样本数据进行处理,得到第二损失;
基于所述第一损失和所述第二损失,确定模型损失;
将所述模型损失和预设的损失阈值进行比对,并基于比对的结果,调整所述量化参数,得到目标神经网络。
一种可能的实施方式中,所述量化参数还包括:所述第一神经网络中各个网络层的输入数据和/或输出数据分别对应的第二量化比特数;所述确定模块63还用于:
利用所述第一神经网络对样本数据进行处理,得到所述样本数据在所述第一神经网络中的目标网络层的第一特征数据;以及
利用所述第二神经网络、以及所述第二量化比特数对样本数据进行处理,得到所述样本数据在所述第二神经网络中的目标网络层的第二特征数据;
基于所述第一特征数据、以及所述第二特征数据,确定第三损失;
所述生成模块64,在基于所述第一损失调整所述量化参数,得到目标神经网络时,用于:
基于所述第一损失、以及所述第三损失调整所述量化参数,生成所述目标神经网络。
一种可能的实施方式中,所述确定模块63,在基于所述第一特征数据、以及所述第二特征数据,确定第三损失时,用于:
确定所述第一特征数据、以及所述第二特征数据之间的结构相似性;
基于所述第一特征数据、以及所述第二特征数据之间的结构相似性,确定所述第二神经网络的第三损失。
一种可能的实施方式中,所述量化模块62,在利用量化参数对所述第一神经网络中的第一网络参数进行量化处理,得到第二神经网络时,用于:
对所述第一神经网络进行至少一个周期的量化处理,将每一个周期作为当前周期,在当前周期中执行如下量化处理步骤:针对当前周期,根据所述当前周期对应的量化参数对所述第一神经网络中的第一网络参数进行量化处理,得到所述当前周期对应的第二网络参数;
基于所述当前周期对应的第二网络参数,得到所述当前周期对应的当前第二神经网络;
其中,所述当前周期对应的量化参数基于原始量化参数确定,或者基于前一周期确定;
所述确定模块63,在基于所述第一网络参数、以及对所述第一网络参数进行量化后得到的第二网络参数,确定所述第二神经网络的第一损失时,用于:
基于所述第一网络参数、以及所述当前周期对应的第二网络参数,确定所述当前第二神经网络的第一损失。
一种可能的实施方式中,所述生成模块64,在基于所述第一损失调整所述量化参数,得到目标神经网络时,用于:
利用所述当前第二神经网络对样本数据进行处理,得到所述当前第二神经网络的第二损失;
基于所述当前第二神经网络的第一损失和第二损失,确定所述当前第二神经网络的当前模型损失;
将所述当前模型损失和预设的损失阈值进行比对;
响应于所述当前模型损失小于或者等于所述损失阈值,将所述当前周期对应的量化参数确定为目标量化参数,并基于所述目标量化参数生成所述目标神经网络。
一种可能的实施方式中,所述生成模块64,还用于:
响应于所述当前模型损失大于所述损失阈值,基于当前周期对应的量化参数,确定新的量化参数;
将所述新的量化参数确定为下一周期对应的量化参数,返回至利用量化参数对所述第一神经网络中的第一网络参数进行量化处理,得到第二神经网络的步骤中,下一个周期的量化处理步骤。
一种可能的实施方式中,所述生成模块64,在响应于所述当前模型损失小于或者等于所述损失阈值,将所述当前周期对应的量化参数确定为所述目标量化参数,并基于所述目标量化参数生成所述目标神经网络时,用于:
响应于所述当前模型损失小于或者等于所述损失阈值、且满足预设迭代停止条件,将所述当前周期对应的量化参数确定为所述目标量化参数,并基于所述目标量化参数生成所述目标神经网络。
一种可能的实施方式中,所述生成模块64,还用于:
响应于所述当前模型损失小于或者等于所述损失阈值、但不满足所述预设迭代停止条件,基于当前周期对应的量化参数,确定新的量化参数;
将所述新的量化参数确定为下一周期对应的量化参数,返回至利用量化参数对所述第一神经网络中的第一网络参数进行量化处理,得到第二神经网络的步骤中,下一个周期的量化处理步骤。
一种可能的实施方式中,所述预设迭代停止条件包括下述至少一种:
迭代周期达到预设周期数;
第二神经网络中各个网络层的第一网络参数分别对应的量化比特数的总比特数值大于预设的比特数阈值。
关于装置中的各模块的处理流程、以及各模块之间的交互流程的描述可以参照上述方法实施例中的相关说明,这里不再详述。
本公开实施例还提供了一种计算机设备,如图7所示,为本公开实施例提供的计算机设备结构示意图,包括:
处理器71和存储器72;所述存储器72存储有处理器71可执行的机器可读指令,处理器71用于执行存储器72中存储的机器可读指令,所述机器可读指令被处理器71执行时,处理器71执行下述步骤:
获取第一神经网络;
利用量化参数对所述第一神经网络中的第一网络参数进行量化处理,得到第二神经网络;
基于所述第一网络参数、以及对所述第一网络参数进行量化后得到的第二网络参数,确定所述第二神经网络的第一损失;
基于所述第一损失调整所述量化参数,得到目标神经网络。
上述存储器72包括内存721和外部存储器722;这里的内存721也称内存储器,用于暂时存放处理器71中的运算数据,以及与硬盘等外部存储器722交换的数据,处理器71通过内存721与外部存储器722进行数据交换。
上述指令的具体执行过程可以参考本公开实施例中所述的神经网络的生成方法的步骤,此处不再赘述。
本公开实施例还提供一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,该计算机程序被处理器运行时执行上述方法实施例中所述的神经网络的生成方法的步骤。其中,该存储介质可以是易失性或非易失的计算机可读取存储介质。
本公开实施例还提供一种计算机程序产品,该计算机程序产品承载有程序代码,所述程序代码包括的指令可用于执行上述方法实施例中所述的神经网络的生成方法的步骤,具体可参见上述方法实施例,在此不再赘述。
其中,上述计算机程序产品可以具体通过硬件、软件或其结合的方式实现。在一个可选实施例中,所述计算机程序产品具体体现为计算机存储介质,在另一个可选实施例中,计算机程序产品具体体现为软件产品,例如软件开发包(Software Development Kit,SDK)等等。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统和装置的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。在本公开所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,又例如,多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些通信接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本公开各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个处理器可执行的非易失的计算机可读取存储介质中。基于这样的理解,本公开的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本公开各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-OnlyMemory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
最后应说明的是:以上所述实施例,仅为本公开的具体实施方式,用以说明本公开的技术方案,而非对其限制,本公开的保护范围并不局限于此,尽管参照前述实施例对本公开进行了详细的说明,本领域的普通技术人员应当理解:任何熟悉本技术领域的技术人员在本公开揭露的技术范围内,其依然可以对前述实施例所记载的技术方案进行修改或可轻易想到变化,或者对其中部分技术特征进行等同替换;而这些修改、变化或者替换,并不使相应技术方案的本质脱离本公开实施例技术方案的精神和范围,都应涵盖在本公开的保护范围之内。因此,本公开的保护范围应所述以权利要求的保护范围为准。

Claims (10)

1.一种神经网络的生成方法,其特征在于,包括:
获取第一神经网络;所述第一神经网络为基于样本图像作为样本数据进行训练的用于人脸检测的人脸检测神经网络;
利用量化参数对所述第一神经网络中的第一网络参数进行量化处理,得到第二神经网络;所述量化参数包括:所述第一神经网络中各个网络层的第一网络参数分别对应的第一量化比特数;
针对每个网络层,确定该网络层对应的第一网络子参数、和对所述第一网络子参数进行量化后得到的第二网络子参数之间的结构相似性;
基于各网络层分别对应的结构相似性,确定所述第二神经网络的第一损失;
利用所述第二神经网络对所述样本数据进行处理,得到第二损失;所述第二损失包括第二神经网络对所述样本数据进行处理时的精度损失,其利用对样本数据进行处理的结果、以及样本数据的标注信息生成;
基于所述第一损失和所述第二损失,确定模型损失;
将所述模型损失和预设的损失阈值进行比对,并基于比对的结果,调整所述量化参数,得到目标神经网络;所述目标神经网络用于人脸检测。
2.根据权利要求1所述的方法,其特征在于,所述利用量化参数对所述第一神经网络中的第一网络参数进行量化处理,得到第二神经网络,包括:
对所述第一神经网络进行至少一个周期的量化处理,将每一个周期作为当前周期,在当前周期中执行如下量化处理步骤:
针对当前周期,根据所述当前周期对应的量化参数对所述第一神经网络中的第一网络参数进行量化处理,得到所述当前周期对应的第二网络参数;
基于所述当前周期对应的第二网络参数,得到所述当前周期对应的当前第二神经网络;
其中,所述当前周期对应的量化参数基于原始量化参数确定,或者基于前一周期确定;
所述针对每个网络层,确定该网络层对应的第一网络子参数、和对所述第一网络子参数进行量化后得到的第二网络子参数之间的结构相似性;基于各网络层分别对应的结构相似性,确定所述第二神经网络的第一损失,包括:
针对每个网络层,确定该网络层对应的第一网络子参数、和所述当前周期对应的第二网络子参数之间的结构相似性;
基于各网络层分别对应的结构相似性,确定所述当前第二神经网络的第一损失。
3.根据权利要求2所述的方法,其特征在于,所述调整所述量化参数,得到目标神经网络,包括:
利用所述当前第二神经网络对样本数据进行处理得到所述当前第二神经网络的第二损失;所述第二损失包括第二神经网络对所述样本数据进行处理时的精度损失,其利用对样本数据进行处理的结果、以及样本数据的标注信息生成;
基于所述当前第二神经网络的第一损失和第二损失,确定所述当前第二神经网络的当前模型损失;
将所述当前模型损失和预设的损失阈值进行比对;
响应于所述当前模型损失小于或者等于所述损失阈值,将所述当前周期对应的量化参数确定为目标量化参数,并基于所述目标量化参数生成所述目标神经网络。
4.根据权利要求3所述的方法,其特征在于,所述方法还包括:
响应于所述当前模型损失大于所述损失阈值,基于当前周期对应的量化参数,确定新的量化参数;
将所述新的量化参数确定为下一周期对应的量化参数,返回至利用量化参数对所述第一神经网络中的第一网络参数进行量化处理,得到第二神经网络的步骤中,进行下一个周期的量化处理步骤。
5.根据权利要求3或4所述的方法,其特征在于,所述响应于所述当前模型损失小于或者等于所述损失阈值,将所述当前周期对应的量化参数确定为目标量化参数,并基于所述目标量化参数生成所述目标神经网络,包括:
响应于所述当前模型损失小于或者等于所述损失阈值、且满足预设迭代停止条件,将所述当前周期对应的量化参数确定为所述目标量化参数,并基于所述目标量化参数生成所述目标神经网络。
6.根据权利要求5所述的方法,其特征在于,所述方法还包括:
响应于所述当前模型损失小于或者等于所述损失阈值、但不满足所述预设迭代停止条件,基于当前周期对应的量化参数,确定新的量化参数;
将所述新的量化参数确定为下一周期对应的量化参数,返回至利用量化参数对所述第一神经网络中的第一网络参数进行量化处理,得到第二神经网络的步骤中,进行下一个周期的量化处理步骤。
7.根据权利要求6所述的方法,其特征在于,所述预设迭代停止条件包括下述至少一种:
迭代周期达到预设周期数;
第二神经网络中各个网络层的第一网络参数分别对应的量化比特数的总比特数值大于预设的比特数阈值。
8.一种神经网络的生成装置,其特征在于,包括:
获取模块,用于获取第一神经网络;所述第一神经网络为基于样本图像作为样本数据进行训练的用于人脸检测的人脸检测神经网络;
量化模块,用于利用量化参数对所述第一神经网络中的第一网络参数进行量化处理,得到第二神经网络;所述量化参数包括:所述第一神经网络中各个网络层的第一网络参数分别对应的第一量化比特数;
确定模块,用于针对每个网络层,确定该网络层对应的第一网络子参数、和对所述第一网络子参数进行量化后得到的第二网络子参数之间的结构相似性;基于各网络层分别对应的结构相似性,确定所述第二神经网络的第一损失;
生成模块,用于利用所述第二神经网络对所述样本数据进行处理,得到第二损失;所述第二损失包括第二神经网络对所述样本数据进行处理时的精度损失;基于所述第一损失和所述第二损失,确定模型损失;将所述模型损失和预设的损失阈值进行比对,并基于比对的结果,调整所述量化参数,得到目标神经网络;所述目标神经网络用于人脸检测。
9.一种计算机设备,其特征在于,包括:处理器、存储器,所述存储器存储有所述处理器可执行的机器可读指令,所述处理器用于执行所述存储器中存储的机器可读指令,所述机器可读指令被所述处理器执行时,所述处理器执行如权利要求1至7任一项所述的神经网络的生成方法的步骤。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被计算机设备运行时,所述计算机设备执行如权利要求1至7任意一项所述的神经网络的生成方法的步骤。
CN202111158652.4A 2021-09-30 2021-09-30 一种神经网络的生成方法、装置、计算机设备及存储介质 Active CN113807504B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202111158652.4A CN113807504B (zh) 2021-09-30 2021-09-30 一种神经网络的生成方法、装置、计算机设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202111158652.4A CN113807504B (zh) 2021-09-30 2021-09-30 一种神经网络的生成方法、装置、计算机设备及存储介质

Publications (2)

Publication Number Publication Date
CN113807504A CN113807504A (zh) 2021-12-17
CN113807504B true CN113807504B (zh) 2024-04-16

Family

ID=78897170

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202111158652.4A Active CN113807504B (zh) 2021-09-30 2021-09-30 一种神经网络的生成方法、装置、计算机设备及存储介质

Country Status (1)

Country Link
CN (1) CN113807504B (zh)

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110348562A (zh) * 2019-06-19 2019-10-18 北京迈格威科技有限公司 神经网络的量化策略确定方法、图像识别方法和装置
CN110443165A (zh) * 2019-07-23 2019-11-12 北京迈格威科技有限公司 神经网络量化方法、图像识别方法、装置和计算机设备
CN112288086A (zh) * 2020-10-30 2021-01-29 北京市商汤科技开发有限公司 一种神经网络的训练方法、装置以及计算机设备
CN112884144A (zh) * 2021-02-01 2021-06-01 上海商汤智能科技有限公司 网络量化方法及装置、电子设备和存储介质
CN113011581A (zh) * 2021-02-23 2021-06-22 北京三快在线科技有限公司 神经网络模型压缩方法、装置、电子设备及可读存储介质
CN113052290A (zh) * 2021-03-31 2021-06-29 上海阵量智能科技有限公司 神经网络的生成、数据处理方法、装置及电子设备和介质
CN113326930A (zh) * 2020-02-29 2021-08-31 华为技术有限公司 数据处理方法、神经网络的训练方法及相关装置、设备
CN113361678A (zh) * 2020-03-04 2021-09-07 北京百度网讯科技有限公司 神经网络模型的训练方法和装置

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110348562A (zh) * 2019-06-19 2019-10-18 北京迈格威科技有限公司 神经网络的量化策略确定方法、图像识别方法和装置
CN110443165A (zh) * 2019-07-23 2019-11-12 北京迈格威科技有限公司 神经网络量化方法、图像识别方法、装置和计算机设备
CN113326930A (zh) * 2020-02-29 2021-08-31 华为技术有限公司 数据处理方法、神经网络的训练方法及相关装置、设备
CN113361678A (zh) * 2020-03-04 2021-09-07 北京百度网讯科技有限公司 神经网络模型的训练方法和装置
CN112288086A (zh) * 2020-10-30 2021-01-29 北京市商汤科技开发有限公司 一种神经网络的训练方法、装置以及计算机设备
CN112884144A (zh) * 2021-02-01 2021-06-01 上海商汤智能科技有限公司 网络量化方法及装置、电子设备和存储介质
CN113011581A (zh) * 2021-02-23 2021-06-22 北京三快在线科技有限公司 神经网络模型压缩方法、装置、电子设备及可读存储介质
CN113052290A (zh) * 2021-03-31 2021-06-29 上海阵量智能科技有限公司 神经网络的生成、数据处理方法、装置及电子设备和介质

Also Published As

Publication number Publication date
CN113807504A (zh) 2021-12-17

Similar Documents

Publication Publication Date Title
US11481613B2 (en) Execution method, execution device, learning method, learning device, and recording medium for deep neural network
CN110363279B (zh) 基于卷积神经网络模型的图像处理方法和装置
CN108345939B (zh) 基于定点运算的神经网络
US9875428B2 (en) Ensemble sparse models for image analysis and restoration
WO2022006919A1 (zh) 基于激活定点拟合的卷积神经网络训练后量化方法及系统
WO2023029349A1 (zh) 模型量化方法、装置、设备、存储介质、计算机程序产品及计算机程序
CN112673383A (zh) 神经网络核中动态精度的数据表示
CN111178258B (zh) 一种图像识别的方法、系统、设备及可读存储介质
CN110166385B (zh) 一种码本生成方法及装置
KR20200079059A (ko) 비트 연산 기반의 뉴럴 네트워크 처리 방법 및 장치
CN110109646B (zh) 数据处理方法、装置和乘加器及存储介质
CN112749603A (zh) 活体检测方法、装置、电子设备及存储介质
CN113807504B (zh) 一种神经网络的生成方法、装置、计算机设备及存储介质
CN113962385A (zh) 神经网络训练及数据处理方法和装置、介质及计算机设备
CN110910434A (zh) 基于fpga高能效实现深度学习视差估计算法的方法
CN114640354A (zh) 数据压缩方法、装置、电子设备及计算机可读存储介质
CN112381147B (zh) 动态图片相似度模型建立、相似度计算方法和装置
CN113052290B (zh) 神经网络的生成、数据处理方法、装置及电子设备和介质
Chen et al. Exploiting weight-level sparsity in channel pruning with low-rank approximation
WO2011150544A1 (en) 3d model comparison
JP2016527546A (ja) 信号の符号化および復号化の方法および装置
CN111160517A (zh) 一种深度神经网络的卷积层量化方法及装置
CN103636129A (zh) 多尺度码本搜索
CN113159297B (zh) 一种神经网络压缩方法、装置、计算机设备及存储介质
CN115034389A (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