掌桥专利:专业的专利平台
掌桥专利
首页

基于二值神经网络模型的图像分类方法以及相关设备

文献发布时间:2024-01-17 01:26:37


基于二值神经网络模型的图像分类方法以及相关设备

技术领域

本申请涉及人工智能技术领域,尤其涉及一种基于二值神经网络模型的图像分类方法以及相关设备。

背景技术

随着机器学习的快速发展,神经网络模型的规模也越来越大,正在经历从深度学习进一步向大模型发展的时期。在图像分类领域中,往往会将用于图像分类的神经网络模型部署到嵌入式设备或移动设备中,由于嵌入式设备或移动设备的存储空间以及计算资源有限,利用全精度的神经网络模型难以在嵌入式设备或移动设备上进行高效的图像分类推理。因此,如何在嵌入式设备或移动设备等微型设备上实现准确高效的图像分类成为亟待解决的技术问题。

发明内容

本申请实施例的主要目的在于提出一种基于二值神经网络模型的图像分类方法、装置、电子设备及计算机可读存储介质,能够在嵌入式设备或移动设备等微型设备上实现准确高效的图像分类。

为实现上述目的,本申请实施例的第一方面提出了一种基于二值神经网络模型的图像分类方法,所述方法包括:

获取待分类图像;

将所述待分类图像输入至预设的二值神经网络模型,以通过所述二值神经网络模型得到所述待分类图像对应的分类预测结果;

其中,所述二值神经网络模型通过以下步骤离线量化得到:

基于预训练好的全精度神经网络模型对预设的第一神经网络模型进行参数初始化,得到第二神经网络模型,其中,所述全精度神经网络模型和所述第一神经网络模型的网络结构相同;

从完整数据集的每个样本类别中抽取至少一个样本数据作为校准样本,得到多个所述校准样本以及所述校准样本对应的标签值;

以所述全精度神经网络模型为教师模型,基于所述校准样本以及所述校准样本对应的标签值对所述第二神经网络模型所包括的各层网络从前往后逐层进行知识蒸馏,以更新所述第二神经网络模型的权重参数,得到第三神经网络模型;

对所述第三神经网络模型进行二值量化,得到所述二值神经网络模型。

根据本申请一些实施例提供的基于二值神经网络模型的图像分类方法,在更新所述第二神经网络模型的权重参数的过程中,所述方法包括:

对于所述第二神经网络模型中的各层网络,当模型梯度的趋势为使权重参数的绝对值变大,基于第一预设比例更新所述第二神经网络模型的权重参数,所述第一预设比例的取值范围为0到1;

所述第二神经网络模型更新后的权重参数通过以下公式表示:

其中,所述

根据本申请一些实施例提供的基于二值神经网络模型的图像分类方法,所述方法还包括:

对于所述第二神经网络模型中的各层网络,当更新前的权重参数与模型梯度的数值符号一致,确定所述模型梯度的趋势为使权重参数的绝对值变大。

根据本申请一些实施例提供的基于二值神经网络模型的图像分类方法,所述基于预训练好的全精度神经网络模型对预设的第一神经网络模型进行参数初始化,得到第二神经网络模型,包括:

获取预训练好的全精度神经网络模型中各层网络的权重参数;

从所述全精度神经网络模型中各层网络对应的权重参数中确定最大参数值和最小参数值,根据所述最大参数值和所述最小参数值确定各层网络对应的权重参数零点值和权重参数幅度值;

其中,所述权重参数零点值为所述最大参数值和所述最小参数值之间的平均值,所述权重参数幅度值为所述最大参数值和所述最小参数值之间的绝对差值的一半;

基于所述权重参数零点值和所述权重参数幅度值对预设的第一神经网络模型中的各层网络进行参数初始化,得到第二神经网络模型;

所述第二神经网络模型的权重参数通过以下公式表示:

其中,所述

根据本申请一些实施例提供的基于二值神经网络模型的图像分类方法,所述基于预训练好的全精度神经网络模型对预设的第一神经网络模型进行参数初始化,得到第二神经网络模型,包括:

获取预训练好的全精度神经网络模型中各层网络的权重参数;

根据所述全精度神经网络模型中各层网络对应的权重参数确定各层网络对应的权重参数平均值和权重参数标准差;

根据所述权重参数平均值和所述权重参数标准差对预设的第一神经网络模型中的各层网络进行参数初始化,得到第二神经网络模型;

所述第二神经网络模型的权重参数通过以下公式表示:

其中,所述

根据本申请一些实施例提供的基于二值神经网络模型的图像分类方法,在所述知识蒸馏的过程中,所述方法包括:

