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

基于中间层特征图压缩的卷积方法、模型及计算机设备

文献发布时间:2023-06-19 11:39:06


基于中间层特征图压缩的卷积方法、模型及计算机设备

技术领域

本申请涉及神经网络技术领域,尤其涉及一种基于中间层特征图压缩的卷积方法、模型及计算机设备。

背景技术

随着神经网络技术的发展与成熟,神经网络技术的应用领域越来越广,例如在工业领域,利用训练好的神经网络模型进行图片识别,对工业场景或者工业产品进行分类,相比于人工,分类神经网络不仅可以高效率的完成工作,而且极大的提高了准确率。

但是,嵌入式系统或物联网终端部署神经网络模型,由于输入神经网络模型的图片较大,在卷积过程中,中间层特征图数据量也会很大,将会造成了较高的片上存储需求以及较高的片上与片下的数据传输量,导致处理器的功耗较高,吞吐率下降。

在现有技术中,为了降低处理器的功耗,提高处理器的吞吐率,主要聚焦于神经网络模型的压缩和网络权重的压缩,但是,以上压缩方法对于特征图的压缩,无法得到较好的结果,此外,还存在一些技术方案,利用特征图的稀疏性来减少片上存储及数据搬运,但由于神经网络算法不断的发展,权重的稀疏性减少,激活函数ReLU被Leaky ReLU/PReLU等取代,导致特征图几乎不具有稀疏性,从而导致利用特征图稀疏性设计的硬件架构不仅不能带来提升,反而造成一些不必要的浪费,例如稀疏矩阵压缩的索引。

发明内容

针对中间层特征图数据量较大,且中间层特征图不具有稀疏性的卷积推理,为了降低处理器的功耗,提高处理器的吞吐率,本申请提供一种基于中间层特征图压缩的卷积方法、卷积模型及计算机设备。

本申请第一方面提供一种基于中间层特征图压缩的卷积方法,包括:

S101,获取输入图像;

S102,对所述输入图像进行预处理,所述预处理为高斯滤波处理;

S103,将预处理后的输入图像作为第一个硬件融合算子的输入,进行推理运算,获得第一个硬件融合算子的中间层特征图,所述硬件融合算子至少包括卷积层、池化层、BN层或Relu层中的任意一层,且若硬件融合算子包括卷积层,则所述卷积层处于第一层;

S104,判断中间层特征图的数据量是否大于预设的阈值,若中间层特征图的数据量小于或等于预设的阈值,则直接存储所述中间层特征图;若中间层特征图的数据量大于预设的阈值,则对中间层特征图进行量化及稀疏矩阵压缩,并存储经过量化及稀疏矩阵压缩后的中间层特征图;

S105,提取S104中存储的中间层特征图或量化及稀疏矩阵压缩后的中间层特征图,并作为下一个硬件融合算子的推理运算的输入,获得下一个硬件融合算子的中间层特征图;

S106,重复S104至S105,直至所有硬件融合算子完成推理运算,获得最终的输出结果。

可选的,在对中间层特征图进行量化及稀疏矩阵压缩的步骤之前,还包括:对所述中间层特征图进行DCT变换,获得DCT变换后的中间层特征图。

可选的,在所述提取所述中间层特征图或稀疏量化后的中间层特征图的步骤之后,还包括:

对所述中间层特征图进行IDCT变换,或对稀疏量化后的中间层特征图进行恢复量化和IDCT变换。

本申请第二方面提供另一种基于中间层特征图压缩的卷积方法,包括:

获取输入图像;

对所述输入图像进行预处理,所述预处理为高斯滤波处理;

将预处理后的输入图像作为多个硬件融合算子中第一个硬件融合算子的输入,依次进行多个硬件融合算子的推理运算,获得多个中间层特征图以及最终的输出结果;所述硬件融合算子至少包括卷积层、池化层、BN层或Relu层中的任意一层,且若硬件融合算子包括卷积层,则所述卷积层处于第一层;

