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

压缩模型的获取方法、装置和存储介质及电子装置

文献发布时间:2023-06-19 10:48:02


压缩模型的获取方法、装置和存储介质及电子装置

技术领域

本发明涉及计算机领域,具体而言,涉及一种压缩模型的获取方法、装置和存储介质及电子装置。

背景技术

卷积神经网络模型由于其参数量巨大,在推理过程中占用内存和CPU资源很高,导致部署在端侧时,无法满足现实场景的需求。比如:多目标卷积神经网络检测模型参数量以亿为计数单位,模型大小通常超过100MB,但是对于低端型号手机或冰箱开发板等(内存<2GB),一旦开始调用多目标检测app,会占用系统资源,使得端侧发生卡顿或崩溃现象。因此端侧一般要求压缩后的模型至少少于原模型的1/3,这意味着端侧部署的技术中最大的难点在于保证卷积神经网络模型精度损失很小的情况下,尽可能大的对原始模型进行压缩。

现在对于端侧模型压缩最主要的方法是量化,即将卷积神经网络float32模型转化成int8模型,其中

float32参数值=拉伸系数*int8参数值+偏置值

这里的偏置值就是int8相比于float32的精度损失,也就是用int8通过拉伸系数来近似float32的原始参数值。

但量化模型相比于原始模型来说,主要是减小了参数储存量(int8需要8位存储,而float32需要32位存储),但是由于对深度网络结构没有做任何改变,使得从计算量上来说没有本质的提升,换言之,现有技术中的模型压缩方法,在保证一定的压缩力度的前提下,无法保证模型的使用精度的问题。

针对上述的问题,目前尚未提出有效的解决方案。

发明内容

本发明实施例提供了一种压缩模型的获取方法、装置和存储介质及电子装置,以至少解决获取的压缩模型的识别精度较低的技术问题。

根据本发明实施例的一个方面,提供了一种压缩模型的获取方法,包括:获取训练好的第一识别网络模型的第一参数,其中,上述第一识别网络模型用于识别出输入的图像中包含的目标元素,上述第一参数包括上述第一识别网络模型的通道数;按照预设条件对上述第一参数进行压缩,以得到第二参数;基于上述第二参数构建初始状态的第二识别网络模型,其中,上述第二识别网络模型与上述第一识别网络模型的网络结构相同;利用N个样本图像对上述初始状态的第二识别网络模型进行训练,其中,N为大于等于1的整数;在输出的训练结果达到收敛条件的情况下,确定得到训练好的上述第二识别网络模型。

根据本发明实施例的另一方面,还提供了一种压缩模型的获取装置,包括:第一获取单元,用于获取训练好的第一识别网络模型的第一参数,其中,上述第一识别网络模型用于识别出输入的图像中包含的目标元素,上述第一参数包括上述第一识别网络模型的通道数;压缩单元,用于按照预设条件对上述第一参数进行压缩,以得到第二参数;构建单元,用于基于上述第二参数构建初始状态的第二识别网络模型,其中,上述第二识别网络模型与上述第一识别网络模型的网络结构相同;训练单元,用于利用N个样本图像对上述初始状态的第二识别网络模型进行训练,其中,N为大于等于1的整数;确定单元,用于在输出的训练结果达到收敛条件的情况下,确定得到训练好的上述第二识别网络模型。

根据本发明实施例的又一方面,还提供了一种计算机可读的存储介质,该计算机可读的存储介质中存储有计算机程序,其中,该计算机程序被设置为运行时执行上述压缩模型的获取方法。

根据本发明实施例的又一方面,还提供了一种电子装置,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其中,上述处理器通过计算机程序执行上述的压缩模型的获取方法。

在本发明实施例中,获取训练好的第一识别网络模型的第一参数,其中,上述第一识别网络模型用于识别出输入的图像中包含的目标元素,上述第一参数包括上述第一识别网络模型的通道数;按照预设条件对上述第一参数进行压缩,以得到第二参数;基于上述第二参数构建初始状态的第二识别网络模型,其中,上述第二识别网络模型与上述第一识别网络模型的网络结构相同;利用N个样本图像对上述初始状态的第二识别网络模型进行训练,其中,N为大于等于1的整数;在输出的训练结果达到收敛条件的情况下,确定得到训练好的上述第二识别网络模型,利用压缩第一神经网络模型中通道数的方式获得的压缩后的识别网络模型,进而达到了在减少压缩模型的资源占用的情况下,还能在一定程度上保证压缩模型的识别精度的目的,从而提高了压缩模型的识别精度的效果,进而解决了获取的压缩模型的识别精度较低的技术问题。

附图说明

此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:

图1是根据本发明实施例的一种可选的压缩模型的获取方法的流程图的示意图;

图2是根据本发明实施例的一种可选的压缩模型的获取方法的示意图;

图3是根据本发明实施例的另一种可选的压缩模型的获取方法的示意图;

图4是根据本发明实施例的另一种可选的压缩模型的获取方法的示意图;

图5是根据本发明实施例的另一种可选的压缩模型的获取方法的示意图;

图6是根据本发明实施例的一种可选的压缩模型的获取装置的示意图;

图7是根据本发明实施例的另一种可选的压缩模型的获取装置的示意图;

图8是根据本发明实施例的另一种可选的压缩模型的获取装置的示意图;

图9是根据本发明实施例的另一种可选的压缩模型的获取装置的示意图;

图10是根据本发明实施例的一种可选的电子装置的结构示意图。

具体实施方式

为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。

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