将所述校准样本输入至所述全精度神经网络模型,以通过所述校准样本在所述全精度神经网络模型所包括的各层网络中进行前向计算,得到所述全精度神经网络模型中各层网络对应的第一输出数据;

将所述校准样本输入至作为学生模型的所述第二神经网络模型,以通过所述校准样本在所述第二神经网络模型所包括的各层网络中进行前向计算,得到所述第二神经网络模型中各层网络对应的第二输出数据;

基于所述第一输出数据、所述第二输出数据以及所述校准样本对应的标签值,对所述第二神经网络模型所包括的各层网络从前往后逐层进行知识蒸馏,以更新所述第二神经网络模型的权重参数,得到第三神经网络模型。

根据本申请一些实施例提供的基于二值神经网络模型的图像分类方法,所述基于所述第一输出数据、所述第二输出数据以及所述校准样本对应的标签值,对所述第二神经网络模型所包括的各层网络从前往后逐层进行知识蒸馏,包括:

对于所述第二神经网络模型的中间网络层,根据所述第一输出数据和所述第二输出数据确定第一损失值;

在固定所述第二神经网络模型中除当前网络之外的各层网络的情况下,根据所述第一损失值更新当前网络对应的权重参数。

根据本申请一些实施例提供的基于二值神经网络模型的图像分类方法,所述基于所述第一输出数据、所述第二输出数据以及所述校准样本对应的标签值,对所述第二神经网络模型所包括的各层网络从前往后逐层进行知识蒸馏,包括:

对于所述第二神经网络模型的最后一层网络,根据所述第一输出数据、所述第二输出数据以及所述校准样本对应的标签值确定第二损失值;

在固定所述第二神经网络模型中除最后一层网络之外的各层网络的情况下,根据所述第二损失值更新所述第二神经网络模型的最后一层网络层的权重参数。

为实现上述目的,本申请实施例的第二方面提出了一种基于二值神经网络模型的图像分类装置,所述图像分类装置包括:

第一获取模块,用于获取待分类图像;

第一输入模块,用于将所述待分类图像输入至预设的二值神经网络模型,以通过所述二值神经网络模型得到所述待分类图像对应的分类预测结果;

其中,所述二值神经网络模型通过模型量化装置离线量化得到,所述模型量化装置包括:

参数初始化模块,用于基于预训练好的全精度神经网络模型对预设的第一神经网络模型进行参数初始化,得到第二神经网络模型,其中,所述全精度神经网络模型和所述第一神经网络模型的网络结构相同;

样本采集模块,用于从完整数据集的每个样本类别中抽取至少一个样本数据作为校准样本,得到多个所述校准样本以及所述校准样本对应的标签值;

知识蒸馏模块,用于以所述全精度神经网络模型为教师模型,基于所述校准样本以及所述校准样本对应的标签值对所述第二神经网络模型所包括的各层网络从前往后逐层进行知识蒸馏,以更新所述第二神经网络模型的权重参数,得到第三神经网络模型;

二值量化模块,用于对所述第三神经网络模型进行二值量化,得到所述二值神经网络模型。

根据本申请一些实施例提供的基于二值神经网络模型的图像分类方法,所述模型量化装置还包括:

梯度缩放模块,用于在更新所述第二神经网络模型的权重参数的过程中,对于所述第二神经网络模型中的各层网络,当模型梯度的趋势为使权重参数的绝对值变大,基于第一预设比例更新所述第二神经网络模型的权重参数,所述第一预设比例的取值范围为0到1;

所述第二神经网络模型更新后的权重参数通过以下公式表示:

其中,所述

为实现上述目的,本申请实施例的第三方面提出了一种电子设备,所述电子设备包括存储器、处理器、存储在所述存储器上并可在所述处理器上运行的计算机程序,所述计算机程序被所述处理器执行时实现上述第一方面所述的方法。

为实现上述目的,本申请实施例的第四方面提出了一种存储介质,所述存储介质为计算机可读存储介质,用于计算机可读存储,所述存储介质存储有一个或者多个计算机程序,所述一个或者多个计算机程序可被一个或者多个处理器执行,以实现上述第一方面所述的方法。

本申请提出一种基于二值神经网络模型的图像分类方法、装置、电子设备以及计算机可读存储介质,该方法通过获取待分类图像,并将待分类图像输入至预设的二值神经网络模型,以通过二值神经网络模型得到待分类图像对应的分类预测结果,其中,该二值神经网络模型通过以下步骤量化得到:基于预训练好的全精度神经网络模与全精度神经网络模型的网络结构相同的第一神经网络模型进行参数初始化,得到第二神经网络模型,之后从完整数据集的每个样本类别中抽取至少一个样本数据作为校准样本,得到多个校准样本以及校准样本对应的标签值,再以全精度神经网络模型为教师模型,基于校准样本以及校准样本对应的标签值对第二神经网络模型所包括的各层网络从前往后逐层进行知识蒸馏,以更新第二神经网络模型的权重参数得到第三神经网络模型,最后对第三神经网络模型进行二值量化最终得到二值神经网络模型。本申请实施例利用全精度神经网络模型对属于相同网络结构的第一神经网络模型进行逐层知识蒸馏得到的第二神经网络模型,能够使得第二神经网络模型充分学习到全精度神经网络模型的知识,之后再将第二神经网络模型的权重参数固定为1比特得到二值神经网络模型,能够极大程度地减少模型推理过程中占用的存储空间以及计算资源,利用该二值神经网络模型能够在诸如嵌入式设备或移动设备等存储空间和计算资源有限的微型设备上实现准确高效的图像分类。

附图说明

图1是本申请实施例提供的基于二值神经网络模型的图像分类方法的流程示意图;

图2是本申请另一实施例提供的基于二值神经网络模型的图像分类方法的流程示意图;

图3是本申请另一实施例提供的基于二值神经网络模型的图像分类方法的流程示意图;

图4是图2中步骤S210的子步骤流程示意图;

图5是图2中步骤S210的子步骤流程示意图;

图6是图2中步骤S230的子步骤流程示意图;

图7是本申请实施例提供的基于二值神经网络模型的图像分类方法的流程示意图;

图8是本申请实施例提供的基于二值神经网络模型的图像分类方法的流程示意图;

图9是本申请实施例提供的基于二值神经网络模型的图像分类方法的流程示意图;

图10是本申请实施例提供的基于二值神经网络模型的图像分类装置的结构示意图;

图11是本申请实施例提供的模型量化装置的结构示意图;

图12是本申请实施例提供的电子设备的硬件结构示意图。

具体实施方式

为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本申请,并不用于限定本申请。

需要说明的是,除非另有定义,本文所使用的所有的技术和科学术语与属于本申请的技术领域的技术人员通常理解的含义相同。本文中所使用的术语只是为了描述本申请实施例的目的,不是旨在限制本申请。

首先,对本申请中涉及的若干名词进行解析:

人工智能(artificial intelligence,AI):是研究、开发用于模拟、延伸和扩展人的智能的理论、方法、技术及应用系统的一门新的技术科学;人工智能是计算机科学的一个分支,人工智能企图了解智能的实质,并生产出一种新的能以人类智能相似的方式做出反应的智能机器,该领域的研究包括机器人、语言识别、图像识别、自然语言处理和专家系统等。人工智能可以对人的意识、思维的信息过程的模拟。人工智能还是利用数字计算机或者数字计算机控制的机器模拟、延伸和扩展人的智能,感知环境、获取知识并使用知识获得最佳结果的理论、方法、技术及应用系统。

图像分类(Image Classification)是对一张给定的图像进行自动分类的过程。图像分类是人工智能领域中的一个重要应用,它将图像分类为不同的类别,例如车辆、动物、植物、衣服、食品等。在图像分类中,计算机通常使用深度学习算法,例如卷积神经网络(Convolutional Neural Network, CNN)等来实现自动分类。CNN 通过多层卷积和池化操作中提取图像的特征,并将这些特征输入到全连接层中进行分类。

模型量化(Model Quantization)是一种针对深度学习模型的优化技术,旨在减小模型的存储和计算代价,使其能够更快地在嵌入式设备和移动设备上执行。深度学习模型通常使用浮点数进行计算和模型参数的储存,但是这些浮点数在计算机中需要占用大量的存储空间和计算资源,对于嵌入式设备和移动设备而言过于昂贵。模型量化通过对浮点数进行离散化或压缩等技术,将模型参数转换为精度更小的数据,从而极大地减小模型的存储和计算代价。

随着机器学习的快速发展,神经网络模型的规模也越来越大,正在经历从深度学习进一步向大模型发展的时期。在图像分类领域中,往往会将用于图像分类的神经网络模型部署到嵌入式设备或移动设备中,由于嵌入式设备或移动设备的存储空间以及计算资源有限,利用全精度的神经网络模型难以在嵌入式设备或移动设备上进行高效的图像分类推理。因此,如何在嵌入式设备或移动设备等微型设备上实现准确高效的图像分类成为亟待解决的技术问题。

基于此,本申请实施例提供了一种基于二值神经网络模型的图像分类方法、装置、电子设备及计算机可读存储介质,能够在嵌入式设备或移动设备等微型设备上实现准确高效的图像分类。

首先描述本申请实施例中的基于二值神经网络模型的图像分类方法。