其中,所述硬件融合算子包括第一类硬件融合算子和第二类硬件融合算子,所述第一类硬件融合算子的中间层特征图,在存储前均经过量化及稀疏矩阵压缩,所述第二类硬件融合算子的中间层特征图采用直接存储方式进行存储。

本申请第三方面提供一种基于中间层特征图压缩的卷积模型,用于执行本申请第三方面提供的一种基于中间层特征图压缩的卷积方法,包括:输入端,用于获取输入图像;预处理模块;用于对输入图像进行高斯滤波处理;

多个硬件融合算子,用于获得多个中间层特征图以及最终输出矩阵,所述硬件融合算子至少包括卷积层、池化层、BN层或Relu层中的任意一层,且若硬件融合算子包括卷积层,则所述卷积层处于第一层;

数据量判断模块,用于判断中间层特征图的数据量是否大于预设的阈值;量化及稀疏矩阵模块,用于对中间层特征图进行量化及稀疏矩阵压缩;存储模块,用于存储中间层特征图或经过量化及稀疏矩阵压缩后的中间层特征图;输出端,用于输出最终的输出结果。

可选的,还包括:DCT变换模块,用于对所述中间层特征图进行DCT变换。

可选的,还包括:IDCT变换模块,用于对所述中间层特征图进行IDCT变换;解压缩及恢复量化模块,用于对量化及稀疏矩阵压缩后的中间层特征图进行解压缩及恢复量化。

本申请第四方面提供一种基于中间层特征图压缩的卷积模型,用于执行本申请第二方面提供的一种基于中间层特征图压缩的卷积方法,包括:输入端,用于获取输入图像;预处理模块;用于对输入图像进行高斯滤波处理;

多个硬件融合算子,用于将输入图像作为输入,获取多个中间层特征图及最终的输出结果,所述硬件融合算子至少包括卷积层、池化层、BN层或Relu层中的任意一层,且若硬件融合算子包括卷积层,则所述卷积层处于第一层;

量化及稀疏矩阵模块,用于对中间层特征图进行量化及稀疏矩阵压缩;存储模块,用于存储中间层特征图或经过量化及稀疏矩阵压缩后的中间层特征图;输出端,用于输出最终的输出结果。

本申请第五方面该提供一种计算机设备,包括:存储器,用于存储计算机程序;处理器,用于执行所述计算机程序时实现本申请第一方面提供的一种基于中间层特征图压缩的卷积方法的步骤。

本申请第六方面还提供另一种计算机设备,包括:存储器,用于存储计算机程序;处理器,用于执行所述计算机程序时实现本申请第二方面提供的一种基于中间层特征图压缩的卷积方法的步骤。

本申请实施例提供的基于中间层特征图压缩的卷积方法、模型及计算机设备,不依赖中间层特征图本身的稀疏性,采用量化及稀疏矩阵压缩对数据量较大的中间层特征图进行阵压缩,降低对硬件存储空间的要求及处理器的能耗,提升处理器的件吞吐率,从根本上解决处理器存储以及数据搬运的问题。

附图说明

为了更清楚地说明本申请的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为本申请实施例第一方面提供的基于中间层特征图压缩的卷积方法流程示意图;

图2为本申请实施例第二方面提供的基于中间层特征图压缩的卷积方法流程示意图;

图3为本申请实施例第三方面提供的基于中间层特征图压缩的卷积模型结构示意图;

图4为本申请实施例第三方面提供的基于中间层特征图压缩的卷积模型结构示意图。

具体实施方式

下面将详细地对实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下实施例中描述的实施方式并不代表与本申请相一致的所有实施方式。仅是与权利要求书中所详述的、本申请的一些方面相一致的系统和方法的示例。

针对中间层特征图数据量较大,且中间层特征图不具有稀疏性的卷积推理,为了降低处理器的功耗,提高处理器的吞吐率,本申请实施例提供的基于中间层特征图压缩的卷积方法、及计算机设备,如图1所示,本申请实施例第一方面提供的一种基于中间层特征图压缩的卷积方法包括步骤S101至S106。

