CN117408309A - 一种卷积神经网络模型中间层数据的处理方法及系统 - Google Patents
一种卷积神经网络模型中间层数据的处理方法及系统 Download PDFInfo
- Publication number
- CN117408309A CN117408309A CN202311211475.0A CN202311211475A CN117408309A CN 117408309 A CN117408309 A CN 117408309A CN 202311211475 A CN202311211475 A CN 202311211475A CN 117408309 A CN117408309 A CN 117408309A
- Authority
- CN
- China
- Prior art keywords
- data
- layer data
- bit width
- intermediate layer
- middle layer
- 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.)
- Pending
Links
- 238000013527 convolutional neural network Methods 0.000 title claims abstract description 94
- 238000003672 processing method Methods 0.000 title abstract description 8
- 238000007906 compression Methods 0.000 claims abstract description 61
- 230000006835 compression Effects 0.000 claims abstract description 59
- 238000000034 method Methods 0.000 claims abstract description 34
- 238000004364 calculation method Methods 0.000 claims abstract description 9
- 238000006243 chemical reaction Methods 0.000 claims abstract description 8
- 238000013139 quantization Methods 0.000 claims description 9
- 238000000638 solvent extraction Methods 0.000 claims description 8
- 238000003491 array Methods 0.000 claims description 5
- 238000005192 partition Methods 0.000 claims description 5
- 230000000694 effects Effects 0.000 abstract description 23
- 238000013144 data compression Methods 0.000 abstract description 7
- 238000010586 diagram Methods 0.000 description 4
- 238000013528 artificial neural network Methods 0.000 description 2
- 238000013135 deep learning Methods 0.000 description 2
- 238000000605 extraction Methods 0.000 description 2
- 230000006978 adaptation Effects 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 230000010365 information processing Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/0464—Convolutional networks [CNN, ConvNet]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/045—Combinations of networks
- G06N3/0455—Auto-encoder networks; Encoder-decoder networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/047—Probabilistic or stochastic networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/0495—Quantised networks; Sparse networks; Compressed networks
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- General Health & Medical Sciences (AREA)
- Computing Systems (AREA)
- Biomedical Technology (AREA)
- Biophysics (AREA)
- Computational Linguistics (AREA)
- Data Mining & Analysis (AREA)
- Evolutionary Computation (AREA)
- Life Sciences & Earth Sciences (AREA)
- Molecular Biology (AREA)
- Artificial Intelligence (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Health & Medical Sciences (AREA)
- Probability & Statistics with Applications (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
Abstract
本申请提供一种卷积神经网络模型中间层数据的处理方法及系统,方法包括获取卷积神经网络模型中的任一中间层对输入数据进行处理所得的中间层数据;获取中间层数据的实际位宽;将中间层数据根据预设编码位宽参数执行转换,得到压缩后数据,其中预设编码位宽参数的位宽小于实际位宽;存储压缩后数据。同时获取并解压压缩后数据生成解压后数据,解压后数据与压缩前数据仍然保持一致,并将解压后数据输入到下一中间层。本申请旨在下一中间层处理之前对上一层产生的中间层数据进行压缩,在下一阶层计算之前再提取出来进行解压,送入下一阶层计算。这样既可以减少对存储器的访问,又可以解决卷积神经网络模型对中间层数据压缩效果差的问题。
Description
技术领域
本申请涉及信息处理技术领域,尤其涉及一种卷积神经网络模型中间层数据的处理方法及系统。
背景技术
卷积神经网络是一类包含卷积计算且具有深度结构的前馈神经网络,其包含有多个阶层,可以通过卷积神经网络进行深度学习。例如,VGG系列网络模型其阶层深度基本均在10层以上,残差网络模型的深度更是多达数十层甚至上百层。
复杂的卷积神经网络模型虽然具有超强的规则学习能力,但是由于层数较多,不仅自身结构占用较多的存储空间,而且使用过程中每层输出的中间层数据需要占用更多的存储空间,由此导致存储空间面临着巨大的压力。其中,卷积神经网络模型的中间层数据主要是指每个卷积层输出的经过卷积核提取特征后的特征图像。
为了减轻使用卷积神经网络模型时存储空间的压力,提高卷积神经网络模型的计算速度,可以对卷积神经网络模型的中间层数据进行压缩。但是,现阶段的压缩方法主要聚焦于卷积神经网络模型自身结构的压缩和对卷积神经网络模型权重的压缩,其对中间层数据的压缩没有较好的效果。因此,卷积神经网络模型的中间层数据仍无法压缩,导致卷积神经网络模型对中间层数据压缩效果差。
发明内容
本申请一些实施例提供一种卷积神经网络模型中间层数据的处理方法及系统,以解决卷积神经网络模型对中间层数据压缩效果差的问题。
第一方面,本申请一些实施例提供一种卷积神经网络模型中间层数据的处理方法,包括:
获取卷积神经网络模型中的第一中间层对输入数据进行处理所得的第一中间层数据;
获取所述第一中间层数据的实际位宽;
将所述第一中间层数据根据预设编码位宽参数执行转换,得到压缩后数据,其中,所述预设编码位宽参数的位宽小于所述实际位宽;
存储所述压缩后数据。
在一些实施例中,所述的卷积神经网络模型中间层数据的处理方法,还包括:
获取所述压缩后数据;
解压所述压缩后数据,生成解压后数据,所述解压后数据的位宽与所述实际位宽相同;
将所述解压后数据输入到所述第二中间层。
在一些实施例中,将所述第一中间层数据根据预设编码位宽参数执行转换,得到压缩后数据的步骤,包括:
使用第一预设长度的短位宽表示所述第一中间层数据,和/或使用预设固定值与第二预设长度的长位宽表示所述第一中间层数据,所述第二预设长度大于所述第一预设长度;所述预设固定值为根据所述短位宽设置的固定值,所述长位宽小于所述实际位宽。
在一些实施例中,所述的卷积神经网络模型中间层数据的处理方法,还包括:
对所述第一中间层数据执行分区块操作;
对分区块后的第一中间层数据执行离散余弦变换;
对离散余弦变换后的第一中间层数据执行量子化处理;
对量子化处理后的第一中间层数据执行混合位宽编码;
存储编码后的第一中间层数据。
在一些实施例中,所述的卷积神经网络模型中间层数据的处理方法,还包括:
使用编码数组划分所述第一中间层数据;
计算所述编码数组所表示的数据范围;
获取所述编码数组表示的第一中间层数据出现的频率;
根据所述频率计算所述第一中间层数据编码后的平均码长;
根据所述平均码长计算所述第一中间层数据编码后的压缩率。
在一些实施例中,所述的卷积神经网络模型中间层数据的处理方法,还包括:
遍历所述第一中间层数据,以获取所述第一中间层数据的数据特征;
根据所述数据特征确定混合位宽编码形式,所述混合位宽编码形式表示扩展所述编码数组,采用多组编码数组的形式对所述第一中间层数据执行编码;
通过所述混合位宽编码形式对所述第一中间层数据执行编码,得到压缩后数据。
第二方面,本申请一些实施例提供一种卷积神经网络模型中间层数据的处理系统,包括:
数据获取模块:获取卷积神经网络模型中的第一中间层对输入数据进行处理所得的第一中间层数据;
位宽获取模块:获取所述第一中间层数据的实际位宽;
压缩模块:将所述第一中间层数据根据预设编码位宽参数执行转换,得到压缩后数据,其中,所述预设编码位宽参数的位宽小于所述实际位宽;
存储模块:存储所述压缩后数据。
在一些实施例中,压缩模块在执行将所述第一中间层数据根据预设编码位宽参数执行转换,得到压缩后数据的步骤,包括:
使用第一预设长度的短位宽表示所述第一中间层数据,和/或使用预设固定值与第二预设长度的长位宽表示所述第一中间层数据,所述第二预设长度大于所述第一预设长度;所述预设固定值为根据所述短位宽设置的固定值,所述长位宽小于所述实际位宽。
在一些实施例中,所述的卷积神经网络模型中间层数据的处理系统,还包括离散余弦变换模块,所述离散余弦变换模块被配置为执行下述步骤:
对所述第一中间层数据执行分区块操作;
对分区块后的第一中间层数据执行离散余弦变换;
对离散余弦变换后的第一中间层数据执行量子化处理;
对量子化处理后的第一中间层数据执行混合位宽编码;
存储编码后的第一中间层数据。
在一些实施例中,所述的卷积神经网络模型中间层数据的处理系统,还包括压缩率计算模块,所述压缩率计算模块被配置为执行下述步骤:
使用编码数组划分所述第一中间层数据;
计算所述编码数组所表示的数据范围;
获取所述编码数组表示的第一中间层数据出现的频率;
根据所述频率计算所述第一中间层数据编码后的平均码长;
根据所述平均码长计算所述第一中间层数据编码后的压缩率。
由以上技术方案可知,本申请一些实施例提供一种卷积神经网络模型中间层数据的处理方法及系统,所述方法包括获取卷积神经网络模型中的任一中间层对输入数据进行处理所得的中间层数据;获取中间层数据的实际位宽;将中间层数据根据预设编码位宽参数执行转换,得到压缩后数据,其中预设编码位宽参数的位宽小于实际位宽;存储压缩后数据。同时获取并解压压缩后数据生成解压后数据,解压后数据与压缩前数据仍然保持一致,并将解压后数据输入到下一中间层。本申请旨在下一中间层处理之前对上一层产生的中间层数据进行压缩,在下一阶层计算之前再提取出来进行解压,送入下一阶层计算。这样既可以减少对存储器的访问,又可以解决卷积神经网络模型对中间层数据压缩效果差的问题。
附图说明
为了更清楚地说明本申请一些实施例或现有技术中的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图。
图1为本申请一些实施例提供的卷积神经网络模型中间层数据在8比特量化数据分布的示意图;
图2为本申请一些实施例提供的卷积神经网络模型中间层数据的处理方法流程示意图;
图3为本申请一些实施例提供的卷积神经网络模型中间层数据的处理系统结构示意图;
图4为本申请一些实施例提供的对中间层数据执行离散余弦变换的场景示意图。
具体实施方式
为使本申请一些实施例的目的、技术方案和优点更加清楚,下面将结合本申请具体实施例及相应的附图对本申请一些实施例技术方案进行清楚、完整地描述。显然,所描述的实施例仅是本申请一部分实施例,而不是全部的实施例。
需要说明的是,本申请一些实施例中对于术语的简要说明,仅是为了方便理解接下来描述的实施方式,而不是意图限定本申请一些实施例的实施方式。除非另有说明,这些术语应当按照其普通和通常的含义理解。
卷积神经网络是一类包含卷积计算且具有深度结构的前馈神经网络,其包含有多个阶层,可以通过卷积神经网络进行深度学习。例如,VGG系列网络模型其阶层深度基本均在10层以上,残差网络模型的深度更是多达数十层甚至上百层。
复杂的卷积神经网络模型虽然具有超强的规则学习能力,但是由于层数较多,不仅自身结构占用较多的存储空间,而且使用过程中每层输出的中间层数据需要占用更多的存储空间,由此导致存储空间面临着巨大的压力。其中,卷积神经网络模型的中间层数据主要是指每个卷积层输出的经过卷积核提取特征后的特征图像。
为了减轻使用卷积神经网络模型时存储空间的压力,提高卷积神经网络模型的计算速度,在一些实施例中,需要对卷积神经网络模型的中间层数据进行压缩。但是,现阶段主要聚焦于卷积神经网络模型自身结构的压缩和对卷积神经网络模型权重的压缩,部分对中间层数据的压缩方式复杂度过高,难以实现。
示例性的,可以采用格伦布编码(Golomb code)对卷积神经网络模型的中间层数据进行压缩,格伦布编码是一种无损的数据处理方法,可以使用较短的码长编码较小的数字,使用较长的码长编码较大的数字。但是,格伦布编码形式的编码复杂度较高,且对资源消耗较大,实用性较差。因此,卷积神经网络模型的中间层数据仍无法压缩,导致卷积神经网络模型对中间层数据压缩效果差。
图1为本申请一些实施例提供的卷积神经网络模型中间层数据在8比特量化数据分布的示意图,如图1所示,本申请技术方案提出的场景为,在卷积神经网络模型的中间层数据中,中间层数据结果为0的数量较多。例如,在0-255这256个数据中,中间层数据的结果很多集中在小数值部分,针对这种数据分布特点,提出了本申请技术方案。例如,如果中间层数据结果80%都是0,这些0的中间层数据就没有必要用8比特去压缩,如果用1比特去压缩,则会减少中间层数据的存储空间,达到中间层数据压缩的目的。
基于上述场景,为了解决卷积神经网络模型对中间层数据压缩效果差的问题,本申请一些实施例提供一种卷积神经网络模型中间层数据的处理方法,图2为本申请一些实施例提供的卷积神经网络模型中间层数据的处理方法流程示意图,如图2所示,所述卷积神经网络模型中间层数据的处理方法可以包括如下步骤S1-S4,具体内容如下:
步骤S1:获取卷积神经网络模型中的第一中间层对输入数据进行处理所得的第一中间层数据。
在一些实施例中,卷积神经网络模型的输入可以是图像数据,也可以为其他数据。卷积神经网络模型包含有多个阶层,例如,可能为几层到十几层,甚至更多,每一阶层输入的输入数据都需要计算,并且需要将计算完成的结果存储起来,例如,可以存储到存储器中。
在卷积神经网络模型的各个阶层处理输入数据时,需要每个中间层进行一层一层的处理,例如,首先第一中间层先对输入数据进行处理,得到第一中间层数据,之后再将第一中间层数据输入到第二中间层,得到第二中间层数据,再将第二中间层数据输入到第三中间层,得到第三中间层数据,按照各个层逐个处理,直至所有中间层处理完成。本申请旨在对每一层产生的中间层数据执行压缩,即在下一中间层处理之前对上一层产生的中间层数据进行压缩,在下一阶层计算之前再提取出来进行解压,送入下一阶层的计算。这样既可以减少对存储器的访问,又可以解决卷积神经网络模型对中间层数据压缩效果差的问题。
为了实现获取卷积神经网络模型中的中间层数据的功能,在一些实施例中,可以设置有卷积神经网络模型中间层数据的处理系统。图3为本申请一些实施例提供的卷积神经网络模型中间层数据的处理系统结构示意图,如图3所示,该系统中可以设置有数据获取模块10、位宽获取模块20、压缩模块30和存储模块40,其中,可以由数据获取模块10来获取卷积神经网络模型中第一中间层对输入数据进行处理所得的第一中间层数据。其中,卷积神经网络模型的结构本申请不作限定,例如可以为YOLOV3、VGG16 Net、ResNet50或者MobileNetV2等,也可以为其他形式。
需要说明的是,由于在卷积神经网络模型中各个中间层的处理过程是相同的,因此,以下将以第一中间层处理输入数据为例,对其产生的第一中间层数据的处理方式进行说明。其余中间层按照相同方式处理即可,本申请将不再重复描述。步骤S1执行完成后,执行如下步骤S2。
步骤S2:获取第一中间层数据的实际位宽。
在一些实施例中,可以由位宽获取模块20来执行获取第一中间层数据的实际位宽。例如,第一中间层数据的实际位宽可以为N比特,其中N为正整数。也可以通过其他形式获取第一中间层数据的实际位宽,本申请对此不作具体限定。步骤S2执行完成后,可以执行如下步骤S3。
步骤S3:将第一中间层数据根据预设编码位宽参数执行转换,得到压缩后数据,其中,预设编码位宽参数的位宽小于实际位宽。
继续参见图1,在图1中8比特量化基础下卷积神经网络模型的中间层数据结果中零值非常多,在一些实施例中,为了给这些中间层数据结果进行编码,可以通过相似数据编码的方式。例如,可以采用huffman编码、golomb编码等方式。但是,对于这种类型的编码,其复杂度较高,且对资源消耗很大,因此,其实用性较差。
为了降低对中间层数据的编码复杂度、同时降低资源消耗,在一些实施例中,可以采用离散余弦变换(DCT for Discrete Cosine Transform,DCT)和混合位宽编码的处理方法,以提升对中间层数据的压缩效果,接下来对其实现方式进行详细介绍。
在一些实施例中,在执行将第一中间层数据根据预设编码位宽参数执行转换,得到压缩后数据时,具体可以通过如下方式实现。
使用第一预设长度的短位宽表示第一中间层数据,例如,第一预设长度可以为4,当中间层数据的位宽小于或者等于4时,均可以使用4的短位宽表示该中间层数据。而当中间层数据的位宽超过短位宽能表示的数据范围时,可以使用预设固定值与第二预设长度的长位宽表示第一中间层数据,其中,第二预设长度大于第一预设长度,预设固定值为根据短位宽设置的固定值。其基本思路为使用较短的位宽表示大部分的中间层数据,在中间层数据的位宽超出短位宽能表示的数据范围时,设置短位宽为固定值,该固定值表示数据超出范围,此时可以用固定值加长位宽的形式来表示该中间层数据。
需要说明的是,在本申请实施例中,该长位宽应小于中间层数据的位宽值,这样才能达到对中间层数据进行压缩的效果。而且,本申请中的长位宽要求能表达出所有的中间层数据,因此,其压缩前和解压后精度不会产生损失,因此其实际上为无损压缩方式。在第一中间层数据超出短位宽能表示的数据范围时,可以设置短位宽为固定值,该固定值表示数据超出范围,并继续用长位宽表示该中间层数据。例如,在图1中,可以用4比特表示大多数的中间层数据,而超出范围的小部分中间层数据则可以用“4+8bit”即4+8比特的形式表示,以对第一中间层数据实现压缩。需要说明的是,由于对卷积神经网络模型的中间层数据最常用的是8比特的量化,因此,本申请给出的实施例是以8比特为例,可以理解的是,还可以扩展到任意比特的编码,在实际压缩过程中,可以根据实际需求选择适合的压缩方式,本申请对此不作具体限定。
为了使第一中间层数据变得更稀疏、使其数据分布更具有规律性,在一些实施例中,在获取卷积神经网络模型中的第一中间层数据的步骤之前,在对第一中间层数据执行压缩之前,可以对第一中间层数据执行离散余弦变换DCT。图4为本申请一些实施例提供的对第一中间层数据执行离散余弦变换的场景示意图,如图4所示,首先可以对第一中间层数据执行分区块操作,例如,分为8×8的区块,之后对分区块后的第一中间层数据执行离散余弦变换,并对离散余弦变换后的第一中间层数据执行量子化处理,量子化处理完成后,再对量子化处理后的第一中间层数据执行混合位宽编码,最后再存储编码后的第一中间层数据。由图4可以看出,经过离散余弦变换DCT的处理后,可以使第一中间层数据变得更稀疏,且具有规律性,因此,在对第一中间层数据执行编码前通过离散余弦变换DCT处理可以为混合位宽编码的处理流程提供数据基础。
在一些实施例中,对于长度为N比特的第一中间层数据,可以通过编码数组对其执行划分。示例性的,可以通过编码数组{M0,M1,…K,Mn}对其进行划分,对该编码数组中的某个对象可以表示为Mi,其中,Mi(i∈{1,2,…k,n})表示Mi比特的编码,K、i和n为自然数,0<M1<M2<…k<Mn。表1为使用编码数组{1,3,8}混合位宽对第一中间层数据执行编码的列表,如表1所示,对于图1中的8比特的第一中间层数据,“0”的比例非常高,如果使用1个比特来表示0,则对于0的数据可以取得较好的压缩率。其中,压缩率即为文件压缩后的大小与压缩前的大小之比。例如:如果把100M的文件压缩后是90M,其压缩率为90/100*100%=90%,如果把100M的文件压缩后是80M,其压缩率为80/100*100%=80%。由此可见,压缩率越小表示其压缩的效果越好。
在一些实施例中,如果将编码数组{M0,M1,…K,Mn}设置为{1,3,8},则对第一中间层数据执行编码的效果如表1所示:
表1:{1,3,8}混合位宽编码
在一些实施例中,卷积神经网络模型中间层数据的处理系统还可以执行如下功能。首先,可以遍历第一中间层数据,以获取第一中间层数据的数据特征,之后可以根据数据特征确定混合位宽编码形式,其中混合位宽编码形式可以用来表示扩展编码数组,采用多组编码数组的形式对第一中间层数据执行编码,最后再通过混合位宽编码形式对第一中间层数据执行编码,得到压缩后数据。
示例性的,可以对第一中间层数据的编码形式进行如下扩展。参见表2,表2为使用编码数组{1,3,5}{1,3,8}混合位宽对第一中间层数据执行编码的列表,结合表1,在表1中,M2部分“111”的含义表示其后续还有8比特的编码。参见表2,如果在此基础上将“110”的含义改变为后续还有5比特的编码,则对于“1+3+5”比特表示的第一中间层数据可以仅用9比特表示而非12比特,则可以取得更好的压缩率,在实际应用场景中,可以根据实际需求并结合第一中间层数据的特点选择具体的编码方式,本申请对此不作具体限定。
表二:{1,3,5}{1,3,8}混合位宽编码
需要说明的是,本申请实施例的编码流程中,对第一中间层数据的编码均是基于比特的操作,因此,其对资源消耗较小,只需要根据第一中间层数据的实际情况选择适合的编码方式即可,不同的编码方式只需要移位等简单操作即可,所以可以解决卷积神经网络模型对第一中间层数据压缩效果差的问题。步骤S3执行完成后,可以执行如下步骤S4。
步骤S4:存储压缩后数据。
为了提升对第一中间层数据的压缩效果,生成压缩后数据后,可以将压缩后数据存储到存储器中。也就是说,在本申请实施例中,卷积神经网络模型中每一中间层计算得到的中间层数据都会存储到存储器中,在存储之前,会对各个中间层数据执行压缩,并在下一层开始计算时从存储器中取出。中间层数据的压缩算法用于每一中间层计算完成后到存储到存储器的过程中,在此期间,由于对中间层数据进行了压缩,其所占据的资源变少,因此访问存储器的次数、频率、时长等均变少,所以可以降低对存储器的访问,同时提升对第一中间层数据的压缩效果。
在一些实施例中,在存储器存储压缩后数据后,在第二中间层处理压缩后数据之前,可以获取压缩后数据,并解压压缩后数据,生成解压后数据,其中,解压后数据的位宽与实际位宽相同,即解压后数据与压缩前数据仍然保持一致。之后,可以将解压后数据输入到第二中间层。这样,第二中间层处理时,可以获取该解压后数据,并将解压后数据输入到第二中间层。
表3为Golomb rice编码与本申请的混合位宽编码的压缩效果对比表,其中,Golomb rice编码是JPEG无损或准无损图像压缩标准中的编码方法,可以用于执行图像压缩。在一些实施例中,由于本申请实施例中对第一中间层数据的编码长度不定,因此,该编码为变长编码。Golomb rice编码和本申请实施例中的编码同属于前缀变长编码,经对比,Golomb rice编码与本申请实施例中的混合位宽编码的压缩效果如表3所示,从表3可以看出,混合位宽编码的压缩率小于Golomb rice编码的压缩率,因此,通过本申请的混合位宽编码方式可以提升对第一中间层数据的压缩效果。
表3:Golomb rice编码与本申请的混合位宽编码的压缩效果对比表
需要说明的是,本申请在对第一中间层数据执行数据压缩后,变成了二进制的压缩后数据,在对其进行解压缩后,解压后的第一中间层数据与压缩前的第一中间层数据相同,因此,该压缩过程中没有任何损失,为无损压缩。因此,可以采用离散余弦变换(DCT forDiscrete Cosine Transform,DCT)和混合位宽编码的处理方法实现对第一中间层数据及相似分布数据的压缩,从而减少对资源的消耗需求,在节省资源消耗的基础上,提升压缩效果。
在一些实施例中,卷积神经网络模型中间层数据的处理系统在使用编码数组划分第一中间层数据后,还可以计算编码数组所表示的数据范围,并获取编码数组表示的第一中间层数据出现的频率,再根据频率计算第一中间层数据编码后的平均码长,最后根据码长计算第一中间层数据编码后的压缩率。
示例性的,Mi比特二进制编码可以表示的数据范围为个数,当待压缩的第一中间层数据超出该范围的时候,可以将Mi比特设置全1,如111,并用更多的位宽表示第一中间层数据。由于全1用来表示第一中间层数据超出范围,则对于M1而言,M1'b1表示数据超出个数,编码后M1实际表示的数据范围为/>以此类推,{M1,M2}可表示的数据范围为{M0,M1,…K,Mn}可表示的数据范围为:
假设{M0,M1,…K,Mn}能表示的数据出现的概率为Pi,则最终编码后的平均码长为:
编码后压缩率为:
由以上技术方案可知,上述实施例提供一种卷积神经网络模型中间层数据的处理方法,所述方法包括获取卷积神经网络模型中的第一中间层对输入数据进行处理所得的第一中间层数据;获取第一中间层数据的实际位宽;将第一中间层数据根据预设编码位宽参数执行转换,得到压缩后数据,其中,预设编码位宽参数的位宽小于实际位宽;存储压缩后数据,以及在第二中间层处理压缩后数据之前,解压压缩后数据,生成解压后数据,解压后数据的位宽与实际位宽相同。也就是说,所述方法包括获取卷积神经网络模型中的任一中间层对输入数据进行处理所得的中间层数据;获取中间层数据的实际位宽;将中间层数据转换为预设编码位宽参数,得到压缩后数据,其中,预设编码位宽参数的位宽小于实际位宽;存储压缩后数据。同时,可以获取并解压压缩后数据,生成解压后数据,所述解压后数据的位宽与实际位宽相同,并将解压后数据输入到下一中间层。所述方法对资源消耗较小,只需要根据第一中间层数据的实际情况选择适合的编码方式即可,可以解决卷积神经网络模型对中间层数据压缩效果差的问题。
基于上述卷积神经网络模型中间层数据的处理方法,本申请部分实施例还提供一种卷积神经网络模型中间层数据的处理系统,所述系统包括:
数据获取模块:获取卷积神经网络模型中的第一中间层对输入数据进行处理所得的第一中间层数据;
位宽获取模块:获取所述第一中间层数据的实际位宽;
压缩模块:将所述第一中间层数据根据预设编码位宽参数执行转换,得到压缩后数据,其中,所述预设编码位宽参数的位宽小于所述实际位宽;
存储模块:存储所述压缩后数据。
在一些实施例中,压缩模块在执行将所述第一中间层数据根据预设编码位宽参数执行转换,得到压缩后数据的步骤,包括:
使用第一预设长度的短位宽表示所述第一中间层数据;和/或使用预设固定值与第二预设长度的长位宽表示所述第一中间层数据,所述第二预设长度大于所述第一预设长度;所述预设固定值为根据所述短位宽设置的固定值,所述长位宽小于所述实际位宽。
在一些实施例中,所述的卷积神经网络模型中间层数据的处理系统,还包括离散余弦变换模块,所述离散余弦变换模块被配置为执行下述步骤:
对所述第一中间层数据执行分区块操作;
对分区块后的第一中间层数据执行离散余弦变换;
对离散余弦变换后的第一中间层数据执行量子化处理;
对量子化处理后的第一中间层数据执行混合位宽编码;
存储编码后的第一中间层数据。
在一些实施例中,所述的卷积神经网络模型中间层数据的处理系统,还包括压缩率计算模块,所述压缩率计算模块被配置为执行下述步骤:
使用编码数组划分所述第一中间层数据;
计算所述编码数组所表示的数据范围;
获取所述编码数组表示的第一中间层数据出现的频率;
根据所述频率计算所述第一中间层数据编码后的平均码长;
根据所述平均码长计算所述第一中间层数据编码后的压缩率。
由以上技术方案可知,上述实施例提供一种卷积神经网络模型中间层数据的处理系统,所述系统对资源消耗较小,只需要根据中间层数据的实际情况选择适合的编码方式即可,可以解决卷积神经网络模型对中间层数据压缩效果差的问题。
本说明书中各个实施例之间相同相似的部分互相参照即可,在此不再赘述。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本发明的其它实施方案。本申请旨在涵盖本发明的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本发明的一般性原理并包括本发明未公开的本技术领域中的公知常识或惯用技术手段。
应当理解的是,本发明并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本发明的范围仅由所附的权利要求来限制。
Claims (10)
1.一种卷积神经网络模型中间层数据的处理方法,其特征在于,包括:
获取卷积神经网络模型中的第一中间层对输入数据进行处理所得的第一中间层数据;
获取所述第一中间层数据的实际位宽;
将所述第一中间层数据根据预设编码位宽参数执行转换,得到压缩后数据,其中,所述预设编码位宽参数的位宽小于所述实际位宽;
存储所述压缩后数据。
2.根据权利要求1所述的卷积神经网络模型中间层数据的处理方法,其特征在于,还包括:
获取所述压缩后数据;
解压所述压缩后数据,生成解压后数据,所述解压后数据的位宽与所述实际位宽相同;
将所述解压后数据输入到第二中间层。
3.根据权利要求1所述的卷积神经网络模型中间层数据的处理方法,其特征在于,将所述第一中间层数据根据预设编码位宽参数执行转换,得到压缩后数据的步骤,包括:
使用第一预设长度的短位宽表示所述第一中间层数据,和/或使用预设固定值与第二预设长度的长位宽表示所述第一中间层数据;所述第二预设长度大于所述第一预设长度;所述预设固定值为根据所述短位宽设置的固定值,所述长位宽小于所述实际位宽。
4.根据权利要求1所述的卷积神经网络模型中间层数据的处理方法,其特征在于,还包括:
对所述第一中间层数据执行分区块操作;
对分区块后的第一中间层数据执行离散余弦变换;
对离散余弦变换后的第一中间层数据执行量子化处理;
对量子化处理后的第一中间层数据执行混合位宽编码;
存储编码后的第一中间层数据。
5.根据权利要求1所述的卷积神经网络模型中间层数据的处理方法,其特征在于,还包括:
使用编码数组划分所述第一中间层数据;
计算所述编码数组所表示的数据范围;
获取所述编码数组表示的第一中间层数据出现的频率;
根据所述频率计算所述第一中间层数据编码后的平均码长;
根据所述平均码长计算所述第一中间层数据编码后的压缩率。
6.根据权利要求5所述的卷积神经网络模型中间层数据的处理方法,其特征在于,还包括:
遍历所述第一中间层数据,以获取所述第一中间层数据的数据特征;
根据所述数据特征确定混合位宽编码形式,所述混合位宽编码形式表示扩展所述编码数组,采用多组编码数组的形式对所述第一中间层数据执行编码;
通过所述混合位宽编码形式对所述第一中间层数据执行编码,得到压缩后数据。
7.一种卷积神经网络模型中间层数据的处理系统,其特征在于,包括:
数据获取模块:获取卷积神经网络模型中的第一中间层对输入数据进行处理所得的第一中间层数据;
位宽获取模块:获取所述第一中间层数据的实际位宽;
压缩模块:将所述第一中间层数据根据预设编码位宽参数执行转换,得到压缩后数据,其中,所述预设编码位宽参数的位宽小于所述实际位宽;
存储模块:存储所述压缩后数据。
8.根据权利要求7所述的卷积神经网络模型中间层数据的处理系统,其特征在于,压缩模块在执行将所述第一中间层数据根据预设编码位宽参数执行转换,得到压缩后数据的步骤,包括:
使用第一预设长度的短位宽表示所述第一中间层数据,和/或使用预设固定值与第二预设长度的长位宽表示所述第一中间层数据,所述第二预设长度大于所述第一预设长度;所述预设固定值为根据所述短位宽设置的固定值,所述长位宽小于所述实际位宽。
9.根据权利要求7所述的卷积神经网络模型中间层数据的处理系统,其特征在于,还包括离散余弦变换模块,所述离散余弦变换模块被配置为执行下述步骤:
对所述第一中间层数据执行分区块操作;
对分区块后的第一中间层数据执行离散余弦变换;
对离散余弦变换后的第一中间层数据执行量子化处理;
对量子化处理后的第一中间层数据执行混合位宽编码;
存储编码后的第一中间层数据。
10.根据权利要求7所述的卷积神经网络模型中间层数据的处理系统,其特征在于,还包括压缩率计算模块,所述压缩率计算模块被配置为执行下述步骤:
使用编码数组划分所述第一中间层数据;
计算所述编码数组所表示的数据范围;
获取所述编码数组表示的第一中间层数据出现的频率;
根据所述频率计算所述第一中间层数据编码后的平均码长;
根据所述平均码长计算所述第一中间层数据编码后的压缩率。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311211475.0A CN117408309A (zh) | 2023-09-19 | 2023-09-19 | 一种卷积神经网络模型中间层数据的处理方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311211475.0A CN117408309A (zh) | 2023-09-19 | 2023-09-19 | 一种卷积神经网络模型中间层数据的处理方法及系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117408309A true CN117408309A (zh) | 2024-01-16 |
Family
ID=89489912
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311211475.0A Pending CN117408309A (zh) | 2023-09-19 | 2023-09-19 | 一种卷积神经网络模型中间层数据的处理方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117408309A (zh) |
-
2023
- 2023-09-19 CN CN202311211475.0A patent/CN117408309A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107832837B (zh) | 一种基于压缩感知原理的卷积神经网络压缩方法及解压缩方法 | |
US6345123B1 (en) | Image encoding/decoding method, image encoder/decoder and image encoding/decoding program recording medium | |
US7522775B2 (en) | Image coding and decoding methods, image coding and decoding apparatuses, and recording media for image coding and decoding programs | |
CN115361559A (zh) | 图像编码方法、图像解码方法、装置以及存储介质 | |
CN118075472A (zh) | 一种基于loco-i算法和哈夫曼编码的频谱压缩方法 | |
CN111711511B (zh) | 频域数据有损压缩方法 | |
CN117408309A (zh) | 一种卷积神经网络模型中间层数据的处理方法及系统 | |
CN115102934B (zh) | 点云数据的解码方法、编码方法、装置、设备及存储介质 | |
Chang et al. | A Reversible Data Hiding Method for SMVQ Indices Based on Improved Locally Adaptive Coding. | |
CN110739974A (zh) | 数据压缩方法及装置和计算机可读存储介质 | |
WO2024142897A1 (ja) | 情報処理装置、及び情報処理方法 | |
Kumar et al. | Image Compression With Efficient Codebook Initialization Using LBG algorithm | |
Kaur et al. | IMAGE COMPRESSION USING DECISION TREE TECHNIQUE. | |
CN109302614B (zh) | 一种基于三阶张量自编码网络的视频压缩方法 | |
CN112200301A (zh) | 卷积计算装置及方法 | |
Kamatar et al. | Low Complexity Gray-scale Image Compression Method Using Index-Based Approach | |
CN118741118A (zh) | 图像解码和编码方法、装置、设备及存储介质 | |
Gaffara | Modification of a gray-level dynamic range based on a number of binary bit representation for image compression | |
Imtiaz | A Loss-less Image Compression Technique Using Divide and Conquer Strategy |
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 |