本申请实施例可以基于人工智能技术对相关的数据进行获取和处理。其中,人工智能(Artificial Intelligence,AI)是利用数字计算机或者数字计算机控制的机器模拟、延伸和扩展人的智能,感知环境、获取知识并使用知识获得最佳结果的理论、方法、技术及应用系统。

人工智能基础技术一般包括如传感器、专用人工智能芯片、云计算、分布式存储、大数据处理技术、操作/交互系统、机电一体化等技术。人工智能软件技术主要包括计算机视觉技术、机器人技术、生物识别技术、语音处理技术、自然语言处理技术以及机器学习/深度学习等几大方向。

本申请实施例提供的基于二值神经网络模型的图像分类方法可应用于终端中,也可应用于服务器端中,还可以是运行于终端或服务器端中的软件。在一些实施例中,终端可以是智能手机、平板电脑、笔记本电脑、台式计算机等;服务器端可以配置成独立的物理服务器,也可以配置成多个物理服务器构成的服务器集群或者分布式系统,还可以配置成提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、CDN以及大数据和人工智能平台等基础云计算服务的云服务器;软件可以是实现基于二值神经网络模型的图像分类方法的应用等,但并不局限于以上形式。

本申请可用于众多通用或专用的计算机系统环境或配置中。例如:个人计算机、服务器计算机、手持设备或便携式设备、平板型设备、多处理器系统、基于微处理器的系统、置顶盒、可编程的消费电子设备、网络PC、小型计算机、大型计算机、包括以上任何系统或设备的分布式计算环境等等。本申请可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序模块。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等等。也可以在分布式计算环境中实践本申请,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行任务。在分布式计算环境中,程序模块可以位于包括存储设备在内的本地和远程计算机存储介质中。

请参见图1,图1示出了本申请实施例提供的基于二值神经网络模型的图像分类方法的流程示意图,如图1所示,该基于二值神经网络模型的图像分类方法包括但不限于步骤S110至步骤S120。

步骤S110,获取待分类图像。

步骤S120,将所述待分类图像输入至预设的二值神经网络模型,以通过所述二值神经网络模型得到所述待分类图像对应的分类预测结果。

请参见图2,图2示出了本申请实施例提供的基于二值神经网络模型的图像分类方法的流程示意图,如图2所示,所述二值神经网络模型通过步骤S210至步骤S240离线量化得到。

应能理解,量化是指将神经网络模型的模型参数从浮点数量化为低比特整数,例如将神经网络模型的模型参数从三十二位浮点数量化为八比特整数,如此可以使整个神经网络模型压缩四倍,而量化又分为在线量化和离线量化,其中,在线量化指的是在模型训练过程中对模型进行量化,而离线量化是指在模型训练完成后对模型进行量化,即提前固定量化参数将模型压缩成量化模型,供模型部署使用。

请参见图9,图9示出了本申请实施例提供的基于二值神经网络模型的图像分类方法,如图9所示,可以理解的是,本申请实施例在对神经网络模型进行离线量化过程中,首先基于预训练好的全精度神经网络模型对与全精度神经网络模型的网络结构相同的第一神经网络模型进行参数初始化,得到第二神经网络模型,之后将全精度神经网络模型作为教师网络,对作为学生网络的第二神经网络模型进行知识蒸馏,以更新第二神经网络模型中各层网络的权重参数,得到第三神经网络模型,最后将第三神经网络模型进行二值量化,也就是将第三神经网络模型的权重参数固定在1比特,得到二值神经网络模型,从而完成对预训练好的全精度神经网络模型的离线量化。

步骤S210,基于预训练好的全精度神经网络模型对预设的第一神经网络模型进行参数初始化,得到第二神经网络模型,其中,所述全精度神经网络模型和所述第一神经网络模型的网络结构相同。

可以理解的是,在将预训练好的全精度神经网络模型和预设的第一神经网络模型作为师生组合进行知识蒸馏之前,根据全精度神经网络模型对相同网络结构的第一神经网络模型进行参数初始化,得到第二神经网络模型,在保留模型更新能力以及避免模型过拟合的情况下,拉近第二神经网络模型与作为教师网络的全精度神经网络模型之间的参数分布差异,有利于在知识蒸馏中将全精度神经网络模型的知识迁移至第二神经网络模型,提高知识蒸馏的训练效率以及模型精度。

在一些实施例中,参见图4,图4示出了图2中步骤S210的子步骤流程示意图,如图4所示,所述基于预训练好的全精度神经网络模型对预设的第一神经网络模型进行参数初始化,得到第二神经网络模型,包括但不限于步骤S410至步骤S430。

步骤S410,获取预训练好的全精度神经网络模型中各层网络的权重参数。

步骤S420,从所述全精度神经网络模型中各层网络对应的权重参数中确定最大参数值和最小参数值,根据所述最大参数值和所述最小参数值确定各层网络对应的权重参数零点值和权重参数幅度值。