可选地,作为一种可选的实施方式,如图1所示,压缩模型的获取方法包括:

S102,获取训练好的第一识别网络模型的第一参数,其中,第一识别网络模型用于识别出输入的图像中包含的目标元素,第一参数包括第一识别网络模型的通道数;

S104,按照预设条件对第一参数进行压缩,以得到第二参数;

S106,基于第二参数构建初始状态的第二识别网络模型,其中,第二识别网络模型与第一识别网络模型的网络结构相同;

S108,利用N个样本图像对初始状态的第二识别网络模型进行训练,其中,N为大于等于1的整数;

S110,在输出的训练结果达到收敛条件的情况下,确定得到训练好的第二识别网络模型。

可选的,压缩模型的获取方法可以但不限应用在压缩卷积神经网络模型的场景下,其中,卷积神经网络模型可以但不限于为应用在识别图像中是否包括目标元素,例如识别图像中是否包括目标车辆等。

可选的,卷积神经网络可以但不限于为一类包含卷积计算且具有深度结果的前馈神经网络,可以但不限于是深度学习的代表算法之一,具有表征学习的能力,能够按其阶层结构对输入信息进行平移不变分类。卷积神经网络的参数可以但不限于包括固有参数和变化参数,其中,固有参数可以但不限于包括通道数、过滤器数、神经元数等,变化参数可以但不限于包括可学习的权重值,例如滤波器的权重值等,卷积神经网络的网络结构可以但不限用于表示卷积神经网络中各个层的数量与组合方式,例如第一层包括两个卷积层以及一个池化层,第二层包括三个卷积层一个池化层,卷积层设置有sigmoid、Tanh、ReLU等函数,池化层设置有max pooling或mean pooling等函数,全连接层设置有sigmoid、Tanh、ReLU等函数,最后一层设置有softmax函数、softmasx loss函数或corss entropy函数等。

需要说明的是,获取训练好的第一识别网络模型的第一参数,其中,第一识别网络模型用于识别出输入的图像中包含的目标元素,第一参数包括第一识别网络模型的通道数;按照预设条件对第一参数进行压缩,以得到第二参数;基于第二参数构建初始状态的第二识别网络模型,其中,第二识别网络模型与第一识别网络模型的网络结构相同;利用N个样本图像对初始状态的第二识别网络模型进行训练,其中,N为大于等于1的整数;在输出的训练结果达到收敛条件的情况下,确定得到训练好的第二识别网络模型。

可选的,在本实施例中,第一识别网络模型可以但不限于例如图2所示的识别网络模型202,其中,识别网络模型202的识别步骤如下:

训练好的输入至识别网络模型202的图像,经过卷积层、池化层、全连接层的计算与操作,最终由识别网络模型202的输出层输出识别结果,其中,识别结果用于表示上述输入的图像中包含目标元素或不包含目标元素,可选的,在本实施例中,目标元素可以但不限于为车辆元素。

可选的,在本实施例中,继续以图2所示场景为例,通道数可以但不限用于计算识别网络模型202中各个层输出的特征向量,例如第一个卷积层输出的特征向量为“224×224×64”,则上述特征向量中的“64”可以但不限于为上述第一个卷积层的通道数,再例如,全连接层输出的特征向量为“1×1×4098”,则上述特征向量中的“4098”可以但不限于为上述全连接层的通道数(神经元数);

再者,还是以第一个卷积层输出的特征向量为“224×224×64”为例说明,上述特征向量可以但不限于表示为与“224×224×64”对应的“长度×宽度×通道数”,则缩小通道数,可以但不限于直接影响特征向量的输出值,但对特征向量中的“长度×宽度”并无影响,进而既通过减少通道数达到了减少识别网络模型的资源占用空间的目的,又能减少因压缩模型而造成的对识别网络模型的图像识别精度的影响的效果。

进一步举例说明,可选的例如以图2所示场景为例,继续如图3所示,假设图3中的识别网络模型302为,应用上述压缩模型的获取方法,以对识别网络模型202执行压缩操作,进而获取的压缩模型,可以明显看出的是识别网络模型302与识别网络模型202的网络结构(例如卷积层与池化层的数量以及组合方式)一致,且从输出层的输出结果来看,上述二者的输出层输出的特征向量都是“1×1×1000”,可以但不限于表示上述二者所实现的功能一致;

此外,以第一个卷积层输出的特征向量为为例说明,识别网络模型202中第一个卷积层输出的特征向量为“224×224×64”,而识别网络模型302中第一个卷积层输出的特征向量为“224×224×32”,相比较而言,识别网络模型302中第一个卷积层输出的特征向量所表示的特征图尺寸为识别网络模型202的第一个卷积层输出的特征向量识别网络模型202的一半,节省了识别网络模型的资源占用率,具体的,识别网络模型202中第一个卷积层输出的特征向量为“224×224×64”与识别网络模型302中第一个卷积层输出的特征向量为“224×224×32”相比,改变的只是特征向量中用于表示通道数的数值,而用于表示图像尺寸“长度×宽度”的数值并未改变,进而达到了保留压缩前识别网络模型的图像尺寸参数,以提高压缩后的模型的识别精度;

进一步,再以全连接层输出的特征向量为为例说明,识别网络模型202中全连接层输出的特征向量为“1×1×4096”,而识别网络模型302中全连接层输出的特征向量为“1×1×2048”,相比较而言,识别网络模型302中全连接层输出的特征向量所表示的特征神经元数量为识别网络模型202的全连接层输出的特征向量识别网络模型202的一半,节省了识别网络模型的资源占用率。

