CN112101548A - 数据压缩方法及装置、数据解压方法及装置、电子设备 - Google Patents
数据压缩方法及装置、数据解压方法及装置、电子设备 Download PDFInfo
- Publication number
- CN112101548A CN112101548A CN202011000571.7A CN202011000571A CN112101548A CN 112101548 A CN112101548 A CN 112101548A CN 202011000571 A CN202011000571 A CN 202011000571A CN 112101548 A CN112101548 A CN 112101548A
- Authority
- CN
- China
- Prior art keywords
- data
- numerical value
- compressed
- value
- values
- 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.)
- Withdrawn
Links
- 238000000034 method Methods 0.000 title claims abstract description 79
- 238000013144 data compression Methods 0.000 title claims abstract description 44
- 230000006837 decompression Effects 0.000 title claims abstract description 37
- 238000003062 neural network model Methods 0.000 claims description 41
- 238000007906 compression Methods 0.000 claims description 18
- 230000006835 compression Effects 0.000 claims description 18
- 238000012163 sequencing technique Methods 0.000 claims description 6
- 238000004590 computer program Methods 0.000 claims description 3
- 230000009286 beneficial effect Effects 0.000 abstract description 2
- 238000013528 artificial neural network Methods 0.000 description 16
- 238000004422 calculation algorithm Methods 0.000 description 12
- 230000008569 process Effects 0.000 description 9
- 238000004364 calculation method Methods 0.000 description 7
- 238000010586 diagram Methods 0.000 description 6
- 230000000694 effects Effects 0.000 description 4
- 230000006870 function Effects 0.000 description 4
- 238000013500 data storage Methods 0.000 description 3
- 238000001514 detection method Methods 0.000 description 3
- 230000003993 interaction Effects 0.000 description 2
- 238000013138 pruning Methods 0.000 description 2
- 238000013139 quantization Methods 0.000 description 2
- 230000004075 alteration Effects 0.000 description 1
- 238000013473 artificial intelligence Methods 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 230000005055 memory storage Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000002441 reversible effect Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
Images
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/08—Learning methods
- G06N3/082—Learning methods modifying the architecture, e.g. adding, deleting or silencing nodes or connections
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/21—Design or setup of recognition systems or techniques; Extraction of features in feature space; Blind source separation
- G06F18/214—Generating training patterns; Bootstrap methods, e.g. bagging or boosting
-
- 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/06—Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
- G06N3/063—Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V10/00—Arrangements for image or video recognition or understanding
- G06V10/94—Hardware or software architectures specially adapted for image or video understanding
- G06V10/955—Hardware or software architectures specially adapted for image or video understanding using specific electronic processors
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Life Sciences & Earth Sciences (AREA)
- General Physics & Mathematics (AREA)
- Artificial Intelligence (AREA)
- Health & Medical Sciences (AREA)
- Evolutionary Computation (AREA)
- Biomedical Technology (AREA)
- General Engineering & Computer Science (AREA)
- Biophysics (AREA)
- Software Systems (AREA)
- Computational Linguistics (AREA)
- General Health & Medical Sciences (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- Mathematical Physics (AREA)
- Multimedia (AREA)
- Evolutionary Biology (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Bioinformatics & Computational Biology (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Neurology (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
Abstract
本申请提出了一种数据压缩方法及装置、数据解压方法及装置、电子设备,属于数据处理技术领域,其中,数据压缩方法包括:获取待压缩数据;基于待压缩数据中所包含的数值种类和每种数值的出现频率,对待压缩数据中的数值进行编码,得到每种数值对应的编码值;数值对应的编码值的长度与数值的出现频率负相关;基于数值与编码值的对应关系,对待压缩数据中的数值进行压缩处理。本申请有助于降低电子设备存储/运行数据的难度以及硬件成本限制。
Description
技术领域
本申请属于数据处理技术领域,具体涉及数据压缩方法及装置、数据解压方法及装置、电子设备。
背景技术
电子设备自身的硬件资源通常对限定其对数据的处理能力,尤其对于诸如神经网络模型等需要进行大量运算的数据,会占用诸如手机、电脑等物联网嵌入式设备的硬件资源,从而导致将神经网络模型移植到硬件资源受限的物联网嵌入式设备上存储及运行的难度较高,对运行数据的电子设备有所限制。
发明内容
为至少在一定程度上克服相关技术中存在的问题,本申请提供数据压缩方法及装置、数据解压方法及装置、电子设备,能够有效实现无损数据压缩及解压缩,有助于降低电子设备运行数据的难度以及硬件成本限制。
为实现以上目的,本申请采用如下技术方案:
第一方面,本申请提供了一种数据压缩方法,包括:获取待压缩数据;基于所述待压缩数据中所包含的数值种类和每种数值的出现频率,对所述待压缩数据中的数值进行编码,得到每种数值对应的编码值;其中,数值对应的编码值的长度与数值的出现频率负相关;基于数值与编码值的对应关系,对所述待压缩数据中的数值进行压缩处理。
进一步地,所述获取待压缩数据的步骤,包括:获取训练好的神经网络模型;提取所述神经网络模型的权重参数;将提取出的所述权重参数作为待压缩数据。
进一步地,所述基于所述待压缩数据中所包含的数值种类和每种数值的出现频率,对所述待压缩数据中的数值进行编码的步骤,包括:基于所述待压缩数据中所包含的数值种类和每种数值的出现频率,构建树形结构;对于所述待压缩数据中的每种数值,基于该数值在所述树形结构中的位置对该数值进行编码。
进一步地,所述基于所述待压缩数据中所包含的数值种类和每种数值的出现频率,构建树形结构的步骤,包括:基于所述待压缩数据中所包含的数值种类和每种数值的出现频率,构成二叉树集合;其中,每棵二叉树对应一种数值的出现频率,且每棵二叉树当前仅包括以出现频率表征的根结点,所述根结点的左右子树当前为空;对所述二叉树集合重复执行如下操作,直至所述二叉树集合中仅有一棵树为止;其中,所述操作包括:按照每棵二叉树的根结点的出现频率的大小,对所述二叉树集合中的二叉树进行依次排序,将出现频率最小的两棵相邻的二叉树分别作为左子树和右子树,并构建一棵新的二叉树;其中,所述新的二叉树对应的出现频率为所述左子树对应的出现频率和所述右子树对应的出现频率的和值;从所述二叉树集合中删除所述出现频率最小的两棵相邻的二叉树,并将所述新的二叉树加入至所述二叉树集合中。
进一步地,所述树形结构为二叉树;所述基于该数值在所述树形结构中的位置对该数值进行编码的步骤,包括:设置所述树形结构从根结点起至叶子结点的路径中每个分支的赋值,其中,所述路径中所有左分支的赋值均为第一值,所有右分支的赋值均为第二值;基于所述树形结构的根结点至该数值在所述树形结构中对应的结点之间的路径的分支对应的赋值,对该数值进行编码。
第二方面,本申请提供了一种数据解压方法,包括:获取待解压数据;所述待解压数据通过编码值表征,且所述待解压数据携带有数值与编码值的对应关系;其中,所述待解压数据是基于所述对应关系将待压缩数据中的数值进行压缩处理得到的,所述数值对应的编码值的长度与所述数值的出现频率负相关;基于所述对应关系,对所述待解压数据中的编码值进行解压处理。
进一步地,所述数值为神经网络模型的权重参数;所述方法还包括:基于解压后所得的神经网络模型的权重参数,运行所述神经网络模型。
第三方面,本申请提供一种数据压缩装置,包括:第一获取模块,用于获取待压缩数据;编码模块,用于基于所述待压缩数据中所包含的数值种类和每种数值的出现频率,对所述待压缩数据中的数值进行编码,得到每种数值对应的编码值;其中,数值对应的编码值的长度与数值的出现频率负相关;压缩模块,用于基于数值与编码值的对应关系,对所述待压缩数据中的数值进行压缩处理。
第四方面,本申请提供一种数据解压装置,包括:第二获取模块,用于获取待解压数据;所述待解压数据通过编码值表征,且所述待解压数据携带有数值与编码值的对应关系;其中,所述待解压数据是基于所述对应关系将待压缩数据中的数值进行压缩处理得到的,所述数值对应的编码值的长度与所述数值的出现频率负相关;解压模块,用于基于所述对应关系,对所述待解压数据中的编码值进行解压处理。
第五方面,本申请提供一种电子设备,包括:处理器和存储装置;所述存储装置上存储有计算机程序,所述计算机程序在被所述处理器运行时执行如第一方面任一项所述的方法,或者,执行如第二方面任一项所述的方法。
本申请提供的数据压缩方法及装置,能够基于待压缩数据中所包含的数值种类和每种数值的出现频率,对待压缩数据中的数值进行编码,进而基于数值与编码值的对应关系,对待压缩数据中的数值进行压缩处理。其中,数值对应的编码值的长度与数值的出现频率负相关。这种数据压缩方法基于数值与编码值(基于数值的出现频率进行编码得到的)的对应关系进行编码压缩,一方面是无损压缩,另一方面数值对应的编码值的长度与数值的出现频率负相关,能够使数据得到大幅压缩,综合保障了数据压缩效果。通过上述数据压缩方式,有助于降低电子设备存储/运行数据的难度以及硬件成本限制。
本申请提供的数据解压方法及装置,能够基于待解压数据携带的数值与编码值的对应关系对待解压数据中的编码值进行解压处理;其中,待解压数据是基于对应关系将待压缩数据中的数值进行压缩处理得到的,数值对应的编码值的长度与数值的出现频率负相关。电子设备在运行数据时只需通过上述方式进行无损解压,可有效降低电子设备存储/运行数据的难度以及硬件成本限制。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本申请。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是根据一示例性实施例示出的一种数据压缩方法的流程图;
图2是根据一示例性实施例示出一种树形结构的示意图;
图3是根据一示例性实施例示出的一种数据解压方法的流程图;
图4是根据一示例性实施例示出的服务器端和边缘端的信息交互示意图;
图5是根据一示例性实施例示出的一种数据压缩装置的结构框图;
图6是根据一示例性实施例示出的一种数据解压装置的结构框图。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚,下面将对本申请的技术方案进行详细的描述。显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所得到的所有其它实施方式,都属于本申请所保护的范围。
以神经网络模型为深度神经网络为例,深度神经网络广泛应用于诸如计算机视觉、语音识别、自然语言等人工智能领域,但深度神经网络通常需要巨大的计算开销和内存存储,阻碍了在电子设备的有限硬件资源的环境下的普及使用。虽然深度神经网络显著的高检测精度使其在物联网领域有很大的应用潜力,但是深度神经网络优异的表现主要依赖于其百万甚至上亿的参数量及诸如GPU(Graphics Processing Unit,图形处理器)的高计算能力,而将深度神经网络移植到诸如手机、平板电脑等物联网嵌入式设备等硬件资源受限的平台上主要有以下难点:1)模型大,如神经网络模型AlexNet有240MB,VGG-16模型大小为552MB,都会占用设备较大的存储空间;2)计算量大,运行深度神经网络需要大量的存储访问和点积运算,对设备的硬件资源成本要求较高。因此,对于资源有限的嵌入式设备而言,减少深度神经网络的存储和计算成本显得至关重要。基于此,发明人首先提出了一种数据压缩方法及数据解压方法,通过数据压缩方法来降低诸如手机等物联网嵌入设备对于诸如深度神经网络等参数量大、计算量大的数据的存储/运行难度,手机等物联网嵌入设备在运行数据时,执行相应的数据解压方法即可。
首先参见图1所示的本申请提供的一种数据压缩方法的流程图,主要包括步骤S102~步骤S106:
步骤S102,获取待压缩数据。在实际应用中,待压缩数据可以是任意数据,本实施例对此不进行限制。在一种实施方式中,待压缩数据可以是神经网络模型的相关数据,诸如为神经网络模型的权重参数。
步骤S104,基于待压缩数据中所包含的数值种类和每种数值的出现频率,对待压缩数据中的数值进行编码,得到每种数值对应的编码值;其中,数值对应的编码值的长度与数值的出现频率负相关。也即,每种数值对应一个编码值,编码值诸如可以是由0和1组成的一串编码,数值的出现频率越大,其对应的编码值长度越短,数值的出现频率越小,其对应的编码值长度越长。可以理解为,通过使用变长编码,对待编码的所有数据进行频率统计,对频率高的数值编短码,对频率低的数值编长码。
步骤S106,基于数值与编码值的对应关系,对待压缩数据中的数值进行压缩处理。也即,将待压缩数据中的每个数值都对应转换为所占存储空间更小的编码值,从而达到了数据压缩效果。
上述数据压缩方法基于数值与编码值(基于数值的出现频率进行编码得到的)的对应关系进行编码压缩,一方面是无损压缩,另一方面数值对应的编码值的长度与数值的出现频率负相关,能够使数据得到大幅压缩,综合保障了数据压缩效果。通过上述数据压缩方式,有助于降低电子设备存储/运行数据的难度以及硬件成本限制。
现有技术中虽然提供了诸如低秩近似、参数量化、剪枝与稀疏约束、二值网络等数据压缩方法,但是均为有损压缩,容易影响数据精度,尤其在数据为神经网络模型时,会进一步影响神经网络运行结果的精度,而本实施例提供的上述数据压缩方法是无损压缩,不会影响神经网络运行结果的精度。
本实施例提供的数据压缩方法可以较好地应用于神经网络模型的压缩处理中,在获取待压缩数据时,可以首先获取训练好的神经网络模型;然后提取神经网络模型的权重参数;最后将提取出的权重参数作为待压缩数据。在实际应用中,神经网络模型诸如可以是用于物体检测模型或者物体识别模型等,在此对神经网络模型的功能不进行限定。压缩后的神经网络模型可以有效降低诸如手机等物联网嵌入式设备的SDRAM(synchronousdynamic random-access memory,同步动态随机存取内存)和flash存储器等存储介质的成本。
在一种实施方式中,上述步骤S104(也即,基于待压缩数据中所包含的数值种类和每种数值的出现频率,对待压缩数据中的数值进行编码)可以参照如下步骤一和步骤二实现:
步骤一:基于待压缩数据中所包含的数值种类和每种数值的出现频率,构建树形结构。
诸如,在构建树形结构时,可以基于待压缩数据中所包含的数值种类和每种数值的出现频率,构成二叉树集合;其中,每棵二叉树对应一种数值的出现频率,且每棵二叉树当前仅包括以出现频率表征的根结点,根结点的左右子树当前为空;然后对二叉树集合重复执行如下操作,直至二叉树集合中仅有一棵树为止。
一种具体的实施方式中,上述操作具体包括:按照每棵二叉树的根结点的出现频率的大小,对二叉树集合中的二叉树进行依次排序(诸如将出现频率从小到大排序或者从大到小排序),将出现频率最小的两棵相邻的二叉树分别作为左子树和右子树,并构建一棵新的二叉树;其中,新的二叉树对应的出现频率为左子树对应的出现频率和右子树对应的出现频率的和值;从二叉树集合中删除出现频率最小的两棵相邻的二叉树,并将新的二叉树加入至二叉树集合中。
步骤二:对于待压缩数据中的每种数值,基于该数值在树形结构中的位置对该数值进行编码。
在一种简便的可实施方式中,树形结构为二叉树,基于该数值在树形结构中的位置对该数值进行编码时,可以首先设置树形结构从根结点起至叶子结点的路径中每个分支的赋值,然后基于树形结构的根结点至该数值在树形结构中对应的结点之间的路径的分支对应的赋值,对该数值进行编码。其中,路径中所有左分支的赋值均为第一值,所有右分支的赋值均为第二值;诸如,第一值为0,第二值为1;当然,以上仅为示例,实际应用中还可以采用第一值为1,第二值为0,或者采用其它值实现,在此不进行限制。在编码时,诸如可以从根结点起至叶子结点的方向将途径的各分支对应的赋值进行编码。
通过上述步骤一和步骤二实现的数据压缩方法所用到的编码方式也可称为树形编码算法。
为便于理解,本实施例给出了上述步骤一和步骤二的一种具体示例,参照如下步骤a~步骤e实现:
步骤a:对于待压缩数据所包含的i个数字的出现频率构成i棵二叉树的集合,其中,每棵树的初值为只有一个频率的根结点,其左右子树为空。
为便于理解,简单示例如下:假设待压缩的神经网络模型的权重文件(包含有神经网络模型的权重参数)为120个字节数据组成,为简化说明,假设这些数据只有6种数值分别是:0,0x64,0x78,0x1D,0x3C,0x1E,频率分别为10,11,30,15,2,53,具体可参照表1所示的数值与出现频率的对应关系:
表1
数据 | 0 | 0x64 | 0x78 | 0x1D | 0x3C | 0x1E |
出现频率 | 10 | 11 | 30 | 15 | 2 | 32 |
步骤b:使用快速排序算法对其进行从小到大排序得到,在中选取两棵根结点之频率为最小的树作为左、右子树构成一棵新的二叉树,该新二叉树的根结点的频率为其左、右子树的根结点频率之和。
上述6种数值按照频率有小到大的顺序进行排序后,所得到的的数值与出现频率的排序顺序参见表2所示:
表2
数据 | 0x3C | 0 | 0x64 | 0x1D | 0x78 | 0x1E |
出现频率 | 2 | 10 | 11 | 15 | 30 | 32 |
从表2中可见,出现频率最小的两棵树为0x3C和0,其可以构成一棵新的树RC0,对应的出现频率为12=2+10。
步骤c:从中删除这两棵较小的树,同时将新得到的二叉树RC0加到中。
从表2中删除0x3C和0,将RC0加入表2中并重新进行出现频率的大小排序,可参照下表3实现:
表3
数据 | 0x64 | RC0 | 0x1D | 0x78 | 0x1E |
出现频率 | 11 | 12 | 15 | 30 | 32 |
步骤d:重复步骤b和步骤c,直到中只有一棵树。
同理,将出现频率最小的两棵树0x64和RC0构成新的一棵树RC1,对应的出现频率为23=11+12。然后从O中删除0x64和RC0,加入RC1,得到下表4:
表4
数据 | 0x1D | RC1 | 0x78 | 0x1E |
出现频率 | 15 | 23 | 30 | 32 |
然后将频率最小的两棵树0x1D和RC1构成新的一棵树RC2,对应的出现频率为38=15+23。然后从O中删除0x1D和RC1,加入RC2,得到下表5:
表5
数据 | 0x78 | 0x1E | RC2 |
出现频率 | 30 | 32 | 38 |
然后将频率最小的两棵树0x78和0x1E构成新的一棵树RC3,对应的出现频率为62=30+32。然后从O中删除0x78和0x1E,加入RC3,得到下表6:
表6
数据 | RC2 | RC3 |
出现频率 | 38 | 62 |
然后将频率最小的两棵树RC2和RC3构成新的一棵树RC4,对应的出现频率为100=38+62。然后从O中删除RC2和RC3,加入RC4,得到下表7:
表7
数据 | RC4 |
出现频率 | 100 |
基于前述步骤,可以构建的树形结构参见图2所示。
步骤e:基于最优树,将根结点起至每个叶子结点的路径上的左分支赋值0,右分支赋值1,并从根到叶子方向形成该叶子结点的编码,从而获得数值与编码值的对应关系。在实际应用中,还可以记录最长和最短编码长度。
如图2所示的树形结构,根结点为RC4,从根到叶子方向形成叶子结点的编码,则0的编码为0111,共4bit;0x3c的编码为0110,共4bit;0x64的编码为010,共3bit;0x1D的编码为00,共2bit;0x1E的编码为11,共2bit;0x78编码为10,共2bit;其中,最长码为4bit,最短码为2bit。
以上仅为便于理解的示例,不应当作为限制。
可以理解的是,树形压缩算法(也可称为树形编码算法)与待压缩的数据的具体值没有关系。诸如,一个权重参数为10bit,则3个权重参数共30bit,共占用4个字节空间。神经网络的参数用定点数表示,在-511到512之间,假设待压缩的权重参数占用的空间大小为102400字节,则树形编码算法对待压缩权重进行以字节为单位的处理,则i=102400,且每个字节的数据范围是0~255的整数。树形压缩算法也可以较好利用神经网络的权重参数的特点进行压缩,其中,权重参数的特点诸如为:卷积核的参数在训练阶段被标准化到浮点数范围为-2.0到2.0之间,在编译器转换权重阶段,将权重浮点数转换为定点小数,范围为-511到512之间。所用的字节数据与神经网络模型的权重参数相关,为便于理解,假设3*3的卷积核的数据为2,5,8,9,14,28。因为每个卷积核数据(权重)占用10bit,则这些数据只需要占用两个字节的空间,在内存中的数据则为:第一个字节数据:2|(5<<10)|(8<<20),第二个字节数据为:9|(14<<10)|(28<<20)。依次类推即可得到所需的字节数据,并进一步计算字节数据的频率。
对应于前述数据压缩方法,本实施例进一步提供了一种数据解压方法,诸如可参照图3所示的数据解压方法的流程图,主要包括步骤S302~步骤S304:
步骤S302:获取待解压数据;待解压数据通过编码值表征,且待解压数据携带有数值与编码值的对应关系;其中,待解压数据是基于对应关系将待压缩数据中的数值进行压缩处理得到的,数值对应的编码值的长度与数值的出现频率负相关;在一种实施方式中,数值可以为神经网络模型的权重参数。
步骤S304:基于对应关系,对待解压数据中的编码值进行解压处理。
电子设备在运行数据时只需通过上述方式进行无损解压,可有效降低电子设备存储/运行数据的难度以及硬件成本限制。上述数据解压过程又可认为是数据压缩过程的逆过程。
在数值为神经网络模型的权重参数时,上述方法还包括基于解压后所得的神经网络模型的权重参数,运行神经网络模型。诸如,神经网络模型为物体识别模型时,可以通过设备硬件分别读取每层经过前述数据压缩方法压缩过的神经网络权重参数,通过上述数值与编码值的对应关系进行解压缩。其中,数值与编码值的对应关系已存储在神经网络模型中。
在实际应用中,执行数据压缩方法的设备和数据解压方法的设备可以为不同设备,诸如,进行数据压缩方法的设备为服务器端,进行数据解压方法的设备为手机、平板电脑等物联网嵌入式边缘端(也可简称为边缘端或解码端),解码端用于从服务器端获取压缩后的数据进行解码及基于解码后的数据进行后续应用。诸如,在运行神经网络模型时,解码端硬件仅对当前网络层需要的模型数据进行解码以及应用解码后的数据进行算子计算,其中,解码过程主要采用硬件即可实现,相当于是硬解码,可以无需通过软件解码。
为便于理解,本实施例给出一种服务器端和边缘端的信息交互示意图,参见图4所示,服务器端主要执行步骤S402和步骤S404,边缘端主要执行步骤S406、步骤S408和步骤S410。
步骤S402:对初始的神经网络模型进行训练,得到物体识别网络模型。当然,在实际应用中,还可以是其它神经网络模型,诸如物体检测模型等,在此不进行限定。
步骤S404:采用树形压缩算法对物体识别网络模型中的权重参数进行压缩。树形压缩算法即参照前述数据压缩方法实现,在实际应用中,通过这种方式可以对神经网络模型中的每层权重均进行压缩,可大幅有效地压缩神经网络模型。
步骤S406:获取经服务器端压缩后的物体识别网络模型。
步骤S408:采用树形解压缩算法对物体识别网络模型中的权重参数进行解压。树形解压缩算法即参照前述数据解压方法实现,为树形压缩算法的逆过程。
步骤S410:采用解压后的物体识别网络模型进行物体识别。
通过上述方式,神经网络模型的权重参数(也可称为权值)大小大幅减少,可以由NPU(Neural network Processing Unit,嵌入式神经网络处理器)在sram bank中直接计算,而不需要CPU(Central Processing Unit,中央处理器)将大量数据从flash中拷贝到动态存储器并进行计算,减少sram bank到存储器以及存储器到sram bank的拷贝次数。其中,NPU计算卷积的效率远远大于CPU的效率,因此还可以进一步提升神经网络模型的运行速率。
边缘端在flash中存储的是经服务器端训练并压缩后的网络模型,根据程序的局部性原理,在识别流程中,边缘端的NPU在每层的算子计算中,不需每次完整的将网络模型数据进行解压并存放到sram bank中,只需要解压部分数据用于NPU计算即可。
本实施例提供的上述数据压缩方法能够较好的实现数据压缩以及缩短计算量,降低了对设备的硬件要求,而且相比于诸如低秩近似、参数量化、剪枝与稀疏约束、二值网络等常见的压缩算法,本实施例提供的上述方法为无损压缩,还可以有效保障数据精度。
对应于前述数据压缩方法,本实施例进一步提供了一种数据压缩装置,参见图5所示,主要包括如下模块:
第一获取模块502,用于获取待压缩数据;
编码模块504,用于基于待压缩数据中所包含的数值种类和每种数值的出现频率,对待压缩数据中的数值进行编码,得到每种数值对应的编码值;其中,数值对应的编码值的长度与数值的出现频率负相关;
压缩模块506,用于基于数值与编码值的对应关系,对待压缩数据中的数值进行压缩处理。
上述数据压缩装置基于数值与编码值(基于数值的出现频率进行编码得到的)的对应关系进行编码压缩,一方面是无损压缩,另一方面数值对应的编码值的长度与数值的出现频率负相关,能够使数据得到大幅压缩,综合保障了数据压缩效果。通过上述数据压缩方式,有助于降低电子设备存储/运行数据的难度以及硬件成本限制。
在一种实施方式中,第一获取模块502进一步用于:获取训练好的神经网络模型;提取神经网络模型的权重参数;将提取出的权重参数作为待压缩数据。
在一种实施方式中,编码模块504进一步用于:基于待压缩数据中所包含的数值种类和每种数值的出现频率,构建树形结构;对于待压缩数据中的每种数值,基于该数值在树形结构中的位置对该数值进行编码。
在一种具体的实施方式中,编码模块504进一步用于:基于待压缩数据中所包含的数值种类和每种数值的出现频率,构成二叉树集合;其中,每棵二叉树对应一种数值的出现频率,且每棵二叉树当前仅包括以出现频率表征的根结点,根结点的左右子树当前为空;对二叉树集合重复执行如下操作,直至二叉树集合中仅有一棵树为止;
其中,操作包括:按照每棵二叉树的根结点的出现频率的大小,对二叉树集合中的二叉树进行依次排序,将出现频率最小的两棵相邻的二叉树分别作为左子树和右子树,并构建一棵新的二叉树;其中,新的二叉树对应的出现频率为左子树对应的出现频率和右子树对应的出现频率的和值;从二叉树集合中删除出现频率最小的两棵相邻的二叉树,并将新的二叉树加入至二叉树集合中。
在一种具体的实施方式中,树形结构为二叉树;编码模块504进一步用于:设置树形结构从根结点起至叶子结点的路径中每个分支的赋值,其中,路径中所有左分支的赋值均为第一值,所有右分支的赋值均为第二值;基于树形结构的根结点至该数值在树形结构中对应的结点之间的路径的分支对应的赋值,对该数值进行编码。
对应于前述数据解压方法,本实施例进一步提供了一种数据解压装置,参见图6所示,主要包括如下模块:
第二获取模块602,用于获取待解压数据;待解压数据通过编码值表征,且待解压数据携带有数值与编码值的对应关系;其中,待解压数据是基于对应关系将待压缩数据中的数值进行压缩处理得到的,数值对应的编码值的长度与数值的出现频率负相关;
解压模块604,用于基于对应关系,对待解压数据中的编码值进行解压处理。
电子设备在运行数据时只需通过上述装置进行无损解压,可有效降低电子设备存储/运行数据的难度以及硬件成本限制。
进一步,本实施例提供了一种电子设备,包括:处理器和存储装置;存储装置上存储有计算机程序,计算机程序在被处理器运行时执行前述数据压缩方法,或者,执行前述数据解压方法。在实际应用中,执行数据压缩方法的电子设备诸如可以是服务器,执行数据解压方法的电子设备诸如可以是手机、电脑等物联网嵌入式设备(也可称为边缘端设备),能够有效减少边缘端设备的硬件成本,加快边缘端设备处理数据的速度,提高用户体验。
可以理解的是,上述各实施例中相同或相似部分可以相互参考,在一些实施例中未详细说明的内容可以参见其他实施例中相同或相似的内容。
需要说明的是,在本申请的描述中,术语“第一”、“第二”等仅用于描述目的,而不能理解为指示或暗示相对重要性。此外,在本申请的描述中,除非另有说明,“多个”、“多”的含义是指至少两个。
应该理解,当元件被称为“固定于”或“设置于”另一个元件,它可以直接在另一个元件上或者可能同时存在居中元件;当一个元件被称为“连接”另一个元件,它可以是直接连接到另一个元件或者可能同时存在居中元件,此外,这里使用的“连接”可以包括无线连接;使用的措辞“和/或”包括一个或更多个相关联的列出项的任一单元和全部组合。
流程图中或在此以其他方式描述的任何过程或方法描述可以被理解为:表示包括一个或更多个用于实现特定逻辑功能或过程的步骤的可执行指令的代码的模块、片段或部分,并且本申请的优选实施方式的范围包括另外的实现,其中可以不按所示出或讨论的顺序,包括根据所涉及的功能按基本同时的方式或按相反的顺序,来执行功能,这应被本申请的实施例所属技术领域的技术人员所理解。
应当理解,本申请的各部分可以用硬件、软件、固件或它们的组合来实现。在上述实施方式中,多个步骤或方法可以用存储在存储器中且由合适的指令执行***执行的软件或固件来实现。例如,如果用硬件来实现,和在另一实施方式中一样,可用本领域公知的下列技术中的任一项或他们的组合来实现:具有用于对数据信号实现逻辑功能的逻辑门电路的离散逻辑电路,具有合适的组合逻辑门电路的专用集成电路,可编程门阵列(PGA),现场可编程门阵列(FPGA)等。
本技术领域的普通技术人员可以理解实现上述实施例方法携带的全部或部分步骤是可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,该程序在执行时,包括方法实施例的步骤之一或其组合。
此外,在本申请各个实施例中的各功能单元可以集成在一个处理模块中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。所述集成的模块如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。
上述提到的存储介质可以是只读存储器,磁盘或光盘等。
在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本申请的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不一定指的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任何的一个或多个实施例或示例中以合适的方式结合。
尽管上面已经示出和描述了本申请的实施例,可以理解的是,上述实施例是示例性的,不能理解为对本申请的限制,本领域的普通技术人员在本申请的范围内可以对上述实施例进行变化、修改、替换和变型。
Claims (10)
1.一种数据压缩方法,其特征在于,包括:
获取待压缩数据;
基于所述待压缩数据中所包含的数值种类和每种数值的出现频率,对所述待压缩数据中的数值进行编码,得到每种数值对应的编码值;其中,数值对应的编码值的长度与数值的出现频率负相关;
基于数值与编码值的对应关系,对所述待压缩数据中的数值进行压缩处理。
2.根据权利要求1所述的方法,其特征在于,所述获取待压缩数据的步骤,包括:
获取训练好的神经网络模型;
提取所述神经网络模型的权重参数;
将提取出的所述权重参数作为待压缩数据。
3.根据权利要求1或2所述的方法,其特征在于,所述基于所述待压缩数据中所包含的数值种类和每种数值的出现频率,对所述待压缩数据中的数值进行编码的步骤,包括:
基于所述待压缩数据中所包含的数值种类和每种数值的出现频率,构建树形结构;
对于所述待压缩数据中的每种数值,基于该数值在所述树形结构中的位置对该数值进行编码。
4.根据权利要求3所述的方法,其特征在于,所述基于所述待压缩数据中所包含的数值种类和每种数值的出现频率,构建树形结构的步骤,包括:
基于所述待压缩数据中所包含的数值种类和每种数值的出现频率,构成二叉树集合;其中,每棵二叉树对应一种数值的出现频率,且每棵二叉树当前仅包括以出现频率表征的根结点,所述根结点的左右子树当前为空;
对所述二叉树集合重复执行如下操作,直至所述二叉树集合中仅有一棵树为止;
其中,所述操作包括:按照每棵二叉树的根结点的出现频率的大小,对所述二叉树集合中的二叉树进行依次排序,将出现频率最小的两棵相邻的二叉树分别作为左子树和右子树,并构建一棵新的二叉树;其中,所述新的二叉树对应的出现频率为所述左子树对应的出现频率和所述右子树对应的出现频率的和值;从所述二叉树集合中删除所述出现频率最小的两棵相邻的二叉树,并将所述新的二叉树加入至所述二叉树集合中。
5.根据权利要求3所述的方法,其特征在于,所述树形结构为二叉树;所述基于该数值在所述树形结构中的位置对该数值进行编码的步骤,包括:
设置所述树形结构从根结点起至叶子结点的路径中每个分支的赋值,其中,所述路径中所有左分支的赋值均为第一值,所有右分支的赋值均为第二值;
基于所述树形结构的根结点至该数值在所述树形结构中对应的结点之间的路径的分支对应的赋值,对该数值进行编码。
6.一种数据解压方法,其特征在于,包括:
获取待解压数据;所述待解压数据通过编码值表征,且所述待解压数据携带有数值与编码值的对应关系;其中,所述待解压数据是基于所述对应关系将待压缩数据中的数值进行压缩处理得到的,所述数值对应的编码值的长度与所述数值的出现频率负相关;
基于所述对应关系,对所述待解压数据中的编码值进行解压处理。
7.根据权利要求6所述的方法,其特征在于,所述数值为神经网络模型的权重参数;
所述方法还包括:
基于解压后所得的神经网络模型的权重参数,运行所述神经网络模型。
8.一种数据压缩装置,其特征在于,包括:
第一获取模块,用于获取待压缩数据;
编码模块,用于基于所述待压缩数据中所包含的数值种类和每种数值的出现频率,对所述待压缩数据中的数值进行编码,得到每种数值对应的编码值;其中,数值对应的编码值的长度与数值的出现频率负相关;
压缩模块,用于基于数值与编码值的对应关系,对所述待压缩数据中的数值进行压缩处理。
9.一种数据解压装置,其特征在于,包括:
第二获取模块,用于获取待解压数据;所述待解压数据通过编码值表征,且所述待解压数据携带有数值与编码值的对应关系;其中,所述待解压数据是基于所述对应关系将待压缩数据中的数值进行压缩处理得到的,所述数值对应的编码值的长度与所述数值的出现频率负相关;
解压模块,用于基于所述对应关系,对所述待解压数据中的编码值进行解压处理。
10.一种电子设备,其特征在于,包括:处理器和存储装置;
所述存储装置上存储有计算机程序,所述计算机程序在被所述处理器运行时执行如权利要求1至5任一项所述的方法,或者,执行如权利要求6至7任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011000571.7A CN112101548A (zh) | 2020-09-22 | 2020-09-22 | 数据压缩方法及装置、数据解压方法及装置、电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011000571.7A CN112101548A (zh) | 2020-09-22 | 2020-09-22 | 数据压缩方法及装置、数据解压方法及装置、电子设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN112101548A true CN112101548A (zh) | 2020-12-18 |
Family
ID=73754850
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011000571.7A Withdrawn CN112101548A (zh) | 2020-09-22 | 2020-09-22 | 数据压缩方法及装置、数据解压方法及装置、电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112101548A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114723033A (zh) * | 2022-06-10 | 2022-07-08 | 成都登临科技有限公司 | 数据处理方法、装置、ai芯片、电子设备及存储介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103379136A (zh) * | 2012-04-17 | 2013-10-30 | ***通信集团公司 | 一种日志采集数据压缩方法、解压缩方法及装置 |
CN104283567A (zh) * | 2013-07-02 | 2015-01-14 | 北京四维图新科技股份有限公司 | 一种名称数据的压缩、解压缩方法及设备 |
CN107423397A (zh) * | 2017-07-26 | 2017-12-01 | 北京时代民芯科技有限公司 | 一种面向多任务微***的自适应压缩存储及解压提取方法 |
CN107565970A (zh) * | 2017-08-17 | 2018-01-09 | 郑州云海信息技术有限公司 | 一种基于特征识别的混合无损压缩方法及装置 |
CN111130569A (zh) * | 2019-12-17 | 2020-05-08 | 佛山科学技术学院 | 一种空间信息数据自适应容错处理方法及*** |
-
2020
- 2020-09-22 CN CN202011000571.7A patent/CN112101548A/zh not_active Withdrawn
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103379136A (zh) * | 2012-04-17 | 2013-10-30 | ***通信集团公司 | 一种日志采集数据压缩方法、解压缩方法及装置 |
CN104283567A (zh) * | 2013-07-02 | 2015-01-14 | 北京四维图新科技股份有限公司 | 一种名称数据的压缩、解压缩方法及设备 |
CN107423397A (zh) * | 2017-07-26 | 2017-12-01 | 北京时代民芯科技有限公司 | 一种面向多任务微***的自适应压缩存储及解压提取方法 |
CN107565970A (zh) * | 2017-08-17 | 2018-01-09 | 郑州云海信息技术有限公司 | 一种基于特征识别的混合无损压缩方法及装置 |
CN111130569A (zh) * | 2019-12-17 | 2020-05-08 | 佛山科学技术学院 | 一种空间信息数据自适应容错处理方法及*** |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114723033A (zh) * | 2022-06-10 | 2022-07-08 | 成都登临科技有限公司 | 数据处理方法、装置、ai芯片、电子设备及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR101049699B1 (ko) | 데이터의 압축방법 | |
CN116681036B (zh) | 基于数字孪生的工业数据存储方法 | |
CN109859281B (zh) | 一种稀疏神经网络的压缩编码方法 | |
CN107565971B (zh) | 一种数据压缩方法及装置 | |
US11722148B2 (en) | Systems and methods of data compression | |
CN112003625A (zh) | 一种霍夫曼编码方法、***及设备 | |
CN110021369B (zh) | 基因测序数据压缩解压方法、***及计算机可读介质 | |
CN110008192A (zh) | 一种数据文件压缩方法、装置、设备及可读存储介质 | |
CN111510156A (zh) | 一种基于分段的哈夫曼动态压缩及解压大文件的方法 | |
CN112101548A (zh) | 数据压缩方法及装置、数据解压方法及装置、电子设备 | |
CN108880559B (zh) | 数据压缩方法、数据解压缩方法、压缩设备及解压缩设备 | |
CN117095685B (zh) | 一种联发科平台终端设备及其控制方法 | |
CN116934487B (zh) | 一种金融清算数据优化存储方法及*** | |
CN117254820A (zh) | 数据压缩方法、装置、设备及存储介质 | |
CN117040539A (zh) | 一种基于m叉树和lzw算法的石油测井数据压缩方法及装置 | |
Malach et al. | Hardware-based real-time deep neural network lossless weights compression | |
CN111274950A (zh) | 特征向量数据编解码方法及服务器和终端 | |
CN109698703B (zh) | 基因测序数据解压方法、***及计算机可读介质 | |
CN113810058A (zh) | 数据压缩方法、数据解压缩方法、装置及电子设备 | |
CN111143641A (zh) | 深度学习模型的训练方法、装置及电子设备 | |
US20240184763A1 (en) | Data compression method, data decompression method, and electronic device | |
JP2005521324A (ja) | 損失のないデータの圧縮および圧縮解除方法および装置 | |
CN112200301B (zh) | 卷积计算装置及方法 | |
CN114640357B (zh) | 数据编码方法、设备及存储介质 | |
US20180145701A1 (en) | Sonic Boom: System For Reducing The Digital Footprint Of Data Streams Through Lossless Scalable Binary Substitution |
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 | ||
WW01 | Invention patent application withdrawn after publication |
Application publication date: 20201218 |
|
WW01 | Invention patent application withdrawn after publication |