其中,所述权重参数零点值为所述最大参数值和所述最小参数值之间的平均值,所述权重参数幅度值为所述最大参数值和所述最小参数值之间的绝对差值的一半。

步骤S430,基于所述权重参数零点值和所述权重参数幅度值对预设的第一神经网络模型中的各层网络进行参数初始化,得到第二神经网络模型。

所述第二神经网络模型的权重参数通过以下公式表示:

其中,所述

应能理解,基于全精度神经网络模型对第一神经网络模型进行参数初始化,由于第一神经网络模型和全精度神经网络模型的网络结构一致,因此针对全精度神经网络模型的各层网络,可以先从全精度神经网络模型中各层网络对应的权重参数中确定最大参数值和最小参数值,之后再根据最大参数值和最小参数值确定各层网络对应的权重参数零点值和权重参数幅度值,其中,权重参数零点值为最大参数值和最小参数值之间的平均值,而权重参数幅度值为最大参数值和最小参数值之间的绝对差值的一半,例如,全精度神经网络模型第i层网络对应的权重参数最大值和权重参数最小值分别为a和b,则对应的权重参数零点值

可以理解的是,以平移参数方式完成对第一神经网络模型的参数初始化,能够进一步拉近第二神经网络模型与作为教师网络的全精度神经网络模型之间的参数分布差异,使得全精度神经网络模型的知识更容易迁移至第二神经网络模型,进一步提高知识蒸馏的训练效率以及模型精度。

在一个实施例中,参见图5,图5示出了图2中步骤S210的子步骤流程示意图,如图5所示,所述基于预训练好的全精度神经网络模型对预设的第一神经网络模型进行参数初始化,得到第二神经网络模型,包括但不限于步骤S510至步骤S530。

步骤S510,获取预训练好的全精度神经网络模型中各层网络的权重参数。

步骤S520,根据所述全精度神经网络模型中各层网络对应的权重参数确定各层网络对应的权重参数平均值和权重参数标准差。

步骤S530,根据所述权重参数平均值和所述权重参数标准差对预设的第一神经网络模型中的各层网络进行参数初始化,得到第二神经网络模型。

所述第二神经网络模型的权重参数通过以下公式表示:

其中,所述

应能理解,基于全精度神经网络模型对第一神经网络模型进行参数初始化,由于第一神经网络模型和全精度神经网络模型的网络结构一致,因此针对全精度神经网络模型的各层网络,可以先确定各层网络对应的权重参数平均值和权重参数标准差,之后根据全精度神经网络模型各层网络的权重参数平均值、权重参数标准差以及公式

在一个具体实施例中,可以将全精度神经网络模型的权重参数输入归一化网络层,通过归一化网络层将全精度神经网络模型的权重参数转换成服从正态分布的参数,利用归一化后的参数完成对第一神经网络模型的参数初始化。

可以理解的是,以归一化方式完成对第一神经网络模型的参数初始化,能够进一步拉近第二神经网络模型与作为教师网络的全精度神经网络模型之间的参数分布差异,使得全精度神经网络模型的知识更容易迁移至第二神经网络模型,进一步提高知识蒸馏的训练效率以及模型精度。

步骤S220,从完整数据集的每个样本类别中抽取至少一个样本数据作为校准样本,得到多个所述校准样本以及所述校准样本对应的标签值。

可以理解的是,由于全精度神经网络模型是预训练好的,因此在将全精度神经网络和第一神经网络模型为师生组合进行知识蒸馏时,相较于在线量化,不需要完整数据集,可以仅从完整数据集的每个样本类别中抽取至少一个样本数据得到多个校准样本,以少量的校准样本进行知识蒸馏即可实现模型量化。

步骤S230,以所述全精度神经网络模型为教师模型,基于所述校准样本以及所述校准样本对应的标签值对所述第二神经网络模型所包括的各层网络从前往后逐层进行知识蒸馏,以更新所述第二神经网络模型的权重参数,得到第三神经网络模型。

可以理解的是,由于全精度神经网络模型与第二神经网络模型的网络结构一致,因此在知识蒸馏过程中,可以根据全精度神经网络模型各层网络的输出,指导作为学生网络的第二神经网络模型各层网络的训练,完成第二神经网络模型所包括的各层网络从前往后的逐层知识蒸馏,能够在保证模型性能的情况下仅使用少量的校准样本完成神经网络模型的低比特量化。

在一个实施例中,参见图3,图3示出了本申请实施例提供的基于二值神经网络模型的图像分类方法的流程示意图,如图3所示,在更新所述第二神经网络模型的权重参数的过程中,所述方法包括步骤S320。