通过本申请提供的实施例,获取训练好的第一识别网络模型的第一参数,其中,第一识别网络模型用于识别出输入的图像中包含的目标元素,第一参数包括第一识别网络模型的通道数;按照预设条件对第一参数进行压缩,以得到第二参数;基于第二参数构建初始状态的第二识别网络模型,其中,第二识别网络模型与第一识别网络模型的网络结构相同;利用N个样本图像对初始状态的第二识别网络模型进行训练,其中,N为大于等于1的整数;在输出的训练结果达到收敛条件的情况下,确定得到训练好的第二识别网络模型,利用压缩第一神经网络模型中通道数的方式获得的压缩后的识别网络模型,进而达到了在减少压缩模型的资源占用的情况下,还能在一定程度上保证压缩模型的识别精度的目的,从而提高了压缩模型的识别精度的效果。

作为一种可选的方案,获取训练好的第一识别网络模型的第一参数,包括:

获取第一识别网络模型中每个卷积层的卷积核的第一数量,并将第一数量作为所述第一参数。

可选的,卷积核可以但不限于为在图像处理过程中,给定输入图像,输入图像中一个区域中像素加权平均后成为输出图像中的每个对应像素,其中,权值由一个函数定义,上述函数可以但不限于为卷积核,可选的,卷积核可以但不限于为过滤器,换言之,卷积核数可以但不限于为过滤器数,而通道可以但不限于为过滤器的输出结果,换言之,通道数可以但不限于为过滤器的输出结果数量。

需要说明的是,获取第一识别网络模型中每个卷积层的卷积核的第一数量,并将第一数量作为所述第一参数。

进一步举例说明,可选的例如以图2所示场景,继续以图4为例说明,假设图4中的识别网络模型402为,应用上述压缩模型的获取方法,以对识别网络模型202执行压缩操作,进而获取的压缩模型,可以明显看出的是识别网络模型402与识别网络模型202的网络结构(例如卷积层与池化层的数量以及组合方式)一致,且从输出层的输出结果来看,上述二者的输出层输出的特征向量都是“1×1×1000”,可以但不限于表示上述二者所实现的功能一致;

再者,以识别网络模型402以及识别网络模型202的卷积层的输出特征向量来看,区别在于输出的通道数存在明显区别,具体的,例如识别网络模型402第一层卷积层的输出特征向量的通道数为“32”,而识别网络模型202第一层卷积层的输出特征向量的通道数为“64”,再例如识别网络模型402第二层卷积层的输出特征向量的通道数为“64”,而识别网络模型202第二层卷积层的输出特征向量的通道数为“128”。

通过本申请提供的实施例,获取第一识别网络模型中每个卷积层的卷积核的第一数量,并将第一数量作为所述第一参数,达到了压缩粒度更小的卷积核数的目的,实现了细化压缩模型过程中的压缩粒度的效果。

作为一种可选的方案,按照预设条件对第一参数进行压缩,以得到第二参数,包括:

计算第一数量与预设压缩值的乘积值,并将乘积值作为第二识别网络模型中每个卷积层的卷积核的第二数量,预设压缩至大于0小于1。

需要说明的是,计算第一数量与预设压缩值的乘积值,并将乘积值作为第二识别网络模型中每个卷积层的卷积核的第二数量,预设压缩至大于0小于1。可选的,乘积值可以但不限用于表示第一数量与预设压缩值乘积后的数值。

进一步举例说明,可选的例如图4所示,假设预设压缩值为0.5,则将识别网络模型202的第一数量与0.5相乘以实现压缩效果,进而压缩后的识别网络模型402的第二数量即为第一数量与0.5相乘后的乘积值,从输出特征向量的通道数来看,压缩前的识别网络模型202的第一卷积层输出的通道数为“128”,而压缩后的识别网络模型402第一卷积层输出的通道数为上述通道数“128”与0.5相乘后的乘积值,即“64”。

通过本申请提供的实施例,计算第一数量与预设压缩值的乘积值,并将乘积值作为第二识别网络模型中每个卷积层的卷积核的第二数量,预设压缩至大于0小于1,达到了以预设比例缩小核数量的目的,实现了提高压缩模型的获取灵活性的效果。

作为一种可选的方案,在利用多个样本图像对初始状态的第二识别网络模型进行训练之前,包括:

将N个样本图像输入训练好的第一识别网络模型,以获取第一识别网络模型输出的N个特征向量,其中,特征向量用于表示输入的样本图像中包含目标元素的概率,N个特征向量与N个样本图像一一对应。

需要说明的是,将N个样本图像输入训练好的第一识别网络模型,以获取第一识别网络模型输出的N个特征向量,其中,特征向量用于表示输入的样本图像中包含目标元素的概率,N个特征向量与N个样本图像一一对应。

进一步举例说明,可选的例如图2所示,采集一些原始图像作为训练集(例如:原始识别网络模型202用来进行图像的车辆识别,即识别图像中是否包含车辆,那么只需要重新采集一批含有车辆的图片作为训练集即可);

进一步,导入识别网络模型202,对训练集进行识别,那么每张图像可以得到1×1×N的特征向量(例如图2中识别网络模型202输出层输出的1×1×1000的特征向量),将此特征向量作为每张图片的样本标签,其中,上述训练集中的每张图像有具有对应的样本标签,进而还可以但不限于将上述具有对应样本标签的训练集中的多张图像,作为第二识别网络模型的训练样本集。