S101,获取输入图像。

S102,对所述输入图像进行预处理,所述预处理为高斯滤波处理。

通过高斯滤波处理可以减小网络权重对输入图像的特征矩阵中高频分量的敏感度,从而减少后续压缩带来的精度损失,由于高斯滤波可被作为神经网络中的Depth-wiseConvolution处理(深度卷积),因此完全可以利用卷积部分的片上(处理器)硬件资源,避免额外的资源浪费。

S103,将预处理后的输入图像作为第一个硬件融合算子的输入,进行推理运算,获得第一个硬件融合算子的中间层特征图,所述硬件融合算子至少包括卷积层、池化层、BN层或Relu层中的任意一层,且若硬件融合算子包括卷积层,则所述卷积层处于第一层。

需要说明的是,一个硬件融合算子中不存在相同的处理层(卷积层、池化层、BN层或Relu层),例如一个硬件融合算子最多只能拥有一个卷积层。

S104,判断中间层特征图的数据量是否大于预设的阈值,若中间层特征图的数据量小于或等于预设的阈值,则直接存储所述中间层特征图;若中间层特征图的数据量大于预设的阈值,则对中间层特征图进行量化及稀疏矩阵压缩,并存储经过量化及稀疏矩阵压缩后的中间层特征图。

其中,预设的阈值需要提前设定,保证预设的阈值小于硬件用来存储中间层特征图的内存大小,需要说明的是,采用性能不同的处理器执行所述一种基于中间层特征图压缩的卷积方法,其预设的阈值可以不同。

对于中间层特征图的数据量小于或等于预设的阈值的情况,可以不压缩中间层特征图,直接存储所述中间层特征图;对于中间层特征图的数据量大于预设的阈值,则先对中间层特征图进行量化及稀疏矩阵压缩,降低中间层特征图的数据量,然后存储经过量化及稀疏矩阵压缩后的中间层特征图。

需要说明的是,在对中间层特征图进行量化及稀疏矩阵压缩的步骤之前,还包括:对所述中间层特征图进行DCT变换(Discrete Cosine Transform,离散余弦变换),获得DCT变换后的中间层特征图。从而将空间域上的中间层特征图(在推理运算过程中,中间层特征图以矩阵形式存在),转换为频域上的中间层特征图。

S105,提取S104中存储的中间层特征图或量化及稀疏矩阵压缩后的中间层特征图,并作为下一个硬件融合算子的推理运算的输入,获得下一个硬件融合算子的中间层特征图。

在S104的基础上,第一个硬件融合算子推理运算得到的中间层特征图或者经过量化及稀疏矩阵压缩后后的中间层特征图,并不是最终的卷积运算结果,仍然需要进行后续硬件融合算子的推理运算,针对直接存储的中间层特征图,可以直接作为下一个硬件融合算子的输入矩阵;但是对于经过量化及稀疏矩阵压缩后的中间层特征图,在进行下一个硬件融合算子,需要先完成解压缩恢复量化和IDCT(Inverse Discrete Cosine Transform,变换反离散余弦变换)后,作为下一个硬件融合算子的输入阵,并获得所述下一个硬件融合算子推理运算得到的中间层特征图。

S106,重复S104至S105,直至所有硬件融合算子完成推理运算,获得最终的输出结果。

由于所述卷积方法需要完成多个硬件融合算子的推理运算,除了第一个硬件融合算子外,其他硬件融合算子的输入为上一个硬件融合算子推理运算得到的中间层特征图,通过重复步骤S104和步骤S105,直到完成所有硬件融合算子完成推理运算后,最后一个硬件融合算子的输出即为最终的输出结果。

如图2所示,本申请实施例第二方面提供另一种基于中间层特征图压缩的卷积方法,包括步骤S201至S204。

S201,获取输入图像。

S202,对所述输入图像进行预处理,所述预处理为高斯滤波处理。