步骤S320,对于所述第二神经网络模型中的各层网络,当模型梯度的趋势为使权重参数的绝对值变大,基于第一预设比例更新所述第二神经网络模型的权重参数,所述第一预设比例的取值范围为0到1。

所述第二神经网络模型更新后的权重参数通过以下公式表示:

其中,所述

可以理解的是,针对二值化网络,量化过程中相对于将大于零的权重参数量化为+1,而小于零的权重参数量化为-1(或0),权重参数的绝对值不再重要,过大的绝对值反而不利于模型训练,会导致“死权重”的产生。因此,本申请实施例在更新第二神经网络模型的权重参数的过程中,当模型梯度的趋势为使权重参数的绝对值变大时,通过第一预设比例降低模型梯度的比重。

应能理解,神经网络一般采用反向传播算法对权重参数进行更新,在反向传播的过程中会将误差逐层传播并更新权重参数,针对第二神经网络模型,其权重更新公式可以表示为:

在一个实施例中,如图3所示,所述方法还包括步骤S310。

步骤S310,对于所述第二神经网络模型中的各层网络,当更新前的权重参数与模型梯度的数值符号一致,确定所述模型梯度的趋势为使权重参数的绝对值变大。

可以理解的是,本申请实施例通过根据更新前的权重参数和模型梯度的数值符号,确定梯模型梯度的趋势是否为使权重参数的绝对值变大,具体的,根据

还需要说明的是,对于所述第二神经网络模型中的各层网络,当更新前的权重参数与模型梯度的数值符号不一致时,则可以通过直通估计器更新第二神经网络模型的权重参数。

在一个实施例中,参见图6,图6示出了本申请实施例提供的基于二值神经网络模型的图像分类方法的流程示意图,如图6所示,在所述知识蒸馏的过程中,所述方法包括但不限于步骤S610至步骤S630。

步骤S610,将所述校准样本输入至所述全精度神经网络模型,以通过所述校准样本在所述全精度神经网络模型所包括的各层网络中进行前向计算,得到所述全精度神经网络模型中各层网络对应的第一输出数据。

步骤S620,将所述校准样本输入至作为学生模型的所述第二神经网络模型,以通过所述校准样本在所述第二神经网络模型所包括的各层网络中进行前向计算,得到所述第二神经网络模型中各层网络对应的第二输出数据。

步骤S630,基于所述第一输出数据、所述第二输出数据以及所述校准样本对应的标签值,对所述第二神经网络模型所包括的各层网络从前往后逐层进行知识蒸馏,以更新所述第二神经网络模型的权重参数,得到第三神经网络模型。

可以理解的是,在将全精度神经网络模型和第二神经网络模型作为师生组合进行知识蒸馏的过程中,如图9所示,将校准样本分别输入至全精度神经网络模型和第二神经网络模型,通过全精度神经网络模型和第二神经网络模型所包括的各层网络中进行前向计算,得到全精度神经网络模型中各层网络对应的第一输出数据和第二神经网络模型中各层网络对应的第二输出数据,再从前往后依次取出全精度神经网络模型和第二神经网络模型的每一层网络及其对应的输出,对第二神经网络模型所包括的各层网络逐层进行知识蒸馏,即根据全精度神经网络模型各层网络的输出指导第二神经网络模型中对应网络的训练,更新第二神经网络模型的权重参数,能够在保证模型性能的情况下仅使用少量的校准样本完成神经网络模型的低比特量化。

在一个实施例中,参见图7,图7示出了本申请实施例提供的基于二值神经网络模型的图像分类方法的流程示意图,如图7所示,所述基于所述第一输出数据、所述第二输出数据以及所述校准样本对应的标签值,对所述第二神经网络模型所包括的各层网络从前往后逐层进行知识蒸馏,包括但不限于步骤S710至步骤S720。

步骤S710,对于所述第二神经网络模型的中间网络层,根据所述第一输出数据和所述第二输出数据确定第一损失值。

步骤S720,在固定所述第二神经网络模型中除当前网络之外的各层网络的情况下,根据所述第一损失值更新当前网络对应的权重参数。

可以理解的是,在对第二神经网络模型所包括的各层网络从前往后逐层进行知识蒸馏的过程中,对于第二神经网络模型的中间网络层,根据第一输出数据和第二输出数据确定第一损失值,之后在固定第二神经网络模型中除当前网络之外的各层网络的情况下,根据第一损失值更新当前网络对应的权重参数。示例性的,对于第二神经网络模型中的第i层网络,1<i<n,n为第二神经网络模型的总网络层数,根据全精度神经网络模型中第i层网络对应的第一输出数据

在一个实施例中,参见图8,图8示出了本申请实施例提供的基于二值神经网络模型的图像分类方法的流程示意图,如图8所示,所述基于所述第一输出数据、所述第二输出数据以及所述校准样本对应的标签值,对所述第二神经网络模型所包括的各层网络从前往后逐层进行知识蒸馏,包括但不限于步骤S810至步骤S820。

步骤S810,对于所述第二神经网络模型的最后一层网络,根据所述第一输出数据、所述第二输出数据以及所述校准样本对应的标签值确定第二损失值。

步骤S820,在固定所述第二神经网络模型中除最后一层网络之外的各层网络的情况下,根据所述第二损失值更新所述第二神经网络模型的最后一层网络层的权重参数。

可以理解的是,在对第二神经网络模型所包括的各层网络从前往后逐层进行知识蒸馏的过程中,对于第二神经网络模型的最后一层网络,根据第一输出数据、第二输出数据以及校准样本对应的标签值确定第二损失值,之后在固定第二神经网络模型中除最后一层网络之外的各层网络的情况下,根据第二损失值更新最后一层网络对应的权重参数,即通过全精度神经网络模型的输出以及真实标签联合指导学生网络的训练。示例性的,对于第二神经网络模型中的最后一层网络n,根据全精度神经网络模型中最后一层网络对应的第一输出数据

步骤S240,对所述第三神经网络模型进行二值量化,得到所述二值神经网络模型。

应能理解,对第三神经网络模型进行二值量化,即将第三神经网络模型的权重参数量化为1比特整数得到压缩后的神经网络模型,即二值神经网络模型。利用量化全精度神经网络模型后得到的二值神经网络模型进行图像分类,能够在诸如嵌入式设备或移动设备等存储空间和计算资源有限的微型设备上实现准确高效的图像分类。

在一个具体实施例中,可以通过

其中,

本申请提出一种基于二值神经网络模型的图像分类方法,该方法通过获取待分类图像,并将待分类图像输入至预设的二值神经网络模型,以通过二值神经网络模型得到待分类图像对应的分类预测结果,其中,该二值神经网络模型通过以下步骤量化得到:基于预训练好的全精度神经网络模与全精度神经网络模型的网络结构相同的第一神经网络模型进行参数初始化,得到第二神经网络模型,之后从完整数据集的每个样本类别中抽取至少一个样本数据作为校准样本,得到多个校准样本以及校准样本对应的标签值,再以全精度神经网络模型为教师模型,基于校准样本以及校准样本对应的标签值对第二神经网络模型所包括的各层网络从前往后逐层进行知识蒸馏,以更新第二神经网络模型的权重参数得到第三神经网络模型,最后对第三神经网络模型进行二值量化最终得到二值神经网络模型。本申请实施例利用全精度神经网络模型对属于相同网络结构的第一神经网络模型进行逐层知识蒸馏得到的第二神经网络模型,能够使得第二神经网络模型充分学习到全精度神经网络模型的知识,之后再将第二神经网络模型的权重参数固定为1比特得到二值神经网络模型,能够极大程度地减少模型推理过程中占用的存储空间以及计算资源,利用该二值神经网络模型能够在诸如嵌入式设备或移动设备等存储空间和计算资源有限的微型设备上实现准确高效的图像分类。

请参见图10,本申请实施例还提供了一种基于二值神经网络模型的图像分类装置100,该基于二值神经网络模型的图像分类装置100包括:

第一获取模块110,用于获取待分类图像;

第一输入模块120,用于将所述待分类图像输入至预设的二值神经网络模型,以通过所述二值神经网络模型得到所述待分类图像对应的分类预测结果;

请参见图11,图11示出了本申请实施例提供的模型量化装置200的结构示意图,所述二值神经网络模型通过模型量化装置200量化得到,如图11所示,所述模型量化装置200包括:

参数初始化模块210,用于基于预训练好的全精度神经网络模型对预设的第一神经网络模型进行参数初始化,得到第二神经网络模型,其中,所述全精度神经网络模型和所述第一神经网络模型的网络结构相同。

样本采集模块220,用于从完整数据集的每个样本类别中抽取至少一个样本数据作为校准样本,得到多个所述校准样本以及所述校准样本对应的标签值。

知识蒸馏模块230,用于以所述全精度神经网络模型为教师模型,基于所述校准样本以及所述校准样本对应的标签值对所述第二神经网络模型所包括的各层网络从前往后逐层进行知识蒸馏,以更新所述第二神经网络模型的权重参数,得到第三神经网络模型。

二值量化模块240,用于对所述第三神经网络模型进行二值量化,得到所述二值神经网络模型。

在一些实施例中,模型量化装置还包括:

梯度缩放模块,用于在更新所述第二神经网络模型的权重参数的过程中,对于所述第二神经网络模型中的各层网络,当模型梯度的趋势为使权重参数的绝对值变大,基于第一预设比例更新所述第二神经网络模型的权重参数,所述第一预设比例的取值范围为0到1;

所述第二神经网络模型更新后的权重参数通过以下公式表示:

其中,所述

需要说明的是,上述装置的模块之间的信息交互、执行过程等内容,由于与本申请方法实施例基于同一构思,其具体功能及带来的技术效果,具体可参见方法实施例部分,此处不再赘述。

请参见图12,图12示出本申请实施例提供的一种电子设备的硬件结构,电子设备包括:

处理器310,可以采用通用的CPU(Central Processing Unit,中央处理器)、微处理器、应用专用集合成电路(Application Specific Integrated Circuit,ASIC)、或者一个或多个集合成电路等方式实现,用于执行相关计算机程序,以实现本申请实施例所提供的技术方案;

存储器320,可以采用只读存储器(Read Only Memory,ROM)、静态存储设备、动态存储设备或者随机存取存储器(Random Access Memory,RAM)等形式实现。存储器320可以存储操作系统和其他应用程序,在通过软件或者固件来实现本说明书实施例所提供的技术方案时,相关的程序代码保存在存储器320中,并由处理器310来调用执行本申请实施例的基于神经网络的图像识别方法;

输入/输出接口330,用于实现信息输入及输出;

通信接口340,用于实现本设备与其他设备的通信交互,可以通过有线方式(例如USB、网线等)实现通信,也可以通过无线方式(例如移动网络、WIFI、蓝牙等)实现通信;和总线350,在设备的每个组件(例如处理器310、存储器320、输入/输出接口330和通信接口340)之间传输信息;其中处理器310、存储器320、输入/输出接口330和通信接口340通过总线350实现彼此之间在设备内部的通信连接。

本申请实施例还提供了一种存储介质,存储介质为计算机可读存储介质,用于计算机可读存储,存储介质存储有一个或者多个计算机程序,一个或者多个计算机程序可被一个或者多个处理器执行,以实现上述基于二值神经网络模型的图像分类方法。

存储器作为一种计算机可读存储介质,可用于存储软件程序以及计算机可执行程序。此外,存储器可以包括高速随机存取存储器,还可以包括非暂态存储器,例如至少一个磁盘存储器件、闪存器件、或其他非暂态固态存储器件。在一些实施方式中,存储器可选包括相对于处理器远程设置的存储器,这些远程存储器可以通过网络连接至该处理器。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。

本申请实施例描述的实施例是为了更加清楚的说明本申请实施例的技术方案,并不构成对于本申请实施例提供的技术方案的限定,本领域技术人员可知,随着技术的演变和新应用场景的出现,本申请实施例提供的技术方案对于类似的技术问题,同样适用。

以上所描述的装置实施例仅仅是示意性的,其中作为分离部件说明的单元可以是或者也可以不是物理上分开的,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。

本领域普通技术人员可以理解,上文中所公开方法中的全部或某些步骤、系统、设备中的功能模块/单元可以被实施为软件、固件、硬件及其适当的组合。

在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述或记载的部分,可以参见其它实施例的相关描述。

本申请的说明书及上述附图中的术语“第一”、“第二”、“第三”、“第四”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本申请的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。

应当理解,在本申请中,“至少一个(项)”是指一个或者多个,“多个”是指两个或两个以上。“和/或”,用于描述关联对象的关联关系,表示可以存在三种关系,例如,“A和/或B”可以表示:只存在A,只存在B以及同时存在A和B三种情况,其中A,B可以是单数或者复数。字符“/”一般表示前后关联对象是一种“或”的关系。“以下至少一项(个)”或其类似表达,是指这些项中的任意组合,包括单项(个)或复数项(个)的任意组合。例如,a,b或c中的至少一项(个),可以表示:a,b,c,“a和b”,“a和c”,“b和c”,或“a和b和c”,其中a,b,c可以是单个,也可以是多个。

在本申请所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,上述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集合成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。

上述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。

另外,在本申请每个实施例中的各功能单元可以集合成在一个处理单元中,也可以是每个单元单独物理存在,也可以两个或两个以上单元集合成在一个单元中。上述集合成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。

集合成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括多指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请每个实施例的方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-Only Memory,简称ROM)、随机存取存储器(Random Access Memory,简称RAM)、磁碟或者光盘等各种可以存储程序的介质。

以上参照附图说明了本申请实施例的优选实施例,并非因此局限本申请实施例的权利范围。本领域技术人员不脱离本申请实施例的范围和实质内所作的任何修改、等同替换和改进,均应在本申请实施例的权利范围之内。

技术分类

06120116214031