通过本申请提供的实施例,将N个样本图像输入训练好的第一识别网络模型,以获取第一识别网络模型输出的N个特征向量,其中,特征向量用于表示输入的样本图像中包含目标元素的概率,N个特征向量与N个样本图像一一对应,通过在训练第一识别网络模型的同时,获取样本图像的特征标签,达到了利用特征标签继续训练第二识别网络模型的目的,实现了提高识别网络模型的训练效率的效果。

作为一种可选的方案,利用N个样本图像对初始状态的第二识别网络模型进行训练,包括:

S1,初始化第二识别网络模型的第三参数,其中,第三参数为第二识别网络模型中的权重值;

S2,基于反向传播算法,利用N个特征向量,以及与N个特征向量一一对应N个样本图像,迭代更新第二识别网络模型的第三参数。

可选的,反向传播算法可以但不限于为适用于多层神经元网络的一种学习算法,建立在梯度下降法的基础上,输入输出关系实质上是一种映射关系,一个n输入m输出的神经网络所完成的功能是从n维欧式空间向m维欧式空间中一有限域的连续映射,这一映射具有高度非线性,其信息处理能力来源于简单非线性函数的多次复合,因此具有很强的函数复现能力。

需要说明的是,初始化第二识别网络模型的第三参数,其中,第三参数为第二识别网络模型中的权重值;基于反向传播算法,利用N个特征向量,以及与N个特征向量一一对应N个样本图像,迭代更新第二识别网络模型的第三参数。

进一步举例说明,可选的例如图3所示,利用识别网络模型202输出的特征向量,以获取多张携带有对应的样本标签的图像组成的训练集,并基于反向传播算法,利用上述训练集,迭代更新识别网络模型302得到第三参数,直至识别网络模型302的输出结果达到收敛条件,停止更新,以获得训练好的识别网络模型302。

通过本申请提供的实施例,初始化第二识别网络模型的第三参数,其中,第三参数为第二识别网络模型中的权重值;基于反向传播算法,利用N个特征向量,以及与N个特征向量一一对应N个样本图像,迭代更新第二识别网络模型的第三参数,达到了提高第二识别网络模型的训练结果的输出稳定性,以及降低出现稀疏矩阵概率的目的,实现了提高训练好的第二识别网络模型的识别准确性的效果。

作为一种可选的方案,在确定得到训练好的第二识别网络模型之后,包括:

将目标图像输入至第二识别网络模型,以获得目标特征向量,其中,目标特征向量用于表示所述目标图像中的所述目标元素。

需要说明的是,将目标图像输入至第二识别网络模型,以获得目标特征向量,其中,目标特征向量用于表示所述目标图像中的所述目标元素。

进一步举例说明,可选的例如,训练好的第二识别网络模型与第一识别网络模型的网络结构相同,区别在于模型中各层输出的向量特征的通道数存在比例关系(第二识别网络模型各层输出的向量特征的通道数低于第一识别网络模型各层输出的向量特征的通道数),以及第二识别网络模型中各层权重是基于第一识别网络模型输出的特征向量以及用于训练第一识别网络模型的训练集迭代更新、优化得到的,进而达到了保证第二识别网络模型与第一识别网络模型在功能上的一致性,又保证了第二识别网络模型的资源占用量低于第一识别网络模型,在此基础上,还保证了第二识别网络模型的识别精度。

通过本申请提供的实施例,将目标图像输入至第二识别网络模型,以获得目标特征向量,其中,目标特征向量用于表示所述目标图像中的所述目标元素,在保证第二识别网络模型与第一识别网络模型在功能上的一致性以及第二识别网络模型的资源占用量低于第一识别网络模型的前提下,实现了提高第二识别网络模型的识别精度的效果。

作为一种可选的方案,在确定得到训练好的第二识别网络模型之后,包括:

S1,将目标激活函数设置在神经网络模型的最后一层,其中,目标激活函数用于将特征向量转化为识别结果,识别结果用于指示包含目标元素的图像;

S2,将目标图像输入至第二识别网络模型,以获得目标识别结果,其中,目标识别结果用于指示目标图像中是否包含目标元素。

需要说明的是,将目标激活函数设置在神经网络模型的最后一层,其中,目标激活函数用于将特征向量转化为识别结果,识别结果用于指示包含目标元素的图像;将目标图像输入至第二识别网络模型,以获得目标识别结果,其中,目标识别结果用于指示目标图像中是否包含目标元素。可选的,激活函数可以但不限于为在人工神经网络的神经元上运行的函数,负责将神经元的输入映射到输出端,例如sigmoid、Tanh、ReLU等。

进一步举例说明,可选的例如以图3所示场景为例,继续以图5所示说明,包括图像导入界面502以及结果导出界面504,其中,图像导入界面502以及结果导出界面504可以但不限于显示在端设备上,具体的,图像导入界面502可以但不限用于导入输入文件,其中,输入文件中可以但不限于包括视频流文件或图像文件等,假设为视频文件,则先将导入的视频流文件转换为图片格式,在输入识别网络模型302中,假设为图像文件,则直接将图像文件输入识别网络模型302中;

再者,结果导出界面504可以但不限于获取在图像导入界面502导入的文件,在识别网络模型302的处理后,导出的输出结果,例如文件中的图像中包含目标元素的图像数,或更为详细的图像数据等。

通过本申请提供的实施例,将目标激活函数设置在神经网络模型的最后一层,其中,目标激活函数用于将特征向量转化为识别结果,识别结果用于指示包含目标元素的图像;将目标图像输入至第二识别网络模型,以获得目标识别结果,其中,目标识别结果用于指示目标图像中是否包含目标元素,达到了以与第一识别网络模型具有强关联关系的第二识别网络模型图像识别的场景应用的目的,实现了提高压缩模型的实用性的效果。