S203,将预处理后的输入图像作为多个硬件融合算子中第一个硬件融合算子的输入,依次进行多个硬件融合算子的推理运算,获得多个中间层特征图以及最终的输出结果;所述硬件融合算子至少包括卷积层、池化层、BN层或Relu层中的任意一层,且若硬件融合算子包括卷积层,则所述卷积层处于第一层。

其中,所述硬件融合算子包括第一类硬件融合算子和第二类硬件融合算子,所述第一类硬件融合算子的中间层特征图,在存储前均经过量化及稀疏矩阵压缩,所述第二类硬件融合算子的中间层特征图采用直接存储方式进行存储。

需要说明的是,在对输入图像进行卷积推理运算过程中,一般越靠前的中间层特征图,其数据量越大,故在推理运算过程中,只需要对前几层的中间层特征图进行压缩,就可以有效的降低整个卷积推理运算的数据量,本申请实施第二方面提供的卷积方法,相对于第一方面的卷积方法,为了省略中间层特征图的数据量是否大于预设的阈值的判断,进一步降低整个卷积推理运算的数据量,直接将一定数量靠前的硬件融合算子作为第一类硬件融合算子的输入矩阵,所述第一类硬件融合算子是指,其输出的中间层特征图均需要经过量化及稀疏矩阵压缩后再存储,所述第二类硬件融合算子是指,其输出的中间层特征图均采用直接存储方式进行存储。

如图3所示,本申请实施例第三方面提供一种基于中间层特征图压缩的卷积模型,用于执行本申请实施例第三方面提供的一种基于中间层特征图压缩的卷积方法,对本申请实施例第三方面提供一种基于中间层特征图压缩的卷积模型中未公开的细节,请参考本申请实施例第一方面。

本申请实施例第三方面提供的一种基于中间层特征图压缩的卷积模型包括:输入端,用于获取输入图像;预处理模块;用于对输入图像进行高斯滤波处理。

多个硬件融合算子,用于获得多个中间层特征图以及最终输出矩阵,所述硬件融合算子至少包括卷积层、池化层、BN层或Relu层中的任意一层,且若硬件融合算子包括卷积层,则所述卷积层处于第一层。

数据量判断模块,用于判断中间层特征图的数据量是否大于预设的阈值;量化及稀疏矩阵模块,用于对中间层特征图进行量化及稀疏矩阵压缩;存储模块,用于存储中间层特征图或经过量化及稀疏矩阵压缩后的中间层特征图;输出端,用于输出最终的输出结果。

进一步的,所述一种基于中间层特征图压缩的卷积模型还包括:DCT变换模块,用于对所述中间层特征图进行DCT变换。IDCT变换模块,用于对所述中间层特征图进行IDCT变换;解压缩及恢复量化模块,用于对量化及稀疏矩阵压缩后的中间层特征图进行解压缩及恢复量化。

如图4所示,本申请实施例第四方面还提供另一种基于中间层特征图压缩的卷积模型,用于执行本申请实施例第二方面提供的一种基于中间层特征图压缩的卷积方法,对本申请实施例第四方面提供的另一种基于中间层特征图压缩的卷积模型中未公开的细节,请参考本申请实施例第二方面。

本申请实施例第四方面提供的一种基于中间层特征图压缩的卷积模型包括:输入端,用于获取输入图像;预处理模块;用于对输入图像进行高斯滤波处理。

多个硬件融合算子,用于将输入图像作为输入,获取多个中间层特征图及最终的输出结果,所述硬件融合算子至少包括卷积层、池化层、BN层或Relu层中的任意一层,且若硬件融合算子包括卷积层,则所述卷积层处于第一层。

量化及稀疏矩阵模块,用于对中间层特征图进行量化及稀疏矩阵压缩;存储模块,用于存储中间层特征图或经过量化及稀疏矩阵压缩后的中间层特征图;输出端,用于输出最终的输出结果。

需要说明的是,本申请实施例提供的附图4只是示意性的给出本方案的一种结构示意图,并局限于本申请实施例方案中硬件融合算子的数量及顺序。

在建立本申请实施例第四方面的基于中间层特征图压缩的卷积模型时,所述第一类硬件融合算子的数量按照以下方法确定。

首先利用大量数据训练,获得初步卷积模型,所述初步卷积模型是指没有对中间层特征图进行稀疏量化的神经网络模型。然后设定初步卷积模型的精度损失,例如0.5%或1%,本申请实施例以1%的精度损失为例。利用初步卷积模型进行图像卷积推理运算,并获取所有硬件融合算子的中间层特征图,选取数据量最大的几个中间层特征图对应的硬件融合算子,(一般也是模型中靠前的硬件融合算子),先对数据量最大的中间层特征图进行量化及稀疏矩阵压缩;在保持最高压缩率的前提下,通过调整该硬件融合算子的量化表来使精度损失小于1%。之后压缩中间层特征矩阵数据量相同大小的第二个硬件融合算子,主要调整该硬件融合算子的量化表,同时对前面的量化表进行微调来使精度损失小于1%,以此类推。

在中间层特征矩阵最大的几个硬件融合算子都压缩后,再去选取中间层特征图数据量次大的几个硬件融合算子,用上述的方法进行压缩,直到无法保证整个初步卷积模型的精度损失小于1%为止。此时,得到的初步卷积模型即可作为本申请第四方面提供的基于中间层特征图压缩的卷积模型。

本申请实施例第五方面还提供一种计算机设备,包括存储器,用于存储计算机程序;处理器,用于执行所述计算机程序时实现如本申请实施例第一方面提供所述的基于中间层特征图压缩的卷积方法的步骤。

本申请实施例第六方面还提供另一种计算机设备,包括存储器,用于存储计算机程序;处理器,用于执行所述计算机程序时实现如本申请实施例第一方面提供所述的一种基于中间层特征图压缩的卷积方法的步骤。

本申请实施例提供的基于中间层特征图压缩的卷积方法、卷积模型及计算机设备,所述基于中间层特征图压缩的卷积方法,包括:S101,获取输入图像;S102,对所述输入图像进行预处理,所述预处理为高斯滤波处理;S103,将预处理后的输入图像作为第一个硬件融合算子的输入,进行推理运算,获得第一个硬件融合算子的中间层特征图,所述硬件融合算子至少包括卷积层、池化层、BN层或Relu层中的任意一层,且若硬件融合算子包括卷积层,则所述卷积层处于第一层;S104,判断中间层特征图的数据量是否大于预设的阈值,若中间层特征图的数据量小于或等于预设的阈值,则直接存储所述中间层特征图;若中间层特征图的数据量大于预设的阈值,则对中间层特征图进行量化及稀疏矩阵压缩,并存储经过量化及稀疏矩阵压缩后的中间层特征图;S105,提取S104中存储的中间层特征图或量化及稀疏矩阵压缩后的中间层特征图,并作为下一个硬件融合算子的推理运算的输入,获得下一个硬件融合算子的中间层特征图;S106,重复S104至S105,直至所有硬件融合算子完成推理运算,获得最终的输出结果。

本申请实施例提供的基于中间层特征图压缩的卷积方法、卷积模型及计算机设备,不依赖中间层特征图本身的稀疏性,采用量化及稀疏矩阵压缩对数据量较大的中间层特征图进行阵压缩,降低对硬件存储空间的要求及处理器的能耗,提升处理器的件吞吐率,从根本上解决处理器存储以及数据搬运的问题。

本申请提供的实施例之间的相似部分相互参见即可,以上提供的具体实施方式只是本申请总的构思下的几个示例,并不构成本申请保护范围的限定。对于本领域的技术人员而言,在不付出创造性劳动的前提下依据本申请方案所扩展出的任何其他实施方式都属于本申请的保护范围。

相关技术
  • 基于中间层特征图压缩的卷积方法、模型及计算机设备
  • 基于滤波器特征图的全局秩感知神经网络模型压缩方法
技术分类

06120113007198