当前位置: 首页 > 专利查询>南京大学专利>正文

分块压缩编码方法、装置、计算机设备及可读存储介质制造方法及图纸

技术编号:31227781 阅读:17 留言:0更新日期:2021-12-08 09:37
本申请涉及数据压缩技术领域,公开了分块压缩编码方法、装置、计算机设备及可读存储介质。分块压缩编码方法包括获取原始数据集,并按照预设的数据长度,将原始数据集划分为多个数据块,然后获取任一数据块的标志数据及标志位宽,通过将每个数据块中的所有数据转换为位宽与所述标志位宽一致的二进制数,获取对应的多个二进制数据块,最后将每个标志位宽记入与之对应的所述二进制数据块的前端,获取原始数据集的压缩编码结果。利用上述分块压缩编码方法压缩得到的数据将占用较小内存,其压缩效果优于binary

【技术实现步骤摘要】
分块压缩编码方法、装置、计算机设备及可读存储介质


[0001]本申请涉及数据压缩
,尤其涉及分块压缩编码方法、装置、计算机设备及可读存储介质。

技术介绍

[0002]神经网络模型中存在大量的权重数据,这些权重数据都是以二进制格式存储在计算机中。目前,为了减少这些权重数据所需的存储空间,常使用压缩编码的方式,减少所有权重数据占用的二进制位宽,以减小最终所需的内存空间。
[0003]一种常见的压缩编码方式为二进制标记(binary-mask)压缩编码,其压缩编码过程中需要建立两张表格,分别为记录表格和数据表格,参见图1,图中的表1即为记录表格,表2为数据表格。在针对原始数据集进行压缩编码时,若原始数据集中的某一数据为0,则在表1的对应位置中记0;若不为0,则在表1的对应位置中记1,并同时将该数据记入表2中。所有数据记入完成后,表1中的每个数据只会是0或1,仅占用一个比特的位宽,而表2中数据的二进制位宽与原本所占用的位宽一致,并未得到压缩。因此,原始数据集中0的占比越大,表2中的数据就会越少,binary-mask压缩编码的压缩效果则越好。
[0004]但是,神经网络模型的权重数据中,有很多都是集中在0附近但不为0的数据,这些数据的特点是:数值小、占比高且不为0,这种情况下,若使用binary-mask压缩编码对这些数据进行压缩,其压缩效果将变差。

技术实现思路

[0005]为了解决因神经网络权重数据大多为集中在0附近但不为0的数据,从而导致使用binary-mask压缩编码的压缩效果较差的问题,本申请通过以下实施例公开了分块压缩编码方法、装置、计算机设备及可读存储介质。
[0006]本申请第一方面公开了一种分块压缩编码方法,所述方法包括:
[0007]获取原始数据集;
[0008]按照预设的数据长度,将所述原始数据集划分为多个数据块,任一所述数据块中至少包含两个数据;
[0009]获取任一所述数据块的标志数据及标志位宽,所述标志数据为所述数据块中所有数据在二进制格式下位宽最大的数据,所述标志位宽为所述标志数据在二进制格式下的位宽;
[0010]将每个所述数据块中的所有数据转换为位宽与所述标志位宽一致的带符号二进制数,获取对应的多个二进制数据块;
[0011]将每个所述标志位宽记入与之对应的所述二进制数据块的前端,获取所述原始数据集的压缩编码结果。
[0012]可选的,所述获取任一所述数据块的标志数据及标志位宽,包括:
[0013]对目标数据块中的所有数据进行预处理,所述预处理包括正数预处理及负数预处
理,其中,所述正数预处理用于对正数取绝对值,所述负数预处理用于对负数取绝对值后减一,所述目标数据块为任一所述数据块;
[0014]针对所述目标数据块中完成所述预处理的所有数据,提取最大值;
[0015]将所述最大值对应的未经所述预处理的原数据作为所述目标数据块的所述标志数据;
[0016]将所述标志数据在二进制格式下的位宽作为所述标志位宽。
[0017]可选的,所述按照预设的数据长度,将所述原始数据集划分为多个数据块,包括:
[0018]根据所述预设的数据长度,对所述原始数据集进行划分,获取多个所述数据块,其中,若划分所得的最后一个数据块的数据长度短于所述预设的数据长度,则对所述最后一个数据块进行补零操作。
[0019]本申请第二方面公开了一种分块压缩编码装置,所述装置应用于本申请第一方面所述的分块压缩编码方法,所述分块压缩编码装置包括:
[0020]数据集获取模块,用于获取原始数据集;
[0021]数据集划分模块,用于按照预设的数据长度,将所述原始数据集划分为多个数据块,任一所述数据块中至少包含两个数据;
[0022]标志数据获取模块,用于获取任一所述数据块的标志数据及标志位宽,所述标志数据为所述数据块中所有数据在二进制格式下位宽最大的数据,所述标志位宽为所述标志数据在二进制格式下的位宽;
[0023]二进制转换模块,用于将每个所述数据块中的所有数据转换为位宽与所述标志位宽一致的带符号二进制数,获取对应的多个二进制数据块;
[0024]压缩编码模块,用于将每个所述标志位宽记入与之对应的所述二进制数据块的前端,获取所述原始数据集的压缩编码结果。
[0025]可选的,所述标志数据获取模块包括:
[0026]预处理单元,用于对目标数据块中的所有数据进行预处理,所述预处理包括正数预处理及负数预处理,其中,所述正数预处理用于对正数取绝对值,所述负数预处理用于对负数取绝对值后减一,所述目标数据块为任一所述数据块;
[0027]最大值提取单元,用于针对所述目标数据块中完成所述预处理的所有数据,提取最大值;
[0028]标志数据获取单元,用于将所述最大值对应的未经所述预处理的原数据作为所述目标数据块的所述标志数据;
[0029]标志位宽获取单元,用于将所述标志数据在二进制格式下的位宽作为所述标志位宽。
[0030]可选的,所述数据集划分模块包括:
[0031]划分补零单元,用于根据所述预设的数据长度,对所述原始数据集进行划分,获取多个所述数据块,其中,若划分所得的最后一个数据块的数据长度短于所述预设的数据长度,则对所述最后一个数据块进行补零操作。
[0032]本申请第三方面公开了一种分块压缩编码方法,所述方法包括:
[0033]获取原始数据集;
[0034]按照预设的数据长度,将所述原始数据集划分为多个数据块,任一所述数据块中
至少包含两个数据;
[0035]获取任一所述数据块的标志数据及标志位宽,所述标志数据为所述数据块中所有数据在二进制格式下位宽最大的数据,所述标志位宽为所述标志数据在二进制格式下的位宽;
[0036]将每个所述数据块中的所有数据转换为位宽与所述标志位宽一致的带符号二进制数,获取对应的多个二进制数据块;
[0037]设置标记数据块;
[0038]依次将所有所述数据块的标志位宽及其对应的合并次数记入所述标记数据块中,其中,若某一所述数据块的标志位宽与相邻所述数据块的标志位宽皆不同,则该数据块的标志位宽对应的合并次数为零,若存在连续相邻数据块的标志位宽相同,则将所述连续相邻数据块的标志位宽合并记入所述标记数据块中,且该标志位宽对应的合并次数为所述连续相邻数据块的个数减一;
[0039]获取所述原始数据集的压缩编码结果,所述压缩编码结果包括多个所述二进制数据块以及一个所述标记数据块。
[0040]可选的,所述获取任一所述数据块的标志数据及标志位宽,包括:
[0041]对目标数据块中的所有数据进行预处理,所述预处理包括正数预处理及负数预处理,其中,所述正数预处理用于对正数取绝对值,所述负数预处理用于对负数取绝对值后减一,所述目标数据块为任一所述数据块;
[0042]针对所述目标数据块中完成所述预处理的所有数据,提取本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种分块压缩编码方法,其特征在于,所述方法包括:获取原始数据集;按照预设的数据长度,将所述原始数据集划分为多个数据块,任一所述数据块中至少包含两个数据;获取任一所述数据块的标志数据及标志位宽,所述标志数据为所述数据块中所有数据在二进制格式下位宽最大的数据,所述标志位宽为所述标志数据在二进制格式下的位宽;将每个所述数据块中的所有数据转换为位宽与所述标志位宽一致的带符号二进制数,获取对应的多个二进制数据块;将每个所述标志位宽记入与之对应的所述二进制数据块的前端,获取所述原始数据集的压缩编码结果。2.根据权利要求1所述的分块压缩编码方法,其特征在于,所述获取任一所述数据块的标志数据及标志位宽,包括:对目标数据块中的所有数据进行预处理,所述预处理包括正数预处理及负数预处理,其中,所述正数预处理用于对正数取绝对值,所述负数预处理用于对负数取绝对值后减一,所述目标数据块为任一所述数据块;针对所述目标数据块中完成所述预处理的所有数据,提取最大值;将所述最大值对应的未经所述预处理的原数据作为所述目标数据块的所述标志数据;将所述标志数据在二进制格式下的位宽作为所述标志位宽。3.根据权利要求1所述的分块压缩编码方法,其特征在于,所述按照预设的数据长度,将所述原始数据集划分为多个数据块,包括:根据所述预设的数据长度,对所述原始数据集进行划分,获取多个所述数据块,其中,若划分所得的最后一个数据块的数据长度短于所述预设的数据长度,则对所述最后一个数据块进行补零操作。4.一种分块压缩编码装置,其特征在于,所述装置应用于权利要求1-3任一项所述的分块压缩编码方法,所述分块压缩编码装置包括:数据集获取模块,用于获取原始数据集;数据集划分模块,用于按照预设的数据长度,将所述原始数据集划分为多个数据块,任一所述数据块中至少包含两个数据;标志数据获取模块,用于获取任一所述数据块的标志数据及标志位宽,所述标志数据为所述数据块中所有数据在二进制格式下位宽最大的数据,所述标志位宽为所述标志数据在二进制格式下的位宽;二进制转换模块,用于将每个所述数据块中的所有数据转换为位宽与所述标志位宽一致的带符号二进制数,获取对应的多个二进制数据块;压缩编码模块,用于将每个所述标志位宽记入与之对应的所述二进制数据块的前端,获取所述原始数据集的压缩编码结果。5.一种分块压缩编码方法,其特征在于,所述方法包括:获取原始数据集;按照预设的数据长度,将所述原始数据集划分为多个数据块,任一所述数据块中至少包含两个数据;
获取任一所述数据块的标志数据及标志位宽,所述标志数据为所述数据块中所有数据在二进制格式下位宽最大的数据,所述标志位宽为所述标志数据在二进制格式下的位宽;将每个所述数据块中的所有数据转换为位宽与所述标志位宽一致的带符号二进制数,获取对应的多个二进制数据块;设置标记数据块;依次将所有所述数据块的标志位宽及其对应的合并次数记入所述标记数据块中,其中,若某一所述数据块的标志位宽与相邻所述数据块的标志位宽皆不同,则该数据块的标志位宽对应的合并次...

【专利技术属性】
技术研发人员:杜力杜源朱俊翰
申请(专利权)人:南京大学
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1