CN114466082B - 数据压缩、数据解压方法、系统及人工智能ai芯片 - Google Patents
数据压缩、数据解压方法、系统及人工智能ai芯片 Download PDFInfo
- Publication number
- CN114466082B CN114466082B CN202210112667.5A CN202210112667A CN114466082B CN 114466082 B CN114466082 B CN 114466082B CN 202210112667 A CN202210112667 A CN 202210112667A CN 114466082 B CN114466082 B CN 114466082B
- Authority
- CN
- China
- Prior art keywords
- data
- characteristic data
- characteristic
- compressed
- feature
- 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.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 98
- 238000013144 data compression Methods 0.000 title claims abstract description 62
- 230000006837 decompression Effects 0.000 title claims abstract description 48
- 230000005540 biological transmission Effects 0.000 claims abstract description 222
- 238000013528 artificial neural network Methods 0.000 claims abstract description 89
- 238000007906 compression Methods 0.000 claims description 45
- 230000006835 compression Effects 0.000 claims description 43
- 239000003550 marker Substances 0.000 claims description 16
- 238000004590 computer program Methods 0.000 claims description 8
- 238000004891 communication Methods 0.000 claims description 5
- 238000004364 calculation method Methods 0.000 claims description 4
- 238000012512 characterization method Methods 0.000 claims 1
- 238000013473 artificial intelligence Methods 0.000 abstract description 16
- 238000010586 diagram Methods 0.000 description 9
- 238000004422 calculation algorithm Methods 0.000 description 5
- 230000006870 function Effects 0.000 description 4
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 230000003068 static effect Effects 0.000 description 2
- 238000013135 deep learning Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/04—Protocols for data compression, e.g. ROHC
-
- 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/22—Parsing or analysis of headers
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Health & Medical Sciences (AREA)
- Life Sciences & Earth Sciences (AREA)
- Biomedical Technology (AREA)
- Biophysics (AREA)
- Theoretical Computer Science (AREA)
- Artificial Intelligence (AREA)
- Computational Linguistics (AREA)
- Data Mining & Analysis (AREA)
- Evolutionary Computation (AREA)
- General Health & Medical Sciences (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Neurology (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
Abstract
本公开提供了一种数据压缩、数据解压方法、系统、电子设备、存储介质及人工智能(Artificial Intelligence,AI)芯片,该数据压缩方法包括:获取神经网络中的特征数据;其中,所述特征数据包括神经网络中特征处理层对应的权重特征数据和/或输出特征数据;所述特征数据中包括至少一个预设数值;基于所述特征数据中各个维度位置的数值,生成所述特征数据对应的标记位数据;其中,所述标记位数据用于指示所述特征数据中非预设数值对应的维度位置;基于所述标记位数据、和所述特征数据中的所述非预设数值,生成所述特征数据对应的用于进行传输的压缩后特征数据。
Description
技术领域
本公开涉及深度学习技术领域,具体而言,涉及一种数据压缩、数据解压方法、系统、电子设备、存储介质及人工智能(Artificial Intelligence,AI)芯片。
背景技术
人工智能(Artificial Intelligence,AI)芯片是一种针对神经网络的专用处理芯片,相比传统芯片相比,具有更高算力及能效比。其中,功耗和带宽是衡量AI芯片性能的重要指标。
随着神经网络规模的不断增大,权重数据、计算过程产生的中间层数据量也在不断增加。由于芯片上的静态随机存取存储器(Static Random-Access Memory,SRAM)的空间有限,使得神经网络运算所需的、所产生的数据需要存储在外部存储器中。因此,大量数据需要反复读写外部存储器,所产生的访存功耗和带宽给AI芯片的性能带来巨大挑战。
发明内容
有鉴于此,本公开至少提供一种数据压缩、数据解压方法、系统、电子设备、存储介质及人工智能(Artificial Intelligence,AI)芯片。
第一方面,本公开提供了一种数据压缩方法,包括:
获取神经网络中的特征数据;其中,所述特征数据包括神经网络中特征处理层对应的权重特征数据和/或输出特征数据;所述特征数据中包括至少一个预设数值;
基于所述特征数据中各个维度位置的数值,生成所述特征数据对应的标记位数据;其中,所述标记位数据用于指示所述特征数据中非预设数值对应的维度位置;
基于所述标记位数据、和所述特征数据中的所述非预设数值,生成所述特征数据对应的用于进行传输的压缩后特征数据。
上述方法中,可以在获取神经网络中的特征数据后,基于特征数据中各个维度位置的数值,生成特征数据对应的标记位数据,该标记位数据用于指示特征数据中非预设数值对应的维度位置。由于特征数据中的预设数值可以为设置的无意义的数值,在生成标记位数据之后,可以利用标记位数据和特征数据中的非预设数值,生成特征数据对应的用于进行传输的压缩后特征数据,将未压缩的特征数据中的预设数值进行压缩,且压缩后特征数据中有意义的特征数据未丢失,实现了对特征数据的无损压缩,提高了压缩的精度。同时,上述过程中无需使用压缩算法,与使用图像压缩算法进行数据压缩的方式相比,压缩过程较为简便,在保证压缩精度的基础上,提高了压缩的效率。
一种可能的实施方式中,在所述获取神经网络中的特征数据之后,所述方法还包括:
沿着所述特征数据的宽度维度和/或高度维度,对所述特征数据进行分块处理,得到所述特征数据对应的多个局部特征数据;其中,所述局部特征数据对应的数据量小于或等于设置的第一预设数据量;
所述基于所述特征数据中各个维度位置的数值,生成所述特征数据对应的标记位数据,包括:
基于所述每个所述局部特征数据中各个维度位置的数值,生成所述局部特征数据对应的标记位数据;
所述基于所述标记位数据、和所述特征数据中的所述非预设数值,生成所述特征数据对应的用于进行传输的压缩后特征数据,包括:
基于所述局部特征数据对应的标记位数据、和所述局部特征数据中的所述非预设数值,生成所述局部特征数据对应的压缩后特征数据。
考虑到神经网络的特征数据的数据量一般较大,为了满足执行数据压缩方法的执行主体的传输带宽要求、存储要求等,可以沿着特征数据的宽度维度和/或高度维度,对特征数据进行分块处理,得到特征数据对应的多个局部特征数据,以是的局部特征数据对应的数据量小于或等于设置的第一预设数据量,再对各个局部特征数据进行数据压缩处理,提高数据压缩方法的应用范围。
一种可能的实施方式中,所述基于所述特征数据中各个维度位置的数值,生成所述特征数据对应的标记位数据,包括:
针对所述特征数据中的每个维度位置,若位于所述维度位置上的数值为预设数值,确定所述维度位置对应的标记位为第一数值;若位于所述维度位置上的数值为非预设数值,确定所述维度位置对应的标记位为第二数值;
基于所述特征数据中各个维度位置分别对应的标记位,生成所述特征数据对应的标记位数据。
这里,可以针对特征数据中的每个维度位置,若位于维度位置上的数值为预设数值,确定维度位置对应的标记位为第一数值;若位于维度位置上的数值为非预设数值,确定维度位置对应的标记位为第二数值;并基于特征数据中各个维度位置分别对应的标记位,较为准确的生成特征数据对应的标记位数据。
一种可能的实施方式中,所述基于所述标记位数据、和所述特征数据中的所述非预设数值,生成所述特征数据对应的用于进行传输的压缩后特征数据,包括:
基于所述标记位数据中包括的第二数值,从所述特征数据中获取所述第二数值指示的维度位置处的非预设数值;
将获取的所述非预设数值写入到压缩码流,得到写入操作后的压缩码流;
基于所述写入操作后的压缩码流和所述标记位数据,生成所述特征数据对应的所述压缩后特征数据。
一种可能的实施方式中,在所述生成所述特征数据对应的用于进行传输的压缩后特征数据之后,所述方法还包括:
在确定所述压缩后特征数据的第一数据量小于所述特征数据对应的第二数据量的情况下,确定所述特征数据对应的数据传输模式为:传输所述压缩后特征数据的第一数据传输模式;
基于所述第一数据传输模式和确定的写入操作后的压缩码流对应的第三数据量,对码流头文件header进行写操作,生成更新后的header;
基于所述更新后的header和所述压缩后特征数据,生成目标传输数据。
由于特征数据需要在外存与内存之间进行传输,故这里,在生成压缩后特征数据之后,对压缩后特征数据的第一数据量与特征数据对应的第二数据量进行对比,若第一数据量小于第二数据量,则确定将压缩后特征数据进行传输,与传输未压缩的特征数据相比,可以提高传输效率,降低运行神经网络的芯片的访存带宽和功耗,提高了芯片的处理性能。
一种可能的实施方式中,在所述生成所述特征数据对应的用于进行传输的压缩后特征数据之后,所述方法还包括:
在确定所述压缩后特征数据的第一数据量大于或等于所述特征数据对应的第二数据量的情况下,确定所述特征数据对应的数据传输模式为:传输未压缩的所述特征数据的第二数据传输模式;
基于所述第二数据传输模式,对所述header进行写操作,生成更新后的header;
基于所述更新后的header和未压缩的所述特征数据,生成目标传输数据。
这里,若确定第一数据量大于或等于第二数据量,则确定将未压缩的特征数据进行传输,避免增加芯片的访存带宽和功耗。
一种可能的实施方式中,在所述获取神经网络中的特征数据之后,所述方法还包括:
基于所述特征数据的尺寸信息、所述特征数据对应的数制类型、所述特征数据中包括的预设数值的比例,确定所述特征数据对应的、表征数据压缩程度的压缩比;
基于所述压缩比,执行以下操作中的至少一种:
确定是否对所述特征数据进行压缩;
评估处理所述神经网络的芯片的性能。
上述实施方式中,能够较为简便和精准的确定特征数据对应的压缩比,以便利用压缩比可以较为高效和精准的执行后续操作,比如确定是否对特征数据进行压缩;和/或,评估处理神经网络的芯片的性能等。
第二方面,本公开提供了一种数据解压方法,包括:
解析接收到的目标传输数据中包括的码流头文件header,得到所述header上第一存储位包括的第一目标数值;
基于所述第一目标数值,确定数据传输模式;
基于所述数据传输模式,从所述目标传输数据中,确定神经网络中未压缩的特征数据。
本公开实施方式中,在接收到目标传输数据时,可以通过解析header确定header上第一存储位包括的第一目标数值,并根据第一目标数值确定数据传输模式,进而能够基于数据传输模式,较精准和高效的从目标传输数据中,确定神经网络中未压缩的特征数据。
一种可能的实施方式中,所述基于所述数据传输模式,从所述目标传输数据中,确定神经网络中未压缩的特征数据,包括:
在所述数据传输模式为传输压缩后特征数据的第一数据传输模式的情况下,基于所述目标传输数据包括的标记位数据中第二数值对应的维度位置,从所述目标传输数据包括的写入操作后的压缩码流中,读取所述维度位置对应的非预设数值;
基于读取到的第三数据量的非预设数值、以及所述非预设数值对应的维度位置,生成所述神经网络中未压缩的特征数据;其中,所述第三数据量为在解析header后,基于header上第二存储位包括的第二目标数值确定的。
一种可能的实施方式中,所述基于所述数据传输模式,从所述目标传输数据中,确定神经网络中未压缩的特征数据,包括:
在所述数据传输模式为传输未压缩的特征数据的第二数据传输模式的情况下,从所述目标传输数据中,获取神经网络中未压缩的特征数据。
以下装置、系统、电子设备等的效果描述参见上述方法的说明,这里不再赘述。
第三方面,本公开提供了一种数据压缩系统,包括:数据压缩电路和外部存储器;
所述数据压缩电路,用于执行第一方面或任一实施方式所述的数据压缩方法;并将压缩后特征数据、未压缩的特征数据、目标传输数据中的至少一种存储至所述外部存储器;其中,所述目标传输数据为基于所述压缩后特征数据、或者未压缩的特征数据生成的。
第四方面,本公开提供了一种数据解压系统,包括:数据解压电路和内部存储器;
所述数据解压电路,用于执行第二方面或任一实施方式所述的数据解压方法;并将解压得到的神经网络中未压缩的特征数据存储至所述内部存储器。
第五方面,本公开提供了一种人工智能AI芯片,包括:数据压缩电路、外部存储器、数据解压电路、内部存储器和计算单元;
所述数据压缩电路,用于将获取到的神经网络中的特征数据进行压缩处理,得到压缩后特征数据;并基于压缩后特征数据或者未压缩的特征数据,生成目标传输数据,将所述目标传输数据存储至所述外部存储器;
所述数据解压电路,用于从所述外部存储器中获取所述目标传输数据,并对所述目标传输数据进行解压处理,得到所述神经网络中的特征数据;以及将得到的所述特征数据存储至所述内部存储器;
所述计算单元,用于从所述内部存储器中读取所述特征数据,并基于读取到的所述特征数据进行运算,得到运算结果。
第六方面,本公开提供了一种数据压缩装置,包括:
获取模块,用于获取神经网络中的特征数据;其中,所述特征数据包括神经网络中特征处理层对应的权重特征数据和/或输出特征数据;所述特征数据中包括至少一个预设数值;
第一生成模块,用于基于所述特征数据中各个维度位置的数值,生成所述特征数据对应的标记位数据;其中,所述标记位数据用于指示所述特征数据中非预设数值对应的维度位置;
第二生成模块,用于基于所述标记位数据、和所述特征数据中的所述非预设数值,生成所述特征数据对应的用于进行传输的压缩后特征数据。
一种可能的实施方式中,在所述获取神经网络中的特征数据之后,所述装置还包括:划分模块,用于:沿着所述特征数据的宽度维度和/或高度维度,对所述特征数据进行分块处理,得到所述特征数据对应的多个局部特征数据;其中,所述局部特征数据对应的数据量小于或等于设置的第一预设数据量;
所述第一生成模块,在基于所述特征数据中各个维度位置的数值,生成所述特征数据对应的标记位数据时,用于:基于所述每个所述局部特征数据中各个维度位置的数值,生成所述局部特征数据对应的标记位数据;
所述第二生成模块,在基于所述标记位数据、和所述特征数据中的所述非预设数值,生成所述特征数据对应的用于进行传输的压缩后特征数据时,用于:基于所述局部特征数据对应的标记位数据、和所述局部特征数据中的所述非预设数值,生成所述局部特征数据对应的压缩后特征数据。
一种可能的实施方式中,所述第一生成模块,在基于所述特征数据中各个维度位置的数值,生成所述特征数据对应的标记位数据时,用于:
针对所述特征数据中的每个维度位置,若位于所述维度位置上的数值为预设数值,确定所述维度位置对应的标记位为第一数值;若位于所述维度位置上的数值为非预设数值,确定所述维度位置对应的标记位为第二数值;
基于所述特征数据中各个维度位置分别对应的标记位,生成所述特征数据对应的标记位数据。
一种可能的实施方式中,所述第二生成模块,在基于所述标记位数据、和所述特征数据中的所述非预设数值,生成所述特征数据对应的用于进行传输的压缩后特征数据时,用于:
基于所述标记位数据中包括的第二数值,从所述特征数据中获取所述第二数值指示的维度位置处的非预设数值;
将获取的所述非预设数值写入到压缩码流,得到写入操作后的压缩码流;
基于所述写入操作后的压缩码流和所述标记位数据,生成所述特征数据对应的所述压缩后特征数据。
一种可能的实施方式中,在所述生成所述特征数据对应的用于进行传输的压缩后特征数据之后,所述装置还包括:第三生成模块,用于:
在确定所述压缩后特征数据的第一数据量小于所述特征数据对应的第二数据量的情况下,确定所述特征数据对应的数据传输模式为:传输所述压缩后特征数据的第一数据传输模式;
基于所述第一数据传输模式和确定的写入操作后的压缩码流对应的第三数据量,对码流头文件header进行写操作,生成更新后的header;
基于所述更新后的header和所述压缩后特征数据,生成目标传输数据。
一种可能的实施方式中,第三生成模块,还用于:
在确定所述压缩后特征数据的第一数据量大于或等于所述特征数据对应的第二数据量的情况下,确定所述特征数据对应的数据传输模式为:传输未压缩的所述特征数据的第二数据传输模式;
基于所述第二数据传输模式,对所述header进行写操作,生成更新后的header;
基于所述更新后的header和未压缩的所述特征数据,生成目标传输数据。
一种可能的实施方式中,在所述获取神经网络中的特征数据之后,所述装置还包括:第四生成模块,用于:
基于所述特征数据的尺寸信息、所述特征数据对应的数制类型、所述特征数据中包括的预设数值的比例,确定所述特征数据对应的、表征数据压缩程度的压缩比;
基于所述压缩比,执行以下操作中的至少一种:
确定是否对所述特征数据进行压缩;
评估处理所述神经网络的芯片的性能。
第七方面,本公开提供了一种数据解压装置,包括:
解析模块,用于解析接收到的目标传输数据中包括的码流头文件header,得到所述header上第一存储位包括的第一目标数值;
第一确定模块,用于基于所述第一目标数值,确定数据传输模式;
第二确定模块,用于基于所述数据传输模式,从所述目标传输数据中,确定神经网络中未压缩的特征数据。
一种可能的实施方式中,所述第二确定模块,在基于所述数据传输模式,从所述目标传输数据中,确定神经网络中未压缩的特征数据时,用于:
在所述数据传输模式为传输压缩后特征数据的第一数据传输模式的情况下,基于所述目标传输数据包括的标记位数据中第二数值对应的维度位置,从所述目标传输数据包括的写入操作后的压缩码流中,读取所述维度位置对应的非预设数值;
基于读取到的第三数据量的非预设数值、以及所述非预设数值对应的维度位置,生成所述神经网络中未压缩的特征数据;其中,所述第三数据量为在解析header后,基于header上第二存储位包括的第二目标数值确定的。
一种可能的实施方式中,所述第二确定模块,在基于所述数据传输模式,从所述目标传输数据中,确定神经网络中未压缩的特征数据时,用于:
在所述数据传输模式为传输未压缩的特征数据的第二数据传输模式的情况下,从所述目标传输数据中,获取神经网络中未压缩的特征数据。
第八方面,本公开提供一种电子设备,包括:处理器、存储器和总线,所述存储器存储有所述处理器可执行的机器可读指令,当电子设备运行时,所述处理器与所述存储器之间通过总线通信,所述机器可读指令被所述处理器执行时执行如上述第一方面或任一实施方式所述的数据压缩方法的步骤;或执行如上述第二方面或任一实施方式所述的数据解压方法的步骤;或者如第五方面所述的芯片。
第九方面,本公开提供一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,该计算机程序被处理器运行时执行如上述第一方面或任一实施方式所述的数据压缩方法的步骤;或执行如上述第二方面或任一实施方式所述的数据解压方法的步骤。
为使本公开的上述目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附附图,作详细说明如下。
附图说明
为了更清楚地说明本公开实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,此处的附图被并入说明书中并构成本说明书中的一部分,这些附图示出了符合本公开的实施例,并与说明书一起用于说明本公开的技术方案。应当理解,以下附图仅示出了本公开的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1示出了本公开实施例所提供的一种数据压缩方法的流程示意图;
图2示出了本公开实施例所提供的一种数据解压方法的流程示意图;
图3示出了本公开实施例所提供的一种数据压缩系统的架构示意图;
图4示出了本公开实施例所提供的一种数据解压系统的架构示意图;
图5示出了本公开实施例所提供的一种人工智能AI芯片的架构示意图;
图6示出了本公开实施例所提供的一种数据压缩装置的架构示意图;
图7示出了本公开实施例所提供的一种数据解压装置的架构示意图;
图8示出了本公开实施例所提供的一种电子设备的结构示意图。
具体实施方式
为使本公开实施例的目的、技术方案和优点更加清楚,下面将结合本公开实施例中的附图,对本公开实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本公开一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本公开实施例的组件可以以各种不同的配置来布置和设计。因此,以下对在附图中提供的本公开的实施例的详细描述并非旨在限制要求保护的本公开的范围,而是仅仅表示本公开的选定实施例。基于本公开的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本公开保护的范围。
人工智能(Artificial Intelligence,AI)芯片是一种针对神经网络的专用处理芯片,相比传统芯片相比,具有更高算力及能效比。其中,功耗和带宽是衡量AI芯片性能的重要指标。
随着神经网络规模的不断增大,权重数据、计算过程产生的中间层数据量也在不断增加。由于芯片上的静态随机存取存储器(Static Random-Access Memory,SRAM)的空间有限,使得神经网络运算所需的、所产生的数据需要存储在外部存储器中。因此,大量数据需要反复读写外部存储器,所产生的访存功耗和带宽给AI芯片的性能带来巨大挑战。
为了缓解上述问题,本公开实施例提供了一种数据压缩、数据解压方法、系统、装置、电子设备、存储介质及人工智能(Artificial Intelligence,AI)芯片。
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。
为便于对本公开实施例进行理解,首先对本公开实施例所公开的一种数据压缩方法进行详细介绍。本公开实施例所提供的数据压缩方法的执行主体一般为AI芯片。在一些可能的实现方式中,该数据压缩方法可以通过调用存储器中存储的计算机可读指令的方式来实现。
参见图1所示,为本公开实施例所提供的数据压缩方法的流程示意图,该方法包括S101-S103,其中:
S101,获取神经网络中的特征数据;其中,所述特征数据包括神经网络中特征处理层对应的权重特征数据和/或输出特征数据;所述特征数据中包括至少一个预设数值;
S102,基于所述特征数据中各个维度位置的数值,生成所述特征数据对应的标记位数据;其中,所述标记位数据用于指示所述特征数据中非预设数值对应的维度位置;
S103,基于所述标记位数据、和所述特征数据中的所述非预设数值,生成所述特征数据对应的用于进行传输的压缩后特征数据。
上述方法中,可以在获取神经网络中的特征数据后,基于特征数据中各个维度位置的数值,生成特征数据对应的标记位数据,该标记位数据用于指示特征数据中非预设数值对应的维度位置。由于特征数据中的预设数值可以为设置的无意义的数值,在生成标记位数据之后,可以利用标记位数据和特征数据中的非预设数值,生成特征数据对应的用于进行传输的压缩后特征数据,将未压缩的特征数据中的预设数值进行压缩,且压缩后特征数据中有意义的特征数据未丢失,实现了对特征数据的无损压缩,提高了压缩的精度。同时,上述过程中无需使用压缩算法,与使用图像压缩算法进行数据压缩的方式相比,压缩过程较为简便,在保证压缩精度的基础上,提高了压缩的效率。
下述对S101-S103进行具体说明。
针对S101:
神经网络在A芯片中推理时,可以获取神经网络中的特征数据,该特征数据可以包括任一特征处理层对应的权重特征数据;和/或,任一特征处理层输出的输出特征数据。其中该特征数据中包括至少一个预设数值。
实施时,该预设数值可以为0,该特征数据可以包括利用稀疏化算法进行稀疏化处理后的特征数据。和/或,该特征数据可以为激活层ReLU处理层输出的输出特征数据。
针对S102:
实施时,特征数据中包括多个维度位置,比如,若特征数据的尺寸为32×8,则维度位置包括32×8=256个。每个维度位置上存在一个特征值(即数值),该数值可以为预设数值或非预设数值。若特征数据的尺寸为32×32×16,32×32为高度和宽度,16为通道数,则可以针对该特征数据中的每个通道,确定该通道上各个维度位置的数值,即确定该通道上的32×32个维度位置上的数值。
基于特征数据中各个维度位置的数值,生成特征数据对应的标记位数据。标记位数据用于指示特征数据中非预设数值对应的维度位置。
示例性的,该标记位数据的尺寸可以与特征数据一致,该标记位数据中每个维度位置的数值表征特征数据中该维度位置上的数值是否为预设数值。
一种可选实施方式中,所述基于所述特征数据在各个维度位置的数值,生成所述特征数据对应的标记位数据,可以包括步骤A1和A2,其中:
步骤A1,针对所述特征数据中的每个维度位置,若位于所述维度位置上的数值为预设数值,确定所述维度位置对应的标记位为第一数值;若位于所述维度位置上的数值为非预设数值,确定所述维度位置对应的标记位为第二数值;
步骤A2,基于所述特征数据中各个维度位置分别对应的标记位,生成所述特征数据对应的标记位数据。
实施时,针对特征数据中的每个维度位置,若位于该维度位置上的数值为预设数值,则确定该维度位置对应的标记位为第一数值,即标记位数据中该维度位置上的数值为第一数值。若位于该维度位置上的数值为非预设数值,则确定该维度位置对应的标记位为第二数值,即标记位数据中该维度位置上的数值为第二数值。
再可以基于特征数据中各个维度位置分别对应的标记位,生成特征数据对应的标记位数据。在预设数值为0、第一数值为0、第二数值为1时,若特征数据中任一维度位置上的数值为0,则标记位数据上该任一维度位置对应的数值为0;若特征数据中任一维度位置上的数值为非0数值,则标记位数据上该任一维度位置对应的数值为1。
这里,可以针对特征数据中的每个维度位置,若位于维度位置上的数值为预设数值,确定维度位置对应的标记位为第一数值;若位于维度位置上的数值为非预设数值,确定维度位置对应的标记位为第二数值;并基于特征数据中各个维度位置分别对应的标记位,较为准确的生成特征数据对应的标记位数据。
针对S103:
在得到标记位数据之后,可以基于标记位数据和特征数据中的非预设数值,生成特征数据对应的用于进行传输的压缩后特征数据。比如,可以提取特征数据中的非预设数值,利用提取到的非预设数值生成压缩码流;根据标记位数据和压缩码流生成压缩后特征数据。
一种可选实施方式中,所述基于所述标记位数据、和所述特征数据中的所述非预设数值,生成所述特征数据对应的用于进行传输的压缩后特征数据,可以包括步骤B1至步骤B3,其中:
步骤B1,基于所述标记位数据中包括的第二数值,从所述特征数据中获取所述第二数值指示的维度位置处的非预设数值;
步骤B2,将获取的所述非预设数值写入到压缩码流,得到写入操作后的压缩码流;
步骤B3,基于所述写入操作后的压缩码流和标记位数据,生成所述特征数据对应的所述压缩后特征数据。
实施时,可以基于标记位数据中包括的第二数值,从特征数据中获取第二数值指示的维度位置处的非预设数值。将获取到的非预设数值写入到压缩码流中,得到写入操作后的压缩码流。在写入操作之前,该压缩码流可以为初始化的压缩码流。同时,还可以确定写入操作后的压缩码流的第三数据量。
再可以基于写入操作后的压缩码流和标记位数据,生成特征数据对应的压缩后特征数据。比如,压缩后特征数据可以为如下表1所示:
表1压缩后特征数据
标记位index | 压缩码流data |
实施时,在生成压缩后特征数据之后,可以基于压缩后特征数据或者未压缩的特征数据,生成目标传输数据。将目标传输数据在外部存储器和内部存储器之间进行传输。
若压缩后特征数据的数据量大于或等于未压缩的特征数据,则基于未压缩的特征数据,生成目标传输数据;若压缩后特征数据小于未压缩的特征数据,则基于压缩后特征数据,生成目标传输数据。
一种可选实施方式中,在所述生成所述特征数据对应的用于进行传输的压缩后特征数据之后,所述方法还包括:
步骤C1,在确定所述压缩后特征数据的第一数据量小于所述特征数据对应的第二数据量的情况下,确定所述特征数据对应的数据传输模式为:传输所述压缩后特征数据的第一数据传输模式;
步骤C2,基于所述第一数据传输模式和确定的写入操作后的压缩码流对应的第三数据量,对码流头文件header进行写操作,生成更新后的header;
步骤C3,基于所述更新后的header和所述压缩后特征数据,生成目标传输数据。
实施时,可以确定压缩后特征数据对应的第一数据量、和未压缩的特征数据对应的第二数据量。再将压缩后特征数据对应的第一数据量与未压缩的特征数据对应的第二数据量进行对比。若第一数据量小于第二数据量,则确定将压缩后特征数据进行传输,即确定特征数据对应的数据传输模式为传输压缩后特征数据的第一数据传输模式。若第一数据量大于或等于第二数据量,则确定将未压缩的特征数据进行传输,即确定特征数据对应的数据传输模式为传输未压缩的特征数据的第二数据传输模式。
在确定数据传输模式为第一数据传输模式时,可以基于第一数据传输模式和确定的写入操作后的压缩码流对应的第三数据量,对码流头文件header进行写操作,生成更新后的header。示例性的,header可以如下表2所示:
表2header
is_raw | 低7bit |
其中,header中最高位用于表示数据传输模式,即is_raw表征数据传输模式。比如,数据传输模式为第一数据传输模式时,is_raw标记为0;低7bit对应的数据用于表征写入操作后的压缩码流的第三数据量。在低7bit对应的单位为128bit时,低7bit对应的数据可以为:将压缩码流的第三数据量与128bit之间的比值进行向上取整得到的。例如,若第三数据量为256bit,则低7bit对应的数据为2。若第三数据量为257bit,则低7bit对应的数据为3。
再可以基于更新后的header和压缩后特征数据,生成目标传输数据。即将更新后的header和压缩后特征数据进行传输。
由于特征数据需要在外存与内存之间进行传输,故这里,在生成压缩后特征数据之后,对压缩后特征数据的第一数据量与特征数据对应的第二数据量进行对比,若第一数据量小于第二数据量,则确定将压缩后特征数据进行传输,与传输未压缩的特征数据相比,可以提高传输效率,降低运行神经网络的芯片的访存带宽和功耗,提高了芯片的处理性能。
另一种可选实施方式中,所述方法还包括:
步骤D1,在确定所述压缩后特征数据的第一数据量大于或等于所述特征数据对应的第二数据量的情况下,确定所述特征数据对应的数据传输模式为:传输未压缩的所述特征数据的第二数据传输模式;
步骤D2,基于所述第二数据传输模式,对所述header进行写操作,生成更新后的header;
步骤D3,基于所述更新后的header和未压缩的所述特征数据,生成目标传输数据。
实施时,若第一数据量大于或等于第二数据量时,可以确定数据传输模式为传输未压缩的特征数据的第二数据传输模式。并基于第二数据传输模式,对header进行写操作,比如,可以将header的最高位is_raw标记为1,生成更新后的header。其中,更新后的header中低7bit的数据为无效数据。
再可以基于更新后的header和未压缩的特征数据,生成目标传输数据。即将更新后的header和未压缩的特征数据进行传输。
这里,若确定第一数据量大于或等于第二数据量,则确定将未压缩的特征数据进行传输,避免增加芯片的访存带宽和功耗。
考虑到神经网络中特征处理层的特征数据的数据量较大,而内部存储器、访存带宽等资源有限,故可以将特征数据进行分块,得到特征数据对应的多个局部特征数据。再分别对每个局部特征数据进行压缩处理。实施时,可以在上一个局部特征数据压缩处理完成之后,再对下一个局部特征数据进行压缩处理。
一种可选实施方式中,在所述获取神经网络中的特征数据之后,所述方法还包括:沿着所述特征数据的宽度维度和/或高度维度,对所述特征数据进行分块处理,得到所述特征数据对应的多个局部特征数据;其中,所述局部特征数据对应的数据量小于或等于设置的第一预设数据量。
实施时,可以根据第一预设数据量,沿着特征数据的宽度维度和/或高度维度,对特征数据进行分块处理,得到特征数据对应的多个局部特征数据,使得每个局部特征数据对应的数据量小于或等于第一预设数据量。
若特征数据为三维的,即特征数据的尺寸信息为通道×宽度×高度时,可以针对每个通道,将该通道沿着宽度维度和/或高度维度进行分块处理,得到特征数据对应的多个局部特征数据。
示例性的,若特征数据为128×128(即宽度×高度),沿着宽度维度对特征数据进行分块时,得到的局部特征数据的尺寸信息可以为32×128,即得到4个尺寸为32×128的局部特征数据。若沿着高度维度对特征数据进行分块时,得到的局部特征数据的尺寸信息可以为128×32,即得到4个尺寸为128×32的局部特征数据。若沿着宽度维度和高度维度对特征数据进行分块时,得到的局部特征数据的尺寸信息可以为64×64,即得到4个尺寸为64×64的局部特征数据。其中,局部特征数据的尺寸和数量,可以根据第一预设数据量和特征数据的第二数据量进行确定,此处仅为示例性说明。
在得到特征数据对应的多个局部特征数据之后,可以基于所述每个所述局部特征数据在各个维度位置的数值,生成所述局部特征数据对应的标记位数据;并基于所述局部特征数据对应的标记位数据、和所述局部特征数据中的所述非预设数值,生成所述局部特征数据对应的压缩后特征数据。
其中,生成局部特征数据对应的标记位数据的过程,可以参考上述步骤A1和步骤A2的说明;以及生成局部特征数据对应的压缩后特征数据的过程,可以参考上述对步骤B1至步骤B3的说明,此处不在详述。
考虑到神经网络的特征数据的数据量一般较大,为了满足执行数据压缩方法的执行主体的传输带宽要求、存储要求等,可以沿着特征数据的宽度维度和/或高度维度,对特征数据进行分块处理,得到特征数据对应的多个局部特征数据,以使得局部特征数据对应的数据量小于或等于设置的第一预设数据量,再对各个局部特征数据进行数据压缩处理,提高数据压缩方法的应用范围。
一种可选实施方式中,在所述获取神经网络中的特征数据之后,所述方法还包括:基于所述特征数据的尺寸信息、所述特征数据对应的数制类型、所述特征数据中包括的预设数值的比例,确定所述特征数据对应的、表征数据压缩程度的压缩比;并基于所述压缩比,执行以下操作中的至少一种:确定是否对所述特征数据进行压缩;评估处理所述神经网络的芯片的性能。
实施时,可以根据特征数据的尺寸信息、特征数据的数值类型、特征数据中包括的预设数值的比例、和头文件header的数据量,确定第一比值;根据特征数据的尺寸信息、特征数据的数值类型,确定第二比值,再根据第一比值和第二比值,得到压缩比。
具体的,压缩比的确定公式可以为:
min[1,(X+M×N+M×N×F×P)/(M×N×F)]
其中,X为header对应的数据量,比如,在header为8bit的数据时,X的值为8。M×N为特征数据对应的尺寸信息,由于标记位数据与特征数据的尺寸一致,故可以利用M×N,得到标记位数据对应的数据量;利用M×N×F得到特征数据对应的第二数据量。其中,F为特征数据的数制类型。比如若特征数据对应的数制类型为float16数制,则F=16。若特征数据对应的数制类型为int8数制,则F=8。P为特征数据中包括的预设数值的比例,比如,若特征数据的尺寸为16×16,即该特征数据中包括256个特征值(即数值),256个数值中包括128个预设数值,则确定特征数据中包括的预设数值的比例为50%,即P的值为50%。
示例性的,若特征数据为32×16,该特征数据中包括50%的零值(即预设数值)。在特征数据为float32数制时,未压缩的特征数据的第二数据量可以为32×16×32bit。压缩后的特征数据的第一数据量为:标记位数据对应的数据量与写入操作后的压缩码流的第三数据量之和,即压缩后特征数据的第一数据量为:32×16×32×50%+32×16,由于在进行数据传输时会传输header,在header为固定的8bit数据时,则压缩比可以为:min[1,(32×16×32×50%+32×16+8)/(32×16×32)]=53.17%。
在确定了压缩比之后,可以基于压缩比确定是否对特征数据进行压缩,和/或,基于压缩比评估处理神经网络的芯片的性能。比如,若确定特征数据一对应的压缩比大于预设值,确定对特征数据一进行压缩处理。若确定特征数据一对应的压缩比小于或等于预设值,确定不对特征数据一进行压缩处理。再比如,针对同一芯片,若神经网络中各个特征数据对应的压缩比较大,则确定该芯片运行该神经网络的性能较好。
上述实施方式中,能够较为简便和精准的确定特征数据对应的压缩比,以便利用压缩比可以较为高效和精准的执行后续操作,比如确定是否对特征数据进行压缩;和/或,评估处理神经网络的芯片的性能等。
参见图2所示,为本公开实施例所提供的数据解压方法的流程示意图,该方法包括S201-S203,其中:
S201,解析接收到的目标传输数据中包括的码流头文件header,得到所述header上第一存储位包括的第一目标数值;
S202,基于所述第一目标数值,确定数据传输模式;
S203,基于所述数据传输模式,从所述目标传输数据中,确定神经网络中未压缩的特征数据。
该目标传输数据可以为利用上述数据压缩方法中的压缩后特征数据、或未压缩的特征数据生成的。该目标传输数据中包括码流头文件header。在接收到目标传输文件之后,可以对目标传输文件中包括的header进行解析,得到header上第一存储位(最高位)上的第一目标数值。即确定header中is_raw的第一目标数值。
并根据第一目标数值,确定数据传输模式。比如,若确定第一目标数值为1,1对应的数据传输模式为第二数据传输模式,则确定数据传输模式为第二数据传输模式。
再可以基于数据传输模式,从目标传输数据中确定神经网络中未压缩的特征数据。
本公开实施方式中,在接收到目标传输数据时,可以通过解析header确定header上第一存储位包括的第一目标数值,并根据第一目标数值确定数据传输模式,进而能够基于数据传输模式,较精准和高效的从目标传输数据中,确定神经网络中未压缩的特征数据。
一种可选实施方式中,在S203中,所述基于所述数据传输模式,从所述目标传输数据中,确定神经网络中未压缩的特征数据,可以包括下述两种方式:
方式一、在所述数据传输模式为传输压缩后特征数据的第一数据传输模式的情况下,基于所述目标传输数据包括的标记位数据中第二数值对应的维度位置,从所述目标传输数据包括的写入操作后的压缩码流中,读取所述维度位置对应的非预设数值;基于读取到的第三数据量的非预设数值、以及所述非预设数值对应的维度位置,生成所述神经网络中未压缩的特征数据;其中,所述第三数据量为在解析header后,基于header上第二存储位包括的第二目标数值确定的。
方式二、在所述数据传输模式为传输未压缩的特征数据的第二数据传输模式的情况下,从所述目标传输数据中,获取神经网络中未压缩的特征数据。
在方式一中,若数据传输模式为:传输压缩后特征数据的第一数据传输模式时,可以基于目标特征数据包括的标记位数据,确定标记位数据中第二数值对应的维度位置。从目标传输数据包括的写入操作后的压缩码流中,读取第二数值对应的维度位置的非预设数值。其中,读取到的非预设数值的数据量可以为第三数据量。其中,所述第三数据量为在解析header后,基于header上第二存储位包括的第二目标数值确定的。比如,根据header的低7bit对应的数据进行确定的。比如,若确定低7bit对应的数据为2,则第三数据量为2×128bit=256bit。
再可以基于读取到的第三数据量的非预设数值和非预设数值对应的维度位置,生成神经网络中未压缩的特征数据。
在方式二中,若数据传输模式为传输未压缩的特征数据的第二数据传输模式时,即确定目标传输数据中包括有未压缩的特征数据,则可以从目标传输数据中获取神经网络中的未压缩的特征数据。
本领域技术人员可以理解,在具体实施方式的上述方法中,各步骤的撰写顺序并不意味着严格的执行顺序而对实施过程构成任何限定,各步骤的具体执行顺序应当以其功能和可能的内在逻辑确定。
基于相同的构思,本公开实施例还提供了一种数据压缩系统,参见图3所示,为本公开实施例提供的数据压缩系统的架构示意图,包括数据压缩电路301和外部存储器302,具体的:
所述数据压缩电路301,用于执行上述实施方式所述的数据压缩方法;并将压缩后特征数据、未压缩的特征数据、目标传输数据中的至少一种存储至所述外部存储器302;其中,所述目标传输数据为基于所述压缩后特征数据、或者未压缩的特征数据生成的。
其中,数据压缩电路的电路结构可以根据数据压缩方法的过程进行确定,以使得该数据压缩电路能够执行上述实施方式所述的数据压缩方法,比如数据压缩电路可以包括与门、非门、或门等基本门电路,寄存器、触发器、编码器等时序逻辑部件。此处数据压缩电路的电路结构不在详述。
基于相同的构思,本公开实施例还提供了一种数据解压系统,参见图4所示,为本公开实施例提供的数据解压系统的架构示意图,包括数据解压电路401和内部存储器402,具体的:
所述数据解压电路401,用于执行上述实施方式所述的数据解压方法;并将解压得到的神经网络中未压缩的特征数据存储至所述内部存储器402。
其中,数据解压电路的电路结构可以根据数据解压方法的过程进行确定,以使得该数据解压电路能够执行上述实施方式所述的数据解压方法,比如数据解压电路可以包括与门、非门、或门等基本门电路,寄存器、触发器、编码器等时序逻辑部件。此处数据解压电路的电路结构不在详述。
基于相同的构思,本公开实施例还提供了一种人工智能AI芯片,参见图5所示,为本公开实施例提供的人工智能AI芯片的架构示意图,包括数据压缩电路501、外部存储器502、数据解压电路503、内部存储器504和计算单元505,具体的:
所述数据压缩电路501,用于将获取到的神经网络中的特征数据进行压缩处理,得到压缩后特征数据;并基于压缩后特征数据或者未压缩的特征数据,生成目标传输数据,将所述目标传输数据存储至所述外部存储器502;
所述数据解压电路503,用于从所述外部存储器502中获取所述目标传输数据,并对所述目标传输数据进行解压处理,得到所述神经网络中的特征数据;以及将得到的所述特征数据存储至所述内部存储器504;
所述计算单元505,用于从所述内部存储器504中读取所述特征数据,并基于读取到的所述特征数据进行运算,得到运算结果。
上述实施过程中,数据压缩电路可以基于神经网络中的特征数据,生成目标传输数据,并将目标传输数据存储至外部存储器。在该目标传输数据中包括压缩后特征数据时,使得目标传输数据的数据量小于未压缩的特征数据对应的数据量,在保证了特征数据的精准度的基础上,降低了数据传输的数据量,降低了AI芯片的访存带宽和功耗,提高了芯片的性能。或者,在该目标传输数据中包括未压缩的特征数据时,目标传输数据的精准度较高。
再数据解压电路可以从外部存储中获取目标传输数据,并基于目标传输数据,较为精准的获取特征数据,以便计算单元能够从数据解压系统中获取到较精准的特征数据以进行处理,提高了处理的精准度。
基于相同的构思,本公开实施例还提供了一种数据压缩装置,参见图6所示,为本公开实施例提供的数据压缩装置的架构示意图,包括获取模块601、第一生成模块602、第二生成模块603,具体的:
获取模块601,用于获取神经网络中的特征数据;其中,所述特征数据包括神经网络中特征处理层对应的权重特征数据和/或输出特征数据;所述特征数据中包括至少一个预设数值;
第一生成模块602,用于基于所述特征数据中各个维度位置的数值,生成所述特征数据对应的标记位数据;其中,所述标记位数据用于指示所述特征数据中非预设数值对应的维度位置;
第二生成模块603,用于基于所述标记位数据、和所述特征数据中的所述非预设数值,生成所述特征数据对应的用于进行传输的压缩后特征数据。
一种可能的实施方式中,在所述获取神经网络中的特征数据之后,所述装置还包括:划分模块604,用于:沿着所述特征数据的宽度维度和/或高度维度,对所述特征数据进行分块处理,得到所述特征数据对应的多个局部特征数据;其中,所述局部特征数据对应的数据量小于或等于设置的第一预设数据量;
所述第一生成模块602,在基于所述特征数据中各个维度位置的数值,生成所述特征数据对应的标记位数据时,用于:基于所述每个所述局部特征数据中各个维度位置的数值,生成所述局部特征数据对应的标记位数据;
所述第二生成模块603,在基于所述标记位数据、和所述特征数据中的所述非预设数值,生成所述特征数据对应的用于进行传输的压缩后特征数据时,用于:基于所述局部特征数据对应的标记位数据、和所述局部特征数据中的所述非预设数值,生成所述局部特征数据对应的压缩后特征数据。
一种可能的实施方式中,所述第一生成模块602,在基于所述特征数据中各个维度位置的数值,生成所述特征数据对应的标记位数据时,用于:
针对所述特征数据中的每个维度位置,若位于所述维度位置上的数值为预设数值,确定所述维度位置对应的标记位为第一数值;若位于所述维度位置上的数值为非预设数值,确定所述维度位置对应的标记位为第二数值;
基于所述特征数据中各个维度位置分别对应的标记位,生成所述特征数据对应的标记位数据。
一种可能的实施方式中,所述第二生成模块603,在基于所述标记位数据、和所述特征数据中的所述非预设数值,生成所述特征数据对应的用于进行传输的压缩后特征数据时,用于:
基于所述标记位数据中包括的第二数值,从所述特征数据中获取所述第二数值指示的维度位置处的非预设数值;
将获取的所述非预设数值写入到压缩码流,得到写入操作后的压缩码流;
基于所述写入操作后的压缩码流和所述标记位数据,生成所述特征数据对应的所述压缩后特征数据。
一种可能的实施方式中,在所述生成所述特征数据对应的用于进行传输的压缩后特征数据之后,所述装置还包括:第三生成模块605,用于:
在确定所述压缩后特征数据的第一数据量小于所述特征数据对应的第二数据量的情况下,确定所述特征数据对应的数据传输模式为:传输所述压缩后特征数据的第一数据传输模式;
基于所述第一数据传输模式和确定的写入操作后的压缩码流对应的第三数据量,对码流头文件header进行写操作,生成更新后的header;
基于所述更新后的header和所述压缩后特征数据,生成目标传输数据。
一种可能的实施方式中,第三生成模块605,还用于:
在确定所述压缩后特征数据的第一数据量大于或等于所述特征数据对应的第二数据量的情况下,确定所述特征数据对应的数据传输模式为:传输未压缩的所述特征数据的第二数据传输模式;
基于所述第二数据传输模式,对所述header进行写操作,生成更新后的header;
基于所述更新后的header和未压缩的所述特征数据,生成目标传输数据。
一种可能的实施方式中,在所述获取神经网络中的特征数据之后,所述装置还包括:第四生成模块606,用于:
基于所述特征数据的尺寸信息、所述特征数据对应的数制类型、所述特征数据中包括的预设数值的比例,确定所述特征数据对应的、表征数据压缩程度的压缩比;
基于所述压缩比,执行以下操作中的至少一种:
确定是否对所述特征数据进行压缩;
评估处理所述神经网络的芯片的性能。
基于相同的构思,本公开实施例还提供了一种数据解压装置,参见图7所示,为本公开实施例提供的数据解压装置的架构示意图,包括解析模块701、第一确定模块702、第二确定模块703,具体的:
解析模块701,用于解析接收到的目标传输数据中包括的码流头文件header,得到所述header上第一存储位包括的第一目标数值;
第一确定模块702,用于基于所述第一目标数值,确定数据传输模式;
第二确定模块703,用于基于所述数据传输模式,从所述目标传输数据中,确定神经网络中未压缩的特征数据。
一种可能的实施方式中,所述第二确定模块703,在基于所述数据传输模式,从所述目标传输数据中,确定神经网络中未压缩的特征数据时,用于:
在所述数据传输模式为传输压缩后特征数据的第一数据传输模式的情况下,基于所述目标传输数据包括的标记位数据中第二数值对应的维度位置,从所述目标传输数据包括的写入操作后的压缩码流中,读取所述维度位置对应的非预设数值;
基于读取到的第三数据量的非预设数值、以及所述非预设数值对应的维度位置,生成所述神经网络中未压缩的特征数据;其中,所述第三数据量为在解析header后,基于header上第二存储位包括的第二目标数值确定的。
一种可能的实施方式中,所述第二确定模块703,在基于所述数据传输模式,从所述目标传输数据中,确定神经网络中未压缩的特征数据时,用于:
在所述数据传输模式为传输未压缩的特征数据的第二数据传输模式的情况下,从所述目标传输数据中,获取神经网络中未压缩的特征数据。
在一些实施例中,本公开实施例提供的装置具有的功能或包含的模板可以用于执行上文方法实施例描述的方法,其具体实现可以参照上文方法实施例的描述,为了简洁,这里不再赘述。
基于同一技术构思,本公开实施例还提供了一种电子设备。参照图8所示,为本公开实施例提供的电子设备的结构示意图,包括处理器801、存储器802、和总线803。其中,存储器802用于存储执行指令,包括内存8021和外部存储器8022;这里的内存8021也称内存储器,用于暂时存放处理器801中的运算数据,以及与硬盘等外部存储器8022交换的数据,处理器801通过内存8021与外部存储器8022进行数据交换,当电子设备800运行时,处理器801与存储器802之间通过总线803通信,使得处理器801在执行以下指令:
获取神经网络中的特征数据;其中,所述特征数据包括神经网络中特征处理层对应的权重特征数据和/或输出特征数据;所述特征数据中包括至少一个预设数值;
基于所述特征数据中各个维度位置的数值,生成所述特征数据对应的标记位数据;其中,所述标记位数据用于指示所述特征数据中非预设数值对应的维度位置;
基于所述标记位数据、和所述特征数据中的所述非预设数值,生成所述特征数据对应的用于进行传输的压缩后特征数据。
或处理器801执行以下指令:
解析接收到的目标传输数据中包括的码流头文件header,得到所述header上第一存储位包括的第一目标数值;
基于所述第一目标数值,确定数据传输模式;
基于所述数据传输模式,从所述目标传输数据中,确定神经网络中未压缩的特征数据。
其中,处理器801的具体处理流程可以参照上述方法实施例的记载,这里不再赘述。
此外,本公开实施例还提供一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,该计算机程序被处理器运行时执行上述方法实施例中所述的数据压缩方法、数据解压方法的步骤。其中,该存储介质可以是易失性或非易失的计算机可读取存储介质。
本公开实施例还提供一种计算机程序产品,该计算机程序产品承载有程序代码,所述程序代码包括的指令可用于执行上述方法实施例中所述的数据压缩方法、数据解压方法的步骤,具体可参见上述方法实施例,在此不再赘述。
其中,上述计算机程序产品可以具体通过硬件、软件或其结合的方式实现。在一个可选实施例中,所述计算机程序产品具体体现为计算机存储介质,在另一个可选实施例中,计算机程序产品具体体现为软件产品,例如软件开发包(Software Development Kit,SDK)等等。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统和装置的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。在本公开所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,又例如,多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些通信接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本公开各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个处理器可执行的非易失的计算机可读取存储介质中。基于这样的理解,本公开的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本公开各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-OnlyMemory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
以上仅为本公开的具体实施方式,但本公开的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本公开揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本公开的保护范围之内。因此,本公开的保护范围应以权利要求的保护范围为准。
Claims (13)
1.一种数据压缩方法,其特征在于,包括:
获取神经网络中的特征数据;其中,所述特征数据包括神经网络中特征处理层对应的权重特征数据和/或输出特征数据;所述特征数据中包括至少一个预设数值;
基于所述特征数据中各个维度位置的数值,生成所述特征数据对应的标记位数据;其中,所述标记位数据用于指示所述特征数据中非预设数值对应的维度位置;
基于所述标记位数据、和所述特征数据中的所述非预设数值,生成所述特征数据对应的用于进行传输的压缩后特征数据;
在确定所述压缩后特征数据的第一数据量小于所述特征数据对应的第二数据量的情况下,确定所述特征数据对应的数据传输模式为:传输所述压缩后特征数据的第一数据传输模式;
基于所述第一数据传输模式和确定的写入操作后的压缩码流对应的第三数据量,对码流头文件header进行写操作,生成更新后的header;
基于所述更新后的header和所述压缩后特征数据,生成目标传输数据,所述目标传输数据用于传输。
2.根据权利要求1所述的方法,其特征在于,在所述获取神经网络中的特征数据之后,所述方法还包括:
沿着所述特征数据的宽度维度和/或高度维度,对所述特征数据进行分块处理,得到所述特征数据对应的多个局部特征数据;其中,所述局部特征数据对应的数据量小于或等于设置的第一预设数据量;
所述基于所述特征数据中各个维度位置的数值,生成所述特征数据对应的标记位数据,包括:
基于所述每个所述局部特征数据中各个维度位置的数值,生成所述局部特征数据对应的标记位数据;
所述基于所述标记位数据、和所述特征数据中的所述非预设数值,生成所述特征数据对应的用于进行传输的压缩后特征数据,包括:
基于所述局部特征数据对应的标记位数据、和所述局部特征数据中的所述非预设数值,生成所述局部特征数据对应的压缩后特征数据。
3.根据权利要求1或2所述的方法,其特征在于,所述基于所述特征数据中各个维度位置的数值,生成所述特征数据对应的标记位数据,包括:
针对所述特征数据中的每个维度位置,若位于所述维度位置上的数值为预设数值,确定所述维度位置对应的标记位为第一数值;若位于所述维度位置上的数值为非预设数值,确定所述维度位置对应的标记位为第二数值;
基于所述特征数据中各个维度位置分别对应的标记位,生成所述特征数据对应的标记位数据。
4.根据权利要求3所述的方法,其特征在于,所述基于所述标记位数据、和所述特征数据中的所述非预设数值,生成所述特征数据对应的用于进行传输的压缩后特征数据,包括:
基于所述标记位数据中包括的第二数值,从所述特征数据中获取所述第二数值指示的维度位置处的非预设数值;
将获取的所述非预设数值写入到压缩码流,得到写入操作后的压缩码流;
基于所述写入操作后的压缩码流和所述标记位数据,生成所述特征数据对应的所述压缩后特征数据。
5.根据权利要求1或2所述的方法,其特征在于,在所述生成所述特征数据对应的用于进行传输的压缩后特征数据之后,所述方法还包括:
在确定所述压缩后特征数据的第一数据量大于或等于所述特征数据对应的第二数据量的情况下,确定所述特征数据对应的数据传输模式为:传输未压缩的所述特征数据的第二数据传输模式;
基于所述第二数据传输模式,对所述header进行写操作,生成更新后的header;
基于所述更新后的header和未压缩的所述特征数据,生成目标传输数据。
6.根据权利要求1或2所述的方法,其特征在于,在所述获取神经网络中的特征数据之后,所述方法还包括:
基于所述特征数据的尺寸信息、所述特征数据对应的数据类型、所述特征数据中包括的预设数值的比例,确定所述特征数据对应的、表征数据压缩程度的压缩比;
基于所述压缩比,执行以下操作中的至少一种:
确定是否对所述特征数据进行压缩;
评估处理所述神经网络的芯片的性能。
7.一种数据解压方法,其特征在于,包括:
解析接收到的目标传输数据中包括的码流头文件header,得到所述header上第一存储位包括的第一目标数值;
基于所述第一目标数值,确定数据传输模式;
基于所述数据传输模式,从所述目标传输数据中,确定神经网络中未压缩的特征数据;
所述基于所述数据传输模式,从所述目标传输数据中,确定神经网络中未压缩的特征数据,包括:
在所述数据传输模式为传输压缩后特征数据的第一数据传输模式的情况下,基于所述目标传输数据包括的标记位数据中第二数值对应的维度位置,从所述目标传输数据包括的写入操作后的压缩码流中,读取所述维度位置对应的非预设数值;
基于读取到的第三数据量的非预设数值、以及所述非预设数值对应的维度位置,生成所述神经网络中未压缩的特征数据;其中,所述第三数据量为在解析header后,基于header上第二存储位包括的第二目标数值确定的。
8.根据权利要求7所述的方法,其特征在于,所述基于所述数据传输模式,从所述目标传输数据中,确定神经网络中未压缩的特征数据,包括:
在所述数据传输模式为传输未压缩的特征数据的第二数据传输模式的情况下,从所述目标传输数据中,获取神经网络中未压缩的特征数据。
9.一种数据压缩系统,其特征在于,包括:数据压缩电路和外部存储器;
所述数据压缩电路,用于执行权利要求1至6任一所述的数据压缩方法;并将压缩后特征数据、未压缩的特征数据、目标传输数据中的至少一种存储至所述外部存储器;其中,所述目标传输数据为基于所述压缩后特征数据、或者未压缩的特征数据生成的。
10.一种数据解压系统,其特征在于,包括:数据解压电路和内部存储器;
所述数据解压电路,用于执行权利要求7或8所述的数据解压方法;并将解压得到的神经网络中未压缩的特征数据存储至所述内部存储器。
11.一种芯片,其特征在于,包括:数据压缩电路、外部存储器、数据解压电路、内部存储器和计算单元;
所述数据压缩电路,用于基于权利要求1至6任一所述的数据压缩方法,将获取到的神经网络中的特征数据进行压缩处理,得到压缩后特征数据;并基于压缩后特征数据或者未压缩的特征数据,生成目标传输数据,将所述目标传输数据存储至所述外部存储器;
所述数据解压电路,用于从所述外部存储器中获取所述目标传输数据,并基于权利要求7或8所述的数据解压方法,对所述目标传输数据进行解压处理,得到所述神经网络中的特征数据;以及将得到的所述特征数据存储至所述内部存储器;
所述计算单元,用于从所述内部存储器中读取所述特征数据,并基于读取到的所述特征数据进行运算,得到运算结果。
12.一种电子设备,其特征在于,包括:处理器、存储器和总线,所述存储器存储有所述处理器可执行的机器可读指令,当电子设备运行时,所述处理器与所述存储器之间通过总线通信,所述机器可读指令被所述处理器执行时执行如权利要求1至6任一所述的数据压缩方法的步骤;或执行如权利要求7或8所述的数据解压方法的步骤;或者
包括如权利要求11所述的芯片。
13.一种计算机可读存储介质,其特征在于,该计算机可读存储介质上存储有计算机程序,该计算机程序被处理器运行时执行如权利要求1至6任一所述的数据压缩方法的步骤;或执行如权利要求7或8所述的数据解压方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210112667.5A CN114466082B (zh) | 2022-01-29 | 2022-01-29 | 数据压缩、数据解压方法、系统及人工智能ai芯片 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210112667.5A CN114466082B (zh) | 2022-01-29 | 2022-01-29 | 数据压缩、数据解压方法、系统及人工智能ai芯片 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114466082A CN114466082A (zh) | 2022-05-10 |
CN114466082B true CN114466082B (zh) | 2024-01-09 |
Family
ID=81410997
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210112667.5A Active CN114466082B (zh) | 2022-01-29 | 2022-01-29 | 数据压缩、数据解压方法、系统及人工智能ai芯片 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114466082B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114723033B (zh) * | 2022-06-10 | 2022-08-19 | 成都登临科技有限公司 | 数据处理方法、装置、ai芯片、电子设备及存储介质 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105451042A (zh) * | 2015-12-14 | 2016-03-30 | 福建新大陆通信科技股份有限公司 | 一种基于机顶盒的文件升级系统及方法 |
CN108614978A (zh) * | 2018-04-19 | 2018-10-02 | 中国平安人寿保险股份有限公司 | 压缩包的校验方法、装置、存储介质以及终端 |
CN110352412A (zh) * | 2017-02-24 | 2019-10-18 | 德克萨斯仪器股份有限公司 | 矩阵压缩加速器系统和方法 |
CN110520909A (zh) * | 2017-04-17 | 2019-11-29 | 微软技术许可有限责任公司 | 使用激活数据的压缩和解压缩来减少存储器带宽利用率的神经网络处理器 |
CN112446476A (zh) * | 2019-09-04 | 2021-03-05 | 华为技术有限公司 | 神经网络模型压缩的方法、装置、存储介质和芯片 |
CN113630375A (zh) * | 2020-05-07 | 2021-11-09 | 三星电子株式会社 | 使用四叉树方法的参数的压缩设备及方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2021140275A1 (en) * | 2020-01-07 | 2021-07-15 | Nokia Technologies Oy | High level syntax for compressed representation of neural networks |
-
2022
- 2022-01-29 CN CN202210112667.5A patent/CN114466082B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105451042A (zh) * | 2015-12-14 | 2016-03-30 | 福建新大陆通信科技股份有限公司 | 一种基于机顶盒的文件升级系统及方法 |
CN110352412A (zh) * | 2017-02-24 | 2019-10-18 | 德克萨斯仪器股份有限公司 | 矩阵压缩加速器系统和方法 |
CN110520909A (zh) * | 2017-04-17 | 2019-11-29 | 微软技术许可有限责任公司 | 使用激活数据的压缩和解压缩来减少存储器带宽利用率的神经网络处理器 |
CN108614978A (zh) * | 2018-04-19 | 2018-10-02 | 中国平安人寿保险股份有限公司 | 压缩包的校验方法、装置、存储介质以及终端 |
CN112446476A (zh) * | 2019-09-04 | 2021-03-05 | 华为技术有限公司 | 神经网络模型压缩的方法、装置、存储介质和芯片 |
CN113630375A (zh) * | 2020-05-07 | 2021-11-09 | 三星电子株式会社 | 使用四叉树方法的参数的压缩设备及方法 |
Also Published As
Publication number | Publication date |
---|---|
CN114466082A (zh) | 2022-05-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Szymczak et al. | An Edgebreaker-based efficient compression scheme for regular meshes | |
CN112953550B (zh) | 数据压缩的方法、电子设备及存储介质 | |
CN110995273B (zh) | 电力数据库的数据压缩方法、装置、设备及介质 | |
CN111144457B (zh) | 图像处理方法、装置、设备及存储介质 | |
US20200294629A1 (en) | Gene sequencing data compression method and decompression method, system and computer-readable medium | |
CN114466082B (zh) | 数据压缩、数据解压方法、系统及人工智能ai芯片 | |
CN105144157A (zh) | 用于压缩数据库中的数据的系统和方法 | |
CN115208414B (zh) | 数据压缩方法、数据压缩装置、计算机设备及存储介质 | |
CN110554878A (zh) | 数据转换方法、游戏数据的处理方法、装置和服务器 | |
CN113806350B (zh) | 一种提高大数据交易平台安全性的管理方法及系统 | |
CN113312325B (zh) | 轨迹数据传输方法、装置、设备及存储介质 | |
CN107911570B (zh) | 一种对图片特征进行压缩及解压的方法 | |
CN109981108B (zh) | 数据压缩方法、解压缩方法、装置及设备 | |
CN112052916B (zh) | 基于神经网络的数据处理方法、装置以及可读存储介质 | |
US9898834B2 (en) | Method and apparatus for generating a bitstream of repetitive structure discovery based 3D model compression | |
CN116707532A (zh) | 一种压缩文本的解压方法、装置、存储介质及电子设备 | |
CN110209598B (zh) | 一种高速缓冲存储器、一种数据读写控制方法及系统 | |
CN109474826B (zh) | 图片压缩方法、装置、电子设备及存储介质 | |
CN109213973A (zh) | Vin码转码存储方法及装置和对应的读取方法及装置 | |
CN115603758A (zh) | 一种客户号压缩和解压方法及装置 | |
US6774827B2 (en) | Code compression process, system and computer program product therefor | |
CN117811589B (zh) | 一种基于人工智能的企业数据压缩方法及系统 | |
CN111324587A (zh) | Obj文件的数据的压缩方法、解析方法以及系统 | |
CN111782734B (zh) | 数据压缩、解压方法和装置 | |
CN108989813A (zh) | 一种高效率压缩/解压缩方法、计算机装置和存储介质 |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |