CN110555521A - 神经网络稀疏激活映射的无损压缩 - Google Patents
神经网络稀疏激活映射的无损压缩 Download PDFInfo
- Publication number
- CN110555521A CN110555521A CN201910392588.2A CN201910392588A CN110555521A CN 110555521 A CN110555521 A CN 110555521A CN 201910392588 A CN201910392588 A CN 201910392588A CN 110555521 A CN110555521 A CN 110555521A
- Authority
- CN
- China
- Prior art keywords
- tensor
- block
- lossless compression
- coding
- activation map
- 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
- 230000006835 compression Effects 0.000 title claims abstract description 157
- 238000007906 compression Methods 0.000 title claims abstract description 157
- 230000004913 activation Effects 0.000 title claims abstract description 96
- 238000013528 artificial neural network Methods 0.000 title claims abstract description 38
- 238000013507 mapping Methods 0.000 title claims description 17
- 238000000034 method Methods 0.000 claims abstract description 50
- 230000006837 decompression Effects 0.000 claims description 8
- 238000012549 training Methods 0.000 description 10
- 230000008569 process Effects 0.000 description 6
- 238000013139 quantization Methods 0.000 description 3
- 238000002059 diagnostic imaging Methods 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 238000003709 image segmentation Methods 0.000 description 2
- 238000003058 natural language processing Methods 0.000 description 2
- 238000012545 processing Methods 0.000 description 2
- 238000013519 translation Methods 0.000 description 2
- 102100029095 Exportin-1 Human genes 0.000 description 1
- 102100029091 Exportin-2 Human genes 0.000 description 1
- 101710147878 Exportin-2 Proteins 0.000 description 1
- 102100032833 Exportin-4 Human genes 0.000 description 1
- 101710147879 Exportin-4 Proteins 0.000 description 1
- 102100032839 Exportin-5 Human genes 0.000 description 1
- 108700037230 Exportin-5 Proteins 0.000 description 1
- 230000000712 assembly Effects 0.000 description 1
- 238000000429 assembly Methods 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 108700002148 exportin 1 Proteins 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 230000008676 import Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 230000002123 temporal effect 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/10—Interfaces, programming languages or software development kits, e.g. for simulating neural 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/08—Learning methods
-
- 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
-
- 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
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M7/00—Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
- H03M7/30—Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
- H03M7/3059—Digital compression and data reduction techniques where the original information is represented by a subset or similar information, e.g. lossy compression
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M7/00—Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
- H03M7/30—Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
- H03M7/60—General implementation details not specific to a particular type of compression
- H03M7/6064—Selection of Compressor
- H03M7/607—Selection between different types of compressors
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M7/00—Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
- H03M7/30—Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
- H03M7/70—Type of the data to be coded, other than image and sound
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Health & Medical Sciences (AREA)
- Life Sciences & Earth Sciences (AREA)
- Biomedical Technology (AREA)
- Biophysics (AREA)
- Software Systems (AREA)
- Computing Systems (AREA)
- Evolutionary Computation (AREA)
- Data Mining & Analysis (AREA)
- General Health & Medical Sciences (AREA)
- Molecular Biology (AREA)
- Computational Linguistics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Artificial Intelligence (AREA)
- Neurology (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
Abstract
一种系统和方法提供神经网络的激活映射的无损压缩。该系统包括格式器和编码器。格式化器将对应于激活映射的张量格式化为值的至少一个块,其中张量具有H×W×C的大小,并且其中H表示张量的高度,W表示张量的宽度,并且C表示张量的通道数。编码器使用至少一个无损压缩模式独立于张量的其他块对至少一个块进行编码。选择用于编码至少一个块的至少一个无损压缩模式可以不同于被选择用于编码张量的另一个块的无损压缩模式。
Description
相关申请的交叉引用
本专利申请要求在35 U.S.C.§119(e)下要求于2018年6月1日提交的美国临时专利申请No.62/679,545的优先权权益,其公开内容通过引用整体并入本文。
技术领域
本文公开的主题一般涉及一种系统和方法,其提供神经网络的激活映射的无损编码/解码,以减少存储器需求,特别是在神经网络的训练期间。
背景技术
深度神经网络最近已经主导了广泛的应用,从计算机视觉(图像分类、图像分割)、自然语言处理(词级预测、语音识别和机器翻译)到医学成像等等。专用硬件已经被设计用于尽可能高效地运行深度神经网络。然而,在软件方面,一些研究已经集中于在运行时期间最小化这些网络的存储器和计算需求。
当试图在具有有限存储器的嵌入式设备上训练神经网络时,尽可能地最小化算法的存储器需求是重要的。在训练期间,大部分存储器实际上被激活映射占用。例如,当前深度神经网络系统的激活映射消耗系统所需的总存储器的大约60%至85%。因此,减少与激活映射相关联的存储器占用空间成为减少训练算法的整个存储器占用空间的重要部分。
在使用整流线性单元(ReLU)作为激活函数的神经网络中,激活映射趋于变得稀疏。例如,在Inception-V3模型中,大多数激活映射具有大于50%的稀疏度,并且在某些情况下超过90%。因此,对于可以针对该稀疏度以降低训练算法的存储器需求的压缩系统存在强烈的市场需求。
发明内容
一个示例实施例提供了一种无损压缩神经网络的激活映射的系统,其中该系统可以包括格式化器和编码器。格式化器可以将对应于激活映射的张量(tensor)格式化为值的至少一个块,其中张量具有H×W×C的大小,其中H表示张量的高度,W表示张量的宽度,并且C表示张量的通道数。编码器可以使用至少一个无损压缩模式独立于张量的其他块对至少一个块进行编码。在一个实施例中,所述至少一个无损压缩模式可以选自包括Exponential-Golomb编码、Sparse-Exponential-Golomb编码、Sparse-Exponential-Golomb-RemoveMin编码、Golomb-Rice编码、Exponent-Mantissa编码、零编码、固定长度编码和稀疏固定长度编码的组。在另一实施例中,被选择用于编码所述至少一个块的所述至少一个无损压缩模式可以不同于被选择用于编码所述张量的另一个块的无损压缩模式。在另一实施例中,所述编码器可以进一步地通过使用多个无损压缩模式独立于所述张量的其他块对所述至少一个块进行编码。
另一示例实施例提供了一种无损压缩神经网络的激活映射的方法,其中该方法可以包括:在格式化器处接收至少一个激活映射,该激活映射被配置为具有大小为H×W×C的张量,其中H表示张量的高度,W表示张量的宽度,并且C表示张量的通道数;由格式化器将张量格式化为值的至少一个块;以及由编码器使用至少一个无损压缩模式独立于张量的其他块对所述至少一个块进行编码。
另一示例实施例提供了一种无损解压缩神经网络的激活映射的方法,其中该方法可以包括:在解码器处接收表示激活映射的值的至少一个压缩块的比特流;由解码器来解压缩值的所述至少一个压缩块以形成值的至少一个解压缩块,其中值的所述至少一个解压缩块可以使用与用于压缩所述至少一个块的无损压缩模式对应的至少一个解压缩模式,独立于激活映射的其他块而解压缩;以及由解格式化器将所述至少一个块解格式化为大小为H×W×C的张量,其中H表示张量的高度,W表示张量的宽度,并且C表示张量的通道数,张量是解压缩的激活映射。
附图说明
在以下部分中,将参考附图中示出的示例性实施例来描述本文公开的主题的各方面,附图中:
图1A和1B分别描绘了根据本文公开的主题的用于深度神经网络的激活映射的编码/解码的压缩器和解压缩器的示例实施例;
图2A和2B分别描绘了根据本文公开的主题的深度神经网络的激活映射的编码方法和解码方法的示例实施例;以及
图3描绘了根据本文公开的主题的神经网络的层处的激活映射的操作流程。
具体实施方式
在以下详细描述中,阐述了许多具体细节以便提供对本公开的透彻理解。然而,本领域技术人员将理解,可以在没有这些具体细节的情况下实践所公开的方面。在其他情况下,没有详细描述众所周知的方法、过程、组件和电路,以免模糊本文公开的主题。
贯穿本说明书对“一个实施例”或“实施例”的引用意味着结合该实施例描述的特定特征、结构或特性可以包括在本文公开的至少一个实施例中。因此,贯穿本说明书在各个地方出现的短语“在一个实施例中”或“在实施例中”或“根据一个实施例”(或具有类似导入的其他短语)可能不一定都指代相同的实施例。此外,特定特征、结构或特性可以在一个或多个实施例中以任何合适的方式组合。在这方面,如本文所使用的,词语“示例性”意味着“用作示例、实例或说明”。本文中描述为“示例性”的任何实施例不应被解释为必须优选或优于其他实施例。此外,取决于本文讨论的上下文,单数术语可以包括相应的复数形式,并且复数术语可以包括相应的单数形式。还应注意,本文示出和讨论的各种图(包括组件图)仅用于说明目的,并未按比例绘制。类似地,仅出于说明性目的而示出了各种波形和时序图。例如,为了清楚起见,一些元件的大小可能相对于其他元件被夸大。此外,如果认为合适,则在附图中重复使用附图标记以指示对应和/或类似的元件。
本文使用的术语仅用于描述特定示例性实施例的目的,并不旨在限制所要求保护的主题。如本文所使用的,单数形式“一”、“一个”和“该”也旨在包括复数形式,除非上下文另有明确说明。将进一步理解,当在本说明书中使用时,术语“包括”和/或“包含”指定所述特征、整数、步骤、操作、元件和/或组件的存在,但不排除一个或多个其他特征、整数、步骤、操作、元件、组件和/或其组的存在或者添加。本文使用的术语“第一”、“第二”等用作它们之前的名词的标签,并且不暗示任何类型的排序(例如,空间、时间、逻辑等),除非明确定义如此。此外,可以在两个或更多个图中使用相同的附图标记来指代具有相同或相似功能的部件、组件、块、电路、单元或模块。然而,这种用法仅为了简化说明和便于讨论;这并不意味着这些组件或单元的构造或结构细节在所有实施例中是相同的,或者这种共同引用的部件/模块是实现本文公开的特定实施例的教导的唯一方式。
除非另外定义,否则本文使用的所有术语(包括技术和科学术语)具有与本主题所属领域的普通技术人员通常理解的含义相同的含义。将进一步理解的是,诸如在常用词典中定义的术语的那些术语应该被解释为具有与其在相关领域的上下文中的含义一致的含义,并且将不被理解为理想化或过于正式的含义,除非在此明确定义。
本文公开的主题涉及一种系统和方法,其提供神经网络的激活映射的无损编码/解码以减少存储器需求,特别是在深度神经网络的训练期间。可以独立于其他层的激活映射,并且根据训练算法的需要,对于神经网络的每个层的激活映射执行编码和解码步骤。虽然本文公开的无损编码/解码技术可以压缩所有稀疏度(包括0%和接近100%的稀疏度),但是如果激活映射中的零值的数量相对较高,则可以优化本文公开的技术。也就是说,本文公开的系统和方法对于相应的更高的稀疏度实现更高的压缩度。另外,本文公开的主题提供对现有压缩算法的若干修改,其可用于利用激活映射的数据的稀疏度以获得更大的压缩度。
在一个实施例中,编码器可以被配置为接收大小为H x W x C的张量作为输入,其中H对应于输入张量的高度,W对应于输入张量的宽度,以及C到输入张量的通道数。接收的张量可以被格式化为更小的块,本文称为“压缩单元”。可以使用各种不同的压缩模式独立地压缩压缩单元。编码器生成的输出是压缩比特流。当压缩单元被解压缩时,将其重新格式化为其原始形状,作为大小为HxWxC的张量的至少一部分。
本文公开的技术可以应用于减少神经网络的激活映射的存储器需求,所述神经网络被配置为提供应用,诸如但不限于计算机视觉(图像分类、图像分割)、自然语言处理(字级预测、语音识别和机器翻译)和医学成像。神经网络应用可以用在自动车辆、移动设备、机器人和/或其他低功率设备(例如无人机)中。本文公开的技术在训练期间和/或嵌入专用设备中减少神经网络的存储器消耗。本文公开的技术可以在通用处理设备上或在专用设备中实现。
图1A和1B分别描绘了根据本文公开的主题的用于深度神经网络的激活映射的编码/解码的压缩器100和解压缩器110的示例实施例。描绘为形成压缩器100和解压缩器110的各种组件可以体现为模块。本文使用的术语“模块”指的是被配置为提供结合模块描述的功能的软件、固件和/或硬件的任何组合。软件可以体现为软件包、代码和/或指令集或指令,并且如在本文描述的任何实现中使用的术语“硬件”可以例如单独地或以任何组合包括硬连线电路、可编程的电路、状态机电路和/或存储由可编程电路执行的指令的固件。模块可以共同地或单独地实现为形成较大系统的一部分的电路,例如但不限于集成电路(IC)、片上系统(SoC)等。
在压缩激活映射之前,压缩器100和解压缩器110被配置为使用相应的压缩和解压缩模式。神经网络的每个层的激活映射可以由图1A和1B的压缩器/解压缩器对处理,以减少在训练期间神经网络的存储器需求。
参考图1A,已经在神经网络的层生成的激活映射101被配置为大小为HxWxC的张量,其中H对应于输入张量的高度,W对应于输入张量的宽度,并且C对应于输入张量的通道数。也就是说,将神经网络的层的激活映射存储为大小为HxWxC的单个张量。如果激活映射101的值尚未从浮点数量化为整数,则激活映射101的非量化值可以由量化器102量化为具有任何比特宽度(即,8比特、12比特、16比特等)的整数值,以形成量化的激活映射103。如果需要,量化器102的量化也可以被认为是引入额外压缩的一种方式,但是以牺牲准确性为代价。
为了便于压缩,可以由格式化器104将HxWxC量化的激活映射103格式化为值块,其中每个块在本文中称为“压缩单元”105。即,张量大小为HxWxC的激活映射103可以分成较小的压缩单元。压缩单元105可以包括以通道主要顺序的K个元素(或值),其中K>0;扫描线(即,每个块可以是激活映射的一行);或以行主要顺序中的K个元素(或值),其中K>0。用于形成压缩单元105的其他技术或方法也是可能的。例如,对应的神经网络硬件的激活映射的加载模式可以用作块格式化技术的基础。
每个压缩单元105可以由编码器106独立于其他压缩单元进行无损编码或压缩,以形成比特流(bitstream)107。可以使用多种压缩技术中的任何一种对每个压缩单元105进行无损编码或压缩,所述压缩技术在本文称为“压缩模式”或简称为“模式”。示例无损压缩模式包括但不限于Exponential-Golomb编码、Sparse-Exponential-Golomb编码、Sparse-Exponential-Golomb-RemoveMin编码、Golomb-Rice编码、Exponent-Mantissa编码、零编码、固定长度编码和稀疏固定长度编码。应该理解,其他无损编码技术可以作为示例压缩模式的附加或替代之一使用。还应注意,许多示例压缩模式是公开可用的或基于公开可用的压缩模式,但是,Sparse-Exponential-Golomb和Sparse-Exponential-Golomb-RemoveMin压缩模式除外。本文提供了Sparse-Exponential-Golomb和Sparse-Exponential-Golomb-RemoveMin压缩模式的细节。
Exponential-Golomb编码是众所周知的压缩模式,其指定可变长度码,其中较小的数被分配较短的码。用于编码数字的比特数以指数方式增加,并且一个参数(通常称为阶数k参数)控制比特数增加的速率。下面的伪代码提供了Exponential-Golomb压缩模式的示例细节。
Let x,x>=0be the input,let k be the parameter(order)%使x为输入,x大于等于0,使k为参数(阶数)
Generate output bitstream:<Quotient Code><Remainder Code>:%生成输出比特流:<商数码><余数码>
Quotient Code:%商数码:
Encode q=floor(x/2^k)using0order exp-Golomb code:%使用0阶exp-Golomb码来编码q=floor(x/2^k)
z=binary(q+1)
numBits=len(z)
Write numBits-1zero bits followed by z,and denote by u%写入num-Bits-1个0位,然后是z
Remainder Code:%余数码
Encode r=x%2^k in binary,and denote by f=binary(r)%在二进制中编码r=x%2^k,然后用f=binary(r)表示
Concatenate u,f to produce output bitstream%连接u,f以产生输出比特流
Exponential-Golomb压缩模式的示例是:
x=23,k=3
q=floor(23/2^3)=2
z=binary(2+1)=binary(3)=11
numBits=len(z)=2
u=011(2-1=1zero followed by z)%2-1=1个0,然后是z
f=binary(r)=binary(23%8)=binary(7)=111
Final output=011+111=011111
表1给出了输入值x=0 29和阶数k=0-3的Exponential-Golomb压缩模式的值。
表1
Sparse-Exponential-Golomb压缩模式是Exponential-Golomb压缩模式的扩展或变化,其中如果要编码的值x是0,则在输出比特流中值x由“1”表示。否则,Exponential-Golomb编码添加“0”,然后使用标准Exponential-Golomb对值x-1进行编码。在块(压缩单元)值是8比特的一个实施例中,阶数k=4可以提供最佳结果。
Sparse-Exponential-Golomb-RemoveMin压缩模式是Sparse-Deponential-Golomb压缩模式的扩展或变化,其使用以下规则:(1)在压缩单元中编码值之前,确定最小非零值,其可以由变量y表示。(2)然后使用Exponential-Golomb压缩模式对变量y进行编码。(3)如果要编码的值x是0,则将其编码为“1”,并且(4)否则将“0”添加到比特流,然后使用Exponential-Golomb压缩模式对x-y编码。
Golomb-Rice压缩模式和Exponent-Mantissa压缩模式是众所周知的压缩算法。下面的伪代码阐述了Golomb-Rice压缩模式的示例细节。
Let x,x>=0be the input and M be the parameter.M is a power of2.%使x为输入,x大于等于0,且M是参数。M是2的次方数。
q=floor(x/M)
r=x%M
Generate output bitstream:<Quotient Code><Remainder Code>:%产生输出比特流:<商数码><余数码>
Quotient Code:%商数码
Write q length string of1bits%写入q长度的1比特字符串
Write a0bit%写入0比特
Remainder Code:binary(r)in log2(M)bits%余数码:log2(M)比特中的binary(r)
Golomb-Rice压缩模式的示例是:
x=23,M=8,log2(M)=3
q=floor(23/8)=2
r=7
Quotient Code:110%商数码:110
Remainder Code:111%余数码:111
Output=110111%输出=110111
零编码压缩模式检查压缩单元是否完全由零形成,并且如果是,则返回空比特流。应当注意,如果压缩单元包含至少一个非零值,则不能使用零编码压缩模式。
固定长度编码压缩模式是不执行压缩的基线或默认压缩模式,并且使用固定数量的比特简单地对压缩单元的值进行编码。
最后,稀疏固定长度编码压缩模式与固定长度编码压缩模式相同,除非要编码的值x为0,则编码为1,否则添加0并且使用固定数量的比特来编码非零值。
返回参考图1A,编码器106以48比特开始所述压缩比特流107,其中使用16比特分别表示输入张量的H、W和C。针对可用的每种压缩模式迭代地压缩每个压缩单元105。在激活映射的压缩期间,可以固定每个压缩单元可用的压缩模式。在一个实施例中,全范围的可用压缩模式可以由L比特表示。例如,如果有四种压缩模式可用,则可以使用两比特前缀来指示四种可用压缩模式的相应索引(即,00、01、10和11)。在替换实施例中,可以使用前缀可变长度编码技术来保存一些比特。例如,编码器106最常使用的压缩模式的索引可以由“0”表示,并且第二、第三和第四最常用的压缩模式分别由“10”、“110”和“111”表示。如果仅使用一种压缩模式,则不需要将索引附加到压缩单元的比特流的开头。
在一个实施例中,当压缩压缩单元时,可以运行所有可用的压缩模式,并且可以选择已经生成最短比特流的压缩模式。可以将用于所选压缩模式的相应索引作为前缀附加到特定压缩单元的比特流的开头,然后可以将用于压缩单元的结果比特流添加到用于整个激活映射的比特流。然后可以针对激活映射的所有压缩单元重复该过程。可以使用与用于相邻或邻近压缩单元的压缩模式不同的压缩模式来压缩激活映射的每个相应压缩单元。在一个实施例中,可以使用少数的压缩模式,诸如两种压缩模式,以降低压缩激活映射的复杂性。
在图1B中,解压缩器110读取前48比特以取回H、W和C,并且一次处理比特流107一个压缩单元。解压缩器110知道L(模式索引的比特数)和压缩单元中的元素数量(取决于所使用的压缩模式的W或K)。也就是说,对应于原始激活映射101的比特流107由解码器112解压缩以形成压缩单元113。压缩单元113由解格式化器114解格式化以形成具有大小为HxWxC的张量的量化的激活映射115。量化的激活映射115可以由去量化器116去量化以形成原始激活映射117。
图2A和2B分别描绘了根据本文公开的主题的深度神经网络的激活映射的编码方法200和解码方法210的示例实施例。神经网络的每个层的激活映射可以由图2A和图2B的编码/解码方法对处理。在压缩激活映射之前,诸如图1A和1B中所示的压缩器100和解压缩器110被配置为使用相应的压缩和解压缩模式。
在图2A中,该过程在201开始。在202,接收要编码的激活映射。激活映射已经在神经网络的层生成,被配置为大小为HxWxC的张量,其中H对应于输入张量的高度,W对应于输入张量的宽度,并且C对应于输入张量的通道数。如果激活映射的值尚未从浮点数量化为整数,则在202处,可以将激活映射的非量化值量化为具有任何比特宽度的整数值,以形成量化的激活映射。
在204处,量化的激活映射可以被格式化为压缩单元。在205处,可以独立于其他压缩单元对每个压缩单元进行无损编码或压缩,以形成比特流。可以使用多种压缩模式中的任何一种对每个压缩单元进行无损编码或压缩。示例无损压缩模式包括但不限于Exponential-Golomb编码、Sparse-Exponential-Golomb编码、Sparse-Exponential-Golomb-RemoveMin编码、Golomb-Rice编码、Exponent-Mantissa编码、零编码、固定长度编码和稀疏定长度编码。针对可用的每种压缩模式迭代地压缩每个压缩单元105。在一个实施例中,当压缩单元被压缩时,可以运行所有可用的压缩模式,并且可以选择已经生成最短比特流的压缩模式。当已经对激活映射的所有压缩单元进行了编码时,在206处该过程结束激活映射。
在图2B中,该过程开始于211。在212,接收比特流并读取前48比特以取回编码的压缩单元。在213处,对每个编码的压缩单元进行解码以形成解码的压缩单元。在214处,将每个解码的压缩单元解格式化以形成激活映射。如果要对激活映射的值进行去量化,则在215处对值进行去量化以形成去量化的激活映射。在216处该过程结束激活映射。
以下示例伪代码对应于方法200。
下面的示例伪代码对应于方法200。
#decompressUnit已经知道使用了多少压缩模式以及使用多少比特作为标头来指示压缩模式的索引。在一个实施例中,使用的压缩模式的数量是数量L。
#decompressUnit也知道压缩单元中包含多少个元素,在这个例子中元素的数量是K。
#decodeNextValue(bitstream,modeIdx)使用modeIdx选择正确的解码器来解码下一个值。它还剥离(strips)比特流中使用的比特。它返回解码值和剥离的比特流。
图3描绘了根据本文公开的主题的神经网络的层L处的激活映射的操作流程300。操作流程300表示通过层L的前向和后向处理方向。即,操作流程300表示用于训练神经网络和用于从输入形成到神经网络的推断的操作流程。激活映射(未示出)的编码(压缩)表示在从存储器(未示出)读出时变为比特流301。在302处,比特流被解码以形成压缩单元303。压缩单元303在304处被解格式化以形成量化的激活映射305。(再次,应当注意,激活映射的量化可以是可选的。)在306,量化的激活映射305被解量化以形成层L的激活映射307。
在神经网络的层L处使用激活映射307来计算输出激活映射308。输出激活映射308(可选地)在309处量化以形成量化的激活映射310。量化的激活映射310在311处被格式化以形成压缩单元312。压缩单元312在313处被编码以形成比特流314,其被存储在存储器(未示出)中以供以后使用。
为了提供与本文所示的每个无损压缩模式相关联的压缩势的一般意义,通过使用Imagenet数据库在Inception-V3模型上运行十个输入图像来形成激活映射的示例数据集。生成用于Inception-V3模型的所有层的激活映射以形成数据集,在此称为数据集S10。每个激活映射被独立地压缩并针对每种压缩模式求平均,以为每种压缩模式提供代表性的压缩因子。表2列出了为数据集S10确定的不同压缩模式的代表性压缩因子。
表2
标签 | 编码技术 | 压缩因子(S10) | 评论 |
1 | 固定长度 | 1.0x | 无压缩 |
2 | 稀疏固定长度 | 1.59x | |
3 | 1+2 | 1.65x | 使用了2模式 |
4 | Exponent-Mantissa | 1.37x | |
5 | 3+4 | 1.70x | 使用了3模式 |
6 | Golomb-Rice | 1.38x | 参数M=16 |
7 | 5+6 | 1.87x | 使用了4模式 |
8 | Exponential-Golomb | 1.36x | 参数K=4 |
9 | Sparse-Exponential-Golomb | 1.83x | 参数K=4 |
10 | 9+6+1 | 1.97x | 使用了3模式 |
11 | 10+零编码 | 1.98x | 使用了4模式 |
从表2中可以看出,通过使用四种压缩模式,对数据集S10获得的最大压缩是1.98x。同样如在表2中可以看到的,通过使用不同的压缩模式和压缩模式的不同组合可以获得不同的压缩程度。
针对不同的量化级别使用来自Imagenet训练集和Inception V3模型的500个输入图像形成另一示例数据集S500。表3列出了针对数据集S500获得的不同压缩模式和压缩模式组合的压缩因子。独立地压缩每层的激活映射,并将结果平均以获得五次运行中的每一次的一个压缩因子。使用的加载模式是通道主要加载模式。
表3
在表3中,Exp1使用Sparse-Exponential-Golomb压缩模式。Exp2使用Sparse-Exponential-Golomb和固定长度压缩模式。Exp3使用Sparse-Exponential-Golomb和Golomb-Rice压缩模式。Exp4使用Sparse-Exponential-Golomb、固定长度和Golomb-Rice压缩模式。Exp5使用Sparse-Exponential-Golomb、固定长度,Golomb-Rice和零编码压缩模式。
如本领域技术人员将认识到的,本文描述的创新概念可以在广泛的应用中进行修改和变化。因此,所要求保护的主题的范围不应限于上面讨论的任何特定示例性教导,而是由所附权利要求限定。
Claims (20)
1.一种无损压缩神经网络的激活映射的系统,该系统包括:
格式化器,其将对应于激活映射的张量格式化为值的至少一个块,所述张量具有H×W×C的大小,其中H表示所述张量的高度,W表示所述张量的宽度,并且C表示所述张量的通道数;以及
编码器,其使用至少一个无损压缩模式独立于所述张量的其他块来对所述至少一个块进行编码。
2.如权利要求1所述的系统,其中所述至少一个无损压缩模式选自包括Exponential-Golomb编码、Sparse-Exponential-Golomb编码、Sparse-Exponential-Golomb-RemoveMin编码、Golomb-Rice编码、Exponent-Mantissa编码、零编码、固定长度编码和稀疏固定长度编码的组。
3.如权利要求2所述的系统,其中,被选择用于编码所述至少一个块的所述至少一个无损压缩模式不同于被选择用于编码所述张量的另一个块的无损压缩模式。
4.如权利要求2所述的系统,其中,所述编码器还通过使用多个所述无损压缩模式独立于所述张量的其他块来对所述至少一个块进行编码。
5.如权利要求2所述的系统,其中,所述至少一个块包括48比特。
6.如权利要求1所述的系统,其中所述编码器输出编码为比特流的至少一个块。
7.如权利要求6所述的系统,还包括:
解码器,其使用与用于压缩所述至少一个块的至少一个无损压缩模式相对应的至少一个解压缩模式,独立于所述张量的其他块来解码所述至少一个块;以及
解格式化器,其将所述至少一个块解格式化为大小为H x W x C的张量。
8.如权利要求1所述的系统,其中所述激活映射包括浮点值,所述系统还包括:
量化器,该量化器将所述激活映射的所述浮点值量化为整数值。
9.一种无损压缩神经网络的激活映射的方法,该方法包括:
在格式化器处接收至少一个激活映射,该激活映射被配置为具有大小为H×W×C的张量,其中H表示所述张量的高度,W表示所述张量的宽度,并且C表示所述张量的通道数;
由格式化器将张量格式化为值的至少一个块;以及
由编码器使用至少一个无损压缩模式,独立于张量的其他块来对所述至少一个块进行编码。
10.如权利要求9所述的方法,还包括从包括Exponential-Golomb编码、Sparse-Exponential-Golomb编码、Sparse-Exponential-Golomb-RemoveMin编码、Golomb-Rice编码、Exponent-Mantissa编码、零编码、固定长度编码和稀疏固定长度编码的组选择所述至少一个无损压缩模式。
11.如权利要求10所述的方法,其中,被选择以对所述至少一个块进行编码的所述至少一个无损压缩模式与被选择以对所述张量的另一个块进行编码的无损压缩模式不同。
12.如权利要求10所述的方法,其中编码所述至少一个块还包括使用多个无损压缩模式独立于所述张量的其他块对所述至少一个块进行编码。
13.如权利要求10所述的方法,其中,所述至少一个块包括48比特。
14.如权利要求9所述的方法,还包括从所述编码器输出编码为比特流的所述至少一个块。
15.如权利要求14所述的方法,还包括:
由解码器使用与用于压缩所述至少一个块的所述至少一个无损压缩模式相对应的至少一个解压缩模式,独立于张量的其他块来解码所述至少一个块;以及
由解格式化器将所述至少一个块解格式化为大小为H×W×C的张量。
16.如权利要求9所述的方法,其中,所述激活映射包括浮点值,该方法还包括:由量化器将所述激活映射的所述浮点值量化为整数值。
17.一种无损解压缩神经网络的激活映射的方法,该方法包括:
在解码器处接收表示所述激活映射的值的至少一个压缩块的比特流;
由解码器解压缩所述值的至少一个压缩块以形成值的至少一个解压缩块,使用与用于压缩所述至少一个块的至少一个无损压缩模式对应的至少一个解压缩模式,独立于所述激活映射的其他块对值的所述至少一个解压缩块来解压缩;以及
由解格式化器将所述至少一个块解格式化为大小为H×W×C的张量,其中H表示所述张量的高度,W表示所述张量的宽度,并且C表示所述张量的通道数,所述张量是解压缩的激活映射。
18.如权利要求17所述的方法,其中,所述至少一个无损压缩模式选自包括Exponential-Golomb编码、Sparse-Exponential-Golomb编码、Sparse-Exponential-Golomb-RemoveMin编码、Golomb-Rice编码、Exponent-Mantissa编码、零编码、固定长度编码和稀疏固定长度编码的组。
19.如权利要求18所述的方法,还包括:
在格式器处接收至少一个激活映射,所示至少一个激活映射被配置为具有张量大小为H×W×C的张量;
由格式化器将所接收的所述至少一个激活映射的张量格式化为值的至少一个块;以及
由编码器使用所述至少一个无损压缩模式,独立于所接收的至少一个激活映射的所述张量的其他块来压缩所述至少一个块。
20.如权利要求19所述的方法,其中,被选择用于压缩所述至少一个块的所述至少一个无损压缩模式不同于被选择用于压缩所接收的至少一个激活映射的所述张量的另一个块的无损压缩模式,以及
其中压缩所述至少一个块还包括由编码器使用多个无损压缩模式,独立于所接收的至少一个激活映射的所述张量的其他块来压缩所述至少一个块。
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201862679545P | 2018-06-01 | 2018-06-01 | |
US62/679,545 | 2018-06-01 | ||
US16/046,993 US20190370667A1 (en) | 2018-06-01 | 2018-07-26 | Lossless compression of sparse activation maps of neural networks |
US16/046,993 | 2018-07-26 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN110555521A true CN110555521A (zh) | 2019-12-10 |
Family
ID=68692573
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910392588.2A Pending CN110555521A (zh) | 2018-06-01 | 2019-05-13 | 神经网络稀疏激活映射的无损压缩 |
Country Status (3)
Country | Link |
---|---|
US (1) | US20190370667A1 (zh) |
KR (1) | KR20190137684A (zh) |
CN (1) | CN110555521A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114418086A (zh) * | 2021-12-02 | 2022-04-29 | 北京百度网讯科技有限公司 | 压缩神经网络模型的方法、装置 |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR102233174B1 (ko) * | 2019-01-28 | 2021-03-29 | 포항공과대학교 산학협력단 | 신경망 가속기 및 그것의 동작 방법 |
US10785681B1 (en) * | 2019-05-31 | 2020-09-22 | Huawei Technologies Co., Ltd. | Methods and apparatuses for feature-driven machine-to-machine communications |
US11615301B2 (en) * | 2019-09-03 | 2023-03-28 | Microsoft Technology Licensing, Llc | Lossless exponent and lossy mantissa weight compression for training deep neural networks |
KR20210074681A (ko) * | 2019-12-12 | 2021-06-22 | 한국전자기술연구원 | 저복잡도 딥러닝 가속 하드웨어 데이터 가공장치 |
GB202003088D0 (en) * | 2020-03-04 | 2020-04-15 | Samsung Electronics Co Ltd | Method and system for action recognition |
US11580402B2 (en) * | 2020-05-11 | 2023-02-14 | Arm Limited | System and method for compressing activation data |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1767395A (zh) * | 2004-10-29 | 2006-05-03 | 微软公司 | 整数数据的无损自适应编码与解码 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI524265B (zh) * | 2011-06-30 | 2016-03-01 | 艾特拉股份有限公司 | 浮點資料之壓縮 |
US8847798B2 (en) * | 2012-12-17 | 2014-09-30 | Maxeler Technologies, Ltd. | Systems and methods for data compression and parallel, pipelined decompression |
-
2018
- 2018-07-26 US US16/046,993 patent/US20190370667A1/en not_active Abandoned
-
2019
- 2019-05-08 KR KR1020190053965A patent/KR20190137684A/ko not_active Application Discontinuation
- 2019-05-13 CN CN201910392588.2A patent/CN110555521A/zh active Pending
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1767395A (zh) * | 2004-10-29 | 2006-05-03 | 微软公司 | 整数数据的无损自适应编码与解码 |
Non-Patent Citations (3)
Title |
---|
A.LOGANATHAN等: ""Comparison of encoding techniques for transmission of image data obtained using Compressed Sensing in Wireless Sensor Networks"", 《2013 INTERNATIONAL CONFERENCE ON RECENT TRENDS IN INFORMATION TECHNOLOGY》, 26 June 2014 (2014-06-26), pages 1 - 6 * |
HYOMIN CHOI等: ""Near-Lossless Deep Feature Compression for Collaborative Intelligence"", 《ARXIV》, 26 April 2018 (2018-04-26), pages 1 - 6 * |
SIHUI LUO等: ""DeepSIC: Deep Semantic Image Compression"", 《ARXIV》, 29 January 2018 (2018-01-29), pages 1 - 8 * |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114418086A (zh) * | 2021-12-02 | 2022-04-29 | 北京百度网讯科技有限公司 | 压缩神经网络模型的方法、装置 |
CN114418086B (zh) * | 2021-12-02 | 2023-02-28 | 北京百度网讯科技有限公司 | 压缩神经网络模型的方法、装置 |
US11861498B2 (en) | 2021-12-02 | 2024-01-02 | Beijing Baidu Netcom Science Technology Co., Ltd. | Method and apparatus for compressing neural network model |
Also Published As
Publication number | Publication date |
---|---|
US20190370667A1 (en) | 2019-12-05 |
KR20190137684A (ko) | 2019-12-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11588499B2 (en) | Lossless compression of neural network weights | |
CN110555521A (zh) | 神经网络稀疏激活映射的无损压缩 | |
US20200143226A1 (en) | Lossy compression of neural network activation maps | |
EP1514355B1 (en) | Method and system for multi-rate lattice vector quantization of a signal | |
JP5936687B2 (ja) | ツリー構造の適応的エントロピー符号化方法 | |
CN109379598B (zh) | 一种基于fpga实现的图像无损压缩方法 | |
CN112399181B (zh) | 图像编解码的方法、装置和存储介质 | |
WO2001050768A2 (en) | Method and apparatus for video compression using sequential frame cellular automata transforms | |
US6601032B1 (en) | Fast code length search method for MPEG audio encoding | |
CN102857767A (zh) | 高位深图像的压缩 | |
CN103428498A (zh) | 一种无损图像压缩系统 | |
TW201415418A (zh) | 使用誤差平面編碼的數據壓縮方法及裝置 | |
US20220335963A1 (en) | Audio signal encoding and decoding method using neural network model, and encoder and decoder for performing the same | |
US8754792B2 (en) | System and method for fixed rate entropy coded scalar quantization | |
US5966470A (en) | Coding apparatus for image compression | |
US9948928B2 (en) | Method and apparatus for encoding an image | |
US6433707B1 (en) | Universal lossless compressor for digitized analog data | |
TWI840438B (zh) | 用於壓縮神經網路的激活映射的系統與方法以及用於對神經網路的經稀疏化的激活映射進行解壓縮的方法 | |
JP5580295B2 (ja) | 規則的点ネットワークにおけるベクトルをカウントする方法 | |
Al-Khafaji et al. | Grey-Level image compression using 1-d polynomial and hybrid encoding technique | |
Ginesta et al. | Vector quantization of contextual information for lossless image compression | |
US6678648B1 (en) | Fast loop iteration and bitstream formatting method for MPEG audio encoding | |
CN110739974B (zh) | 数据压缩方法及装置和计算机可读存储介质 | |
Kossentini et al. | High order entropy-constrained residual VQ for lossless compression of images | |
Ouyang et al. | A Dynamic Codec with Adaptive Quantization for Convolution Neural Network |
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 |