需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明并不受所描述的动作顺序的限制,因为依据本发明,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本发明所必须的。

根据本发明实施例的另一个方面,还提供了一种用于实施上述压缩模型的获取方法的压缩模型的获取装置。如图6所示,该装置包括:

第一获取单元602,用于获取训练好的第一识别网络模型的第一参数,其中,第一识别网络模型用于识别出输入的图像中包含的目标元素,第一参数包括第一识别网络模型的通道数;

压缩单元604,用于按照预设条件对第一参数进行压缩,以得到第二参数;

构建单元606,用于基于第二参数构建初始状态的第二识别网络模型,其中,第二识别网络模型与第一识别网络模型的网络结构相同;

训练单元608,用于利用N个样本图像对初始状态的第二识别网络模型进行训练,其中,N为大于等于1的整数;

确定单元610,用于在输出的训练结果达到收敛条件的情况下,确定得到训练好的第二识别网络模型。

可选的,压缩模型的获取装置可以但不限应用在压缩卷积神经网络模型的场景下,其中,卷积神经网络模型可以但不限于为应用在识别图像中是否包括目标元素,例如识别图像中是否包括目标车辆等。

可选的,卷积神经网络可以但不限于为一类包含卷积计算且具有深度结果的前馈神经网络,可以但不限于是深度学习的代表算法之一,具有表征学习的能力,能够按其阶层结构对输入信息进行平移不变分类。卷积神经网络的参数可以但不限于包括固有参数和变化参数,其中,固有参数可以但不限于包括通道数、过滤器数、神经元数等,变化参数可以但不限于包括可学习的权重值,例如滤波器的权重值等,卷积神经网络的网络结构可以但不限用于表示卷积神经网络中各个层的数量与组合方式,例如第一层包括两个卷积层以及一个池化层,第二层包括三个卷积层一个池化层,卷积层设置有sigmoid、Tanh、ReLU等函数,池化层设置有max pooling或mean pooling等函数,全连接层设置有sigmoid、Tanh、ReLU等函数,最后一层设置有softmax函数、softmasx loss函数或corss entropy函数等。

需要说明的是,获取训练好的第一识别网络模型的第一参数,其中,第一识别网络模型用于识别出输入的图像中包含的目标元素,第一参数包括第一识别网络模型的通道数;按照预设条件对第一参数进行压缩,以得到第二参数;基于第二参数构建初始状态的第二识别网络模型,其中,第二识别网络模型与第一识别网络模型的网络结构相同;利用N个样本图像对初始状态的第二识别网络模型进行训练,其中,N为大于等于1的整数;在输出的训练结果达到收敛条件的情况下,确定得到训练好的第二识别网络模型。

可选的,在本实施例中,第一识别网络模型可以但不限于例如图2所示的识别网络模型202,其中,识别网络模型202的识别步骤如下:

训练好的输入至识别网络模型202的图像,经过卷积层、池化层、全连接层的计算与操作,最终由识别网络模型202的输出层输出识别结果,其中,识别结果用于表示上述输入的图像中包含目标元素或不包含目标元素,可选的,在本实施例中,目标元素可以但不限于为车辆元素。

可选的,在本实施例中,继续以图2所示场景为例,通道数可以但不限用于计算识别网络模型202中各个层输出的特征向量,例如第一个卷积层输出的特征向量为“224×224×64”,则上述特征向量中的“64”可以但不限于为上述第一个卷积层的通道数,再例如,全连接层输出的特征向量为“1×1×4098”,则上述特征向量中的“4098”可以但不限于为上述全连接层的通道数(神经元数);

再者,还是以第一个卷积层输出的特征向量为“224×224×64”为例说明,上述特征向量可以但不限于表示为与“224×224×64”对应的“长度×宽度×通道数”,则缩小通道数,可以但不限于直接影响特征向量的输出值,但对特征向量中的“长度×宽度”并无影响,进而既通过减少通道数达到了减少识别网络模型的资源占用空间的目的,又能减少因压缩模型而造成的对识别网络模型的图像识别精度的影响的效果。

进一步举例说明,可选的例如以图2所示场景为例,继续如图3所示,假设图3中的识别网络模型302为,应用上述压缩模型的获取装置,以对识别网络模型202执行压缩操作,进而获取的压缩模型,可以明显看出的是识别网络模型302与识别网络模型202的网络结构(例如卷积层与池化层的数量以及组合方式)一致,且从输出层的输出结果来看,上述二者的输出层输出的特征向量都是“1×1×1000”,可以但不限于表示上述二者所实现的功能一致;

此外,以第一个卷积层输出的特征向量为为例说明,识别网络模型202中第一个卷积层输出的特征向量为“224×224×64”,而识别网络模型302中第一个卷积层输出的特征向量为“224×224×32”,相比较而言,识别网络模型302中第一个卷积层输出的特征向量所表示的特征图尺寸为识别网络模型202的第一个卷积层输出的特征向量识别网络模型202的一半,节省了识别网络模型的资源占用率,具体的,识别网络模型202中第一个卷积层输出的特征向量为“224×224×64”与识别网络模型302中第一个卷积层输出的特征向量为“224×224×32”相比,改变的只是特征向量中用于表示通道数的数值,而用于表示图像尺寸“长度×宽度”的数值并未改变,进而达到了保留压缩前识别网络模型的图像尺寸参数,以提高压缩后的模型的识别精度;

进一步,再以全连接层输出的特征向量为为例说明,识别网络模型202中全连接层输出的特征向量为“1×1×4096”,而识别网络模型302中全连接层输出的特征向量为“1×1×2048”,相比较而言,识别网络模型302中全连接层输出的特征向量所表示的特征神经元数量为识别网络模型202的全连接层输出的特征向量识别网络模型202的一半,节省了识别网络模型的资源占用率。

通过本申请提供的实施例,获取训练好的第一识别网络模型的第一参数,其中,第一识别网络模型用于识别出输入的图像中包含的目标元素,第一参数包括第一识别网络模型的通道数;按照预设条件对第一参数进行压缩,以得到第二参数;基于第二参数构建初始状态的第二识别网络模型,其中,第二识别网络模型与第一识别网络模型的网络结构相同;利用N个样本图像对初始状态的第二识别网络模型进行训练,其中,N为大于等于1的整数;在输出的训练结果达到收敛条件的情况下,确定得到训练好的第二识别网络模型,利用压缩第一神经网络模型中通道数的方式获得的压缩后的识别网络模型,进而达到了在减少压缩模型的资源占用的情况下,还能在一定程度上保证压缩模型的识别精度的目的,从而提高了压缩模型的识别精度的效果。

作为一种可选的方案,如图7所示,第一获取单元602,包括:

获取模块702,用于获取第一识别网络模型中每个卷积层的卷积核的第一数量,并将第一数量作为所述第一参数。

可选的,卷积核可以但不限于为在图像处理过程中,给定输入图像,输入图像中一个区域中像素加权平均后成为输出图像中的每个对应像素,其中,权值由一个函数定义,上述函数可以但不限于为卷积核,可选的,卷积核可以但不限于为过滤器,换言之,卷积核数可以但不限于为过滤器数,而通道可以但不限于为过滤器的输出结果,换言之,通道数可以但不限于为过滤器的输出结果数量。

需要说明的是,获取第一识别网络模型中每个卷积层的卷积核的第一数量,并将第一数量作为所述第一参数。

进一步举例说明,可选的例如以图2所示场景,继续以图4为例说明,假设图4中的识别网络模型402为,应用上述压缩模型的获取方法,以对识别网络模型202执行压缩操作,进而获取的压缩模型,可以明显看出的是识别网络模型402与识别网络模型202的网络结构(例如卷积层与池化层的数量以及组合方式)一致,且从输出层的输出结果来看,上述二者的输出层输出的特征向量都是“1×1×1000”,可以但不限于表示上述二者所实现的功能一致;

再者,以识别网络模型402以及识别网络模型202的卷积层的输出特征向量来看,区别在于输出的通道数存在明显区别,具体的,例如识别网络模型402第一层卷积层的输出特征向量的通道数为“32”,而识别网络模型202第一层卷积层的输出特征向量的通道数为“64”,再例如识别网络模型402第二层卷积层的输出特征向量的通道数为“64”,而识别网络模型202第二层卷积层的输出特征向量的通道数为“128”。

通过本申请提供的实施例,获取第一识别网络模型中每个卷积层的卷积核的第一数量,并将第一数量作为所述第一参数,达到了压缩粒度更小的卷积核数的目的,实现了细化压缩模型过程中的压缩粒度的效果。

作为一种可选的方案,如图8所示,压缩单元604,包括:

计算模块802,用于计算第一数量与预设压缩值的乘积值,并将乘积值作为第二识别网络模型中每个卷积层的卷积核的第二数量,预设压缩至大于0小于1。

需要说明的是,计算第一数量与预设压缩值的乘积值,并将乘积值作为第二识别网络模型中每个卷积层的卷积核的第二数量,预设压缩至大于0小于1。

进一步举例说明,可选的例如图4所示,假设预设压缩值为0.5,则将识别网络模型202的第一数量与0.5相乘以实现压缩效果,进而压缩后的识别网络模型402的第二数量即为第一数量与0.5相乘后的乘积值,从输出特征向量的通道数来看,压缩前的识别网络模型202的第一卷积层输出的通道数为“128”,而压缩后的识别网络模型402第一卷积层输出的通道数为上述通道数“128”与0.5相乘后的乘积值,即“64”。

通过本申请提供的实施例,计算第一数量与预设压缩值的乘积值,并将乘积值作为第二识别网络模型中每个卷积层的卷积核的第二数量,预设压缩至大于0小于1,达到了以预设比例缩小核数量的目的,实现了提高压缩模型的获取灵活性的效果。

作为一种可选的方案,如图9所示,包括:

第二获取单元902,用于在利用多个样本图像对初始状态的第二识别网络模型进行训练之前,将N个样本图像输入训练好的第一识别网络模型,以获取第一识别网络模型输出的N个特征向量,其中,特征向量用于表示输入的样本图像中包含目标元素的概率,N个特征向量与N个样本图像一一对应。

需要说明的是,将N个样本图像输入训练好的第一识别网络模型,以获取第一识别网络模型输出的N个特征向量,其中,特征向量用于表示输入的样本图像中包含目标元素的概率,N个特征向量与N个样本图像一一对应。

进一步举例说明,可选的例如图2所示,采集一些原始图像作为训练集(例如:原始识别网络模型202用来进行图像的车辆识别,即识别图像中是否包含车辆,那么只需要重新采集一批含有车辆的图片作为训练集即可);

进一步,导入识别网络模型202,对训练集进行识别,那么每张图像可以得到1×1×N的特征向量(例如图2中识别网络模型202输出层输出的1×1×1000的特征向量),将此特征向量作为每张图片的样本标签,其中,上述训练集中的每张图像有具有对应的样本标签,进而还可以但不限于将上述具有对应样本标签的训练集中的多张图像,作为第二识别网络模型的训练样本集。

通过本申请提供的实施例,将N个样本图像输入训练好的第一识别网络模型,以获取第一识别网络模型输出的N个特征向量,其中,特征向量用于表示输入的样本图像中包含目标元素的概率,N个特征向量与N个样本图像一一对应,通过在训练第一识别网络模型的同时,获取样本图像的特征标签,达到了利用特征标签继续训练第二识别网络模型的目的,实现了提高识别网络模型的训练效率的效果。

作为一种可选的方案,训练单元,包括:

初始化模块,用于初始化第二识别网络模型的第三参数,其中,第三参数为第二识别网络模型中的权重值;

更新模块,用于基于反向传播算法,利用N个特征向量,以及与N个特征向量一一对应N个样本图像,迭代更新第二识别网络模型的第三参数。

可选的,反向传播算法可以但不限于为适用于多层神经元网络的一种学习算法,建立在梯度下降法的基础上,输入输出关系实质上是一种映射关系,一个n输入m输出的神经网络所完成的功能是从n维欧式空间向m维欧式空间中一有限域的连续映射,这一映射具有高度非线性,其信息处理能力来源于简单非线性函数的多次复合,因此具有很强的函数复现能力。

需要说明的是,初始化第二识别网络模型的第三参数,其中,第三参数为第二识别网络模型中的权重值;基于反向传播算法,利用N个特征向量,以及与N个特征向量一一对应N个样本图像,迭代更新第二识别网络模型的第三参数。

进一步举例说明,可选的例如图3所示,利用识别网络模型202输出的特征向量,以获取多张携带有对应的样本标签的图像组成的训练集,并基于反向传播算法,利用上述训练集,迭代更新识别网络模型302得到第三参数,直至识别网络模型302的输出结果达到收敛条件,停止更新,以获得训练好的识别网络模型302。

通过本申请提供的实施例,初始化第二识别网络模型的第三参数,其中,第三参数为第二识别网络模型中的权重值;基于反向传播算法,利用N个特征向量,以及与N个特征向量一一对应N个样本图像,迭代更新第二识别网络模型的第三参数,达到了提高第二识别网络模型的训练结果的输出稳定性,以及降低出现稀疏矩阵概率的目的,实现了提高训练好的第二识别网络模型的识别准确性的效果。

作为一种可选的方案,包括:

第一输入模块,用于在确定得到训练好的第二识别网络模型之后,将目标图像输入至第二识别网络模型,以获得目标特征向量,其中,目标特征向量用于表示所述目标图像中的所述目标元素。

需要说明的是,将目标图像输入至第二识别网络模型,以获得目标特征向量,其中,目标特征向量用于表示所述目标图像中的所述目标元素。

进一步举例说明,可选的例如,训练好的第二识别网络模型与第一识别网络模型的网络结构相同,区别在于模型中各层输出的向量特征的通道数存在比例关系(第二识别网络模型各层输出的向量特征的通道数低于第一识别网络模型各层输出的向量特征的通道数),以及第二识别网络模型中各层权重是基于第一识别网络模型输出的特征向量以及用于训练第一识别网络模型的训练集迭代更新、优化得到的,进而达到了保证第二识别网络模型与第一识别网络模型在功能上的一致性,又保证了第二识别网络模型的资源占用量低于第一识别网络模型,在此基础上,还保证了第二识别网络模型的识别精度。

通过本申请提供的实施例,将目标图像输入至第二识别网络模型,以获得目标特征向量,其中,目标特征向量用于表示所述目标图像中的所述目标元素,在保证第二识别网络模型与第一识别网络模型在功能上的一致性以及第二识别网络模型的资源占用量低于第一识别网络模型的前提下,实现了提高第二识别网络模型的识别精度的效果。

作为一种可选的方案,包括:

设置模块,用于在确定得到训练好的第二识别网络模型之后,将目标激活函数设置在神经网络模型的最后一层,其中,目标激活函数用于将特征向量转化为识别结果,识别结果用于指示包含目标元素的图像;

第二输入模块,用于在确定得到训练好的第二识别网络模型之后,将目标图像输入至第二识别网络模型,以获得目标识别结果,其中,目标识别结果用于指示目标图像中是否包含目标元素。

需要说明的是,将目标激活函数设置在神经网络模型的最后一层,其中,目标激活函数用于将特征向量转化为识别结果,识别结果用于指示包含目标元素的图像;将目标图像输入至第二识别网络模型,以获得目标识别结果,其中,目标识别结果用于指示目标图像中是否包含目标元素。可选的,激活函数可以但不限于为在人工神经网络的神经元上运行的函数,负责将神经元的输入映射到输出端,例如sigmoid、Tanh、ReLU等。

进一步举例说明,可选的例如以图3所示场景为例,继续以图5所示说明,包括图像导入界面502以及结果导出界面504,其中,图像导入界面502以及结果导出界面504可以但不限于显示在端设备上,具体的,图像导入界面502可以但不限用于导入输入文件,其中,输入文件中可以但不限于包括视频流文件或图像文件等,假设为视频文件,则先将导入的视频流文件转换为图片格式,在输入识别网络模型302中,假设为图像文件,则直接将图像文件输入识别网络模型302中;

再者,结果导出界面504可以但不限于获取在图像导入界面502导入的文件,在识别网络模型302的处理后,导出的输出结果,例如文件中的图像中包含目标元素的图像数,或更为详细的图像数据等。

通过本申请提供的实施例,将目标激活函数设置在神经网络模型的最后一层,其中,目标激活函数用于将特征向量转化为识别结果,识别结果用于指示包含目标元素的图像;将目标图像输入至第二识别网络模型,以获得目标识别结果,其中,目标识别结果用于指示目标图像中是否包含目标元素,达到了以与第一识别网络模型具有强关联关系的第二识别网络模型图像识别的场景应用的目的,实现了提高压缩模型的实用性的效果。

根据本发明实施例的又一个方面,还提供了一种用于实施上述压缩模型的获取方法的电子装置,如图10所示,该电子装置包括存储器1002和处理器1004,该存储器1002中存储有计算机程序,该处理器1004被设置为通过计算机程序执行上述任一项方法实施例中的步骤。

可选地,在本实施例中,上述电子装置可以位于计算机网络的多个网络设备中的至少一个网络设备。

可选地,在本实施例中,上述处理器可以被设置为通过计算机程序执行以下步骤:

S1,获取训练好的第一识别网络模型的第一参数,其中,第一识别网络模型用于识别出输入的图像中包含的目标元素,第一参数包括第一识别网络模型的通道数;

S2,按照预设条件对第一参数进行压缩,以得到第二参数;

S3,基于第二参数构建初始状态的第二识别网络模型,其中,第二识别网络模型与第一识别网络模型的网络结构相同;

S4,利用N个样本图像对初始状态的第二识别网络模型进行训练,其中,N为大于等于1的整数;

S5,在输出的训练结果达到收敛条件的情况下,确定得到训练好的第二识别网络模型。

可选地,本领域普通技术人员可以理解,图10所示的结构仅为示意,电子装置也可以是智能手机(如Android手机、iOS手机等)、平板电脑、掌上电脑以及移动互联网设备(Mobile Internet Devices,MID)、PAD等终端设备。图10其并不对上述电子装置的结构造成限定。例如,电子装置还可包括比图10中所示更多或者更少的组件(如网络接口等),或者具有与图10所示不同的配置。

其中,存储器1002可用于存储软件程序以及模块,如本发明实施例中的压缩模型的获取方法和装置对应的程序指令/模块,处理器1004通过运行存储在存储器1002内的软件程序以及模块,从而执行各种功能应用以及数据处理,即实现上述的压缩模型的获取方法。存储器1002可包括高速随机存储器,还可以包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器1002可进一步包括相对于处理器1004远程设置的存储器,这些远程存储器可以通过网络连接至终端。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。其中,存储器1002具体可以但不限于用于存储第一识别网络模型、第一参数、第二参数以及第二识别网络模型等信息。作为一种示例,如图10所示,上述存储器1002中可以但不限于包括上述压缩模型的获取装置中的第一获取单元602、压缩单元604、构建单元606、训练单元608及确定单元610。此外,还可以包括但不限于上述压缩模型的获取装置中的其他模块单元,本示例中不再赘述。

可选地,上述的传输装置1006用于经由一个网络接收或者发送数据。上述的网络具体实例可包括有线网络及无线网络。在一个实例中,传输装置1006包括一个网络适配器(Network Interface Controller,NIC),其可通过网线与其他网络设备与路由器相连从而可与互联网或局域网进行通讯。在一个实例中,传输装置1006为射频(Radio Frequency,RF)模块,其用于通过无线方式与互联网进行通讯。

此外,上述电子装置还包括:显示器1008,用于显示上述第一识别网络模型、第一参数、第二参数以及第二识别网络模型等信息;和连接总线1010,用于连接上述电子装置中的各个模块部件。

根据本发明的实施例的又一方面,还提供了一种计算机可读的存储介质,该计算机可读的存储介质中存储有计算机程序,其中,该计算机程序被设置为运行时执行上述任一项方法实施例中的步骤。

可选地,在本实施例中,上述计算机可读的存储介质可以被设置为存储用于执行以下步骤的计算机程序:

S1,获取训练好的第一识别网络模型的第一参数,其中,第一识别网络模型用于识别出输入的图像中包含的目标元素,第一参数包括第一识别网络模型的通道数;

S2,按照预设条件对第一参数进行压缩,以得到第二参数;

S3,基于第二参数构建初始状态的第二识别网络模型,其中,第二识别网络模型与第一识别网络模型的网络结构相同;

S4,利用N个样本图像对初始状态的第二识别网络模型进行训练,其中,N为大于等于1的整数;

S5,在输出的训练结果达到收敛条件的情况下,确定得到训练好的第二识别网络模型。

可选地,在本实施例中,本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令终端设备相关的硬件来完成,该程序可以存储于一计算机可读存储介质中,存储介质可以包括:闪存盘、只读存储器(Read-Only Memory,ROM)、随机存取器(Random Access Memory,RAM)、磁盘或光盘等。

上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。

上述实施例中的集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在上述计算机可读取的存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在存储介质中,包括若干指令用以使得一台或多台计算机设备(可为个人计算机、服务器或者网络设备等)执行本发明各个实施例方法的全部或部分步骤。

在本发明的上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。

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

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

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

以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。

相关技术
  • 压缩模型的获取方法、装置和存储介质及电子装置
  • 模型获取方法和装置、存储介质和电子装置
技术分类

06120112684509