CN110490296A - 一种构造卷积神经网络(cnn)模型的方法和系统 - Google Patents
一种构造卷积神经网络(cnn)模型的方法和系统 Download PDFInfo
- Publication number
- CN110490296A CN110490296A CN201910312776.XA CN201910312776A CN110490296A CN 110490296 A CN110490296 A CN 110490296A CN 201910312776 A CN201910312776 A CN 201910312776A CN 110490296 A CN110490296 A CN 110490296A
- Authority
- CN
- China
- Prior art keywords
- domain
- winograd
- weight
- regularization
- spatial domain
- 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
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
- 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/04—Architecture, e.g. interconnection topology
- G06N3/045—Combinations of 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
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- General Health & Medical Sciences (AREA)
- Biomedical Technology (AREA)
- Biophysics (AREA)
- Computational Linguistics (AREA)
- Life Sciences & Earth Sciences (AREA)
- Evolutionary Computation (AREA)
- Artificial Intelligence (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Health & Medical Sciences (AREA)
- Image Analysis (AREA)
Abstract
本文公开了一种用于构造卷积神经网络(CNN)模型的方法和系统。该方法包括正则化空间域权重,提供空间域权重的量化,修剪空间域中的小权重或零权重,微调量化码本,压缩来自量化码本的量化输出,以及解压缩空间域权重并在修剪Winograd域权重之后使用稀疏空间域卷积和稀疏Winograd卷积。
Description
优先权
本申请要求于2018年5月14日在美国专利商标局提交的指定的序列号为62/671,311的美国临时专利申请以及于2018年9月25日在美国专利商标局提交的指定的序列号为16/141,035的美国非临时专利申请的优先权,其全部内容通过引用并入本文。
技术领域
本公开一般涉及一种方法和系统,更具体地,涉及一种利用卷积神经网络(Convolutional Neural Network,CNN)的方法和系统。
背景技术
利用卷积神经网络(CNN)的深度学习最近已经在许多计算机视觉应用中实现了性能突破。现代CNN的进步伴随着具有大量可学习参数的非常深且复杂的多层架构。大的模型尺寸和巨大的计算复杂度阻碍了在资源有限的平台(诸如电池供电的移动设备)上部署最先进的CNN。因此,将复杂的CNN模型压缩为紧凑形式以降低其存储器要求并减少其计算成本是非常有意义的。
发明内容
根据一个实施例,提供了一种方法。该方法包括正则化空间域权重,提供空间域权重的量化,修剪(prune)空间域中的小权重或零权重,微调量化码本,压缩来自量化码本的量化输出,和解压缩空间域权重,以及在修剪Winograd域权重后使用稀疏空间域卷积和稀疏Winograd卷积。
根据一个实施例,提供了一种系统。该系统包括处理器和非暂时性计算机可读存储介质,该非暂时性计算机可读存储介质被配置为存储指令,该指令在被执行时使得处理器正则化空间域权重,提供对空间域权重的量化,修剪空间域中的小权重或零权重,微调量化码本,压缩来自量化码本的量化输出,解压缩空间域权重,以及在修剪Winograd域权重后使用稀疏空间域卷积和稀疏Winograd卷积。
附图说明
通过结合附图的以下详细描述,本公开的某些实施例的以上和其他方面、特征和优点将更加显而易见,其中:
图1是根据实施例的产生压缩的CNN的方法的流程图;
图2是根据实施例的重新训练CNN的方法的流程图;
图3是根据实施例的对CNN模型进行解压缩的方法的流程图;
图4是根据一个实施例的网络环境中的电子设备的框图;并且
图5是根据一个实施例的程序的框图。
具体实施方式
在下文中,参考附图详细描述了本公开的实施例。应该注意的是,相同的元素将由相同的附图标记表示,尽管它们在不同的附图中示出。在以下描述中,仅提供诸如详细配置和组件的具体细节以帮助全面理解本公开的实施例。因此,对于本领域技术人员来说显而易见的是,在不脱离本公开的范围的情况下,可以对本文描述的实施例进行各种改变和修改。另外,为了清楚和简明,省略了对公知功能和结构的描述。下面描述的术语是考虑到本公开中的功能而定义的术语,并且可以根据用户、用户的意图或习惯而不同。因此,术语的定义应当基于整个说明书的内容而确定。
本公开可以具有各种修改和各种实施例,其中实施例在下面参考附图被详细描述。然而,应当理解的是,本公开不限于该实施例,而是包括在本公开的范围内的所有修改、等同物和替代物。
尽管包括诸如第一、第二等序数的术语可以用于描述各种元件,但结构元件不受该术语的限制。该术语仅用于区分一个元件与另一元件。例如,在不脱离本公开的范围的情况下,第一结构元件可以被称为第二结构元件。类似地,第二结构元件也可以被称为第一结构元件。如本文所使用的,术语“和/或”包括一个或多个关联项的任何和所有组合。
本文使用的术语仅用于描述本公开的各种实施例,而不旨在限制本公开。除非上下文另有明确指示,否则单数形式旨在包括复数形式。在本公开中,应当理解,术语“包括”或“具有”指示特征、数量、步骤、操作、结构元件、部件、或其组合的存在,并且不排除添加一个或多个其他特征、数字、步骤,操作、结构元件、部件、或其组合的存在或可能性。
除非另外定义,否则本文使用的所有术语具有与本公开所属领域的技术人员所理解的含义相同的含义。诸如在一般使用的字典中定义的那些术语的术语将被解释为具有与相关领域中的上下文含义相同的含义,并且将不被解释为具有理想或过度正式的含义,除非在本公开中明确定义。
根据一个实施例的电子设备可以是各种类型的电子设备中的一个。电子设备可以包括例如便携式通信设备(例如,智能电话)、计算机、便携式多媒体设备、便携式医疗设备、相机、可穿戴设备或家用电器。根据本公开的一个实施例,电子设备不限于上述那些。
本公开中使用的术语不旨在限制本公开,而是旨在包括对应实施例的各种改变、等同物或替换物。关于附图的描述,类似的附图标记可以用于指代类似或相关的元件。除非相关上下文另有明确指示,否则与项相对应的名词的单数形式可以包括该事物中的一个或多个。如本文所使用的,如“A或B”、“A和B中的至少一个”、“A或B中的至少一个”、“A、B或C”、“A、B和C中的至少一个”以及“A、B或C中的至少一个”的这种短语中的每一个可以包括在该短语的对应一个短语中一起列举的项的所有可能组合。如本文所使用的,诸如“第一”和“第二”的术语可以用来区分对应的组件与另一组件,而不旨在在其他方面(例如,重要性或顺序)限制组件。意图是如果元件(例如,第一元件)被称为(有或没有术语“可操作地”或“通信地”)“与另一元件(例如,第二元件)耦合”、“耦合到另一元件”、“与另一元件连接”或“连接到另一元件”,则指示该元件可以直接(例如,有线地)、无线地或经由第三元件与该另一元件耦合。
如本文所使用的,术语“模块”可以包括以硬件、软件或固件实施的单元,并且可以与其他术语(例如,“逻辑”、“逻辑块”、“部件”和“电路”)互换使用。模块可以是适配来执行一个或多个功能的单个集成组件或其最小单元或部件。例如,根据一个实施例,模块可以以专用集成电路(Application-Specific Integrated Circuit,ASIC)的形式实施。
已经积极研究CNN尺寸压缩用于存储器和存储装置尺寸减小。可以使用权重修剪、权重量化(例如,使用k均值聚类和霍夫曼编码)、进一步分析和数学优化来实现CNN的典型压缩。具体地,已经在2017年2月15日提交的题为“Method and Apparatus for NeuralNetwork Quantization(神经网络量化的方法和装置)”的美国专利申请No.15/433,531和2017年9月6日提交的题为“Method and Apparatus for Neural Network Quantization(神经网络量化的方法和装置)”的美国专利申请No.15/697,035中描述了通过随机化的(抖动的)权重量化和通用源编码实现用于任何CNN模型的普遍有效的CNN压缩的通用CNN压缩,其内容通过引用并入此文。
此外,还期望降低CNN计算复杂度。深度CNN的主要计算成本是由于卷积层中的乘法累加(Multiply-Accumulate,MAC)操作。例如,典型的AlexNet模型需要724M MAC来处理一个图像,而92%的MAC(666M MAC)来自其卷积层。典型的VGG-16模型每一个输入图像需要15.5G MAC,并且99%的MAC(15.3G MAC)在其卷积层中消耗。典型的ResNet-152模型仅包括除最终全连接层之外的卷积层,并且在其卷积层中使用11.3G MAC来处理一个图像。
为了降低CNN卷积的复杂度,一种典型的方法是使用频域卷积或Winograd卷积。具体地,对于典型的小尺寸滤波器(诸如3×3滤波器),Winograd卷积示出比频域卷积更有效。另一典型方法是使用权重修剪来通过跳过用于被修剪的权重(小权重或零权重)的MAC来减少卷积中的MAC。
本系统和方法包括使用Winograd域正则化或Winograd域正则化器(例如,部分L2正则化)来正则化空间域权重用于在Winograd域中生成稀疏Winograd滤波器,使用空间域正则化或空间域正则化器(例如,部分L2正则化)来正则化空间域权重用于生成稀疏空间域滤波器,提供对空间域权重的量化(例如,均匀量化);在空间域中修剪小权重或零权重,利用Winograd域正则化微调量化码本,但仅微调非零码值,并(例如,利用通用无损编码)压缩来自量化码本的量化输出。本系统可以进一步在推理中对压缩的模型进行解压缩,并且解压缩的(decompressed)模型可以利用空间域卷积,同时通过跳过用于被修剪的权重的MAC来降低复杂度。解压缩的模型可以变换到Winograd域,并且可以在推理中利用更低复杂度的Winograd卷积,同时通过在Winograd域中跳过用于被修剪的权重的MAC来降低复杂度。
本系统和方法压缩CNN的参数(即,权重)以便缩减存储装置/存储器要求,同时通过修剪权重和跳过卷积中用于被修剪的权重的MAC操作来降低卷积的计算复杂度。在不偏离本公开的范围的情况下,本系统和方法可以应用于任何类型的CNN模型以用于压缩和复杂度降低。具体地,本系统和方法包括用于对CNN的硬件和/或软件平台独立的修剪和压缩的框架。例如,该框架允许对CNN的修剪和压缩、对CNN的解压缩、以及在执行空间域卷积的硬件或执行Winograd卷积的更低复杂度硬件上对CNN的部署。可以在空间域或Winograd域中执行修剪以获得额外的计算效率。
本系统和方法产生具有卷积滤波器的压缩的CNN模型,该卷积滤波器在空间域中稀疏,并且也在Winograd变换之后的Winograd域中稀疏。因此,可以为支持空间域卷积或Winograd卷积的任何平台部署一个压缩的CNN模型,并且其卷积滤波器的稀疏度可以用于任一域中的复杂度降低。
本系统和方法压缩并生成一个空间域CNN模型,该模型可以被重新训练为在空间域和Winograd域两者中具有稀疏卷积滤波器。本系统和方法通过Winograd域正则化(例如,(使用正则化项的参数的平方值的部分和的)部分L2正则化)来正则化空间域权重,用于在Winograd域中生成稀疏Winograd滤波器。本系统和方法进一步通过空间域正则化(例如,部分L2正则化)来正则化空间域权重,用于生成稀疏空间域滤波器。本系统和方法对幅度小于阈值的权重应用正则化,其中阈值从权重幅度值的第r百分位数(percentile)确定,并且可以在每个训练迭代更新。正则化系数可以是可学习参数,该可学习参数随着训练继续进行而逐渐增加用于小正则化系数的惩罚项。本系统和方法对压缩的稀疏CNN模型进行解压缩并在修剪后使用稀疏空间域卷积或稀疏Winograd卷积。
代替直接训练Winograd域滤波器并存储Winograd域滤波器,本系统和方法在空间域中训练空间域滤波器并压缩空间域滤波器,同时将空间域滤波器正则化为当他们变换到Winograd域时在Winograd域中也稀疏。以这种方式,本系统和方法开发了一个受训练和压缩的模型,该模型可以利用稀疏空间域卷积和稀疏Winograd卷积中的任何一个。由于空间域中有更小数量的权重,因此可以在空间域中压缩模型。然而,压缩的模型可以在Winograd变换之后利用Winograd卷积。
本系统通过利用Winograd域正则化(例如,部分L2正则化)和空间域正则化(例如,部分L2正则化)重新训练和/或微调CNN,在Winograd域以及空间域中将空间域滤波器正则化为稀疏。在不偏离本公开的范围的情况下,也可以使用部分L1或其他正则化方法。
为了获得改进的压缩比,模型在具有更少数量的参数的空间域中被压缩。由于正则化,通用CNN压缩系统和方法产生在空间域和Winograd域两者中具有稀疏卷积滤波器的一个压缩的CNN模型,使得该模型可以利用任何稀疏空间域卷积或稀疏Winograd卷积。因此,在解压缩之后,模型在空间域中表示并且卷积已经是稀疏的。
如果硬件或软件平台支持,本系统通过将稀疏空间域卷积变换为Winograd卷积,提供CNN的重新训练以在Winograd域中运行解压缩的模型,这一般需要更少的计算周期。本系统还允许在Winograd域中进行修剪而没有明显的精度损失。
出于说明目的,考虑具有L个卷积层的典型CNN模型(为简单起见,省略了全连接或池化层)。层l的输入具有尺寸为Hl×Wl的Cl个通道,并且输出具有尺寸为Hl-rl+1×Wl-rl+1的Dl个通道,其中该输入用尺寸为rl×rl×Cl的Dl个滤波器进行卷积而没有填充(padding)。对于1≤l≤L,1≤i≤Cl和1≤j≤Dl,xl(i)和yl(j)分别是层l的输入通道i和输出通道j的2D输入和输出特征图,并且wl(i,j)是用于层l的输入通道i和输出通道j的二维(Two-dimensional,2D)卷积滤波器。如等式(1)所示,卷积层l产生yl(j)。
对于1≤j≤Dl,其中*表示2D空间域卷积。
空间域卷积等效于频域或Winograd域中的按元素(element-wise)乘积。此外,已知Winograd卷积是需要可能最小数量的乘法的卷积。
给定尺寸为W×H的2D输入特征图和尺寸为r×r的2D滤波器,Winograd卷积在从输入特征图中提取的尺寸为m×m的片(patch)上工作。使用Winograd卷积来利用r×r滤波器对m×m个片中的每一个片进行卷积以产生尺寸为(m-r+1)×(m-r+1)的输出片。从输入特征图以(m-r+1)×(m-r+1)的步幅提取m×m个输入片。在每个片的Winograd卷积之后,输出被组合成输出特征图。在n=r的情况下,这变为空间域卷积。
在一个示例中,x和y分别是m×m个输入片中的一个及其对应的输出片。w是r×r滤波器。对于Winograd卷积,输入和滤波器分别使用Winograd变换矩阵F和G变换到Winograd域,如等式(2)所示,如下:
X=FxFT,W=GwGT
(2)
AT表示某些矩阵A的矩阵转置。分别地,X是Winograd域特征图,并且W是Winograd域滤波器。在Winograd域中,X和W的尺寸均为m×m,并且随后是按元素乘积。使用矩阵A将输出变换回空间域,如等式(3)所示,如下:
y=AT(GwGT)⊙(FxFT)A,
(3)
⊙表示两个矩阵的按元素乘积。变换矩阵F、G和A是(r,n)特定的,并且可以从中国余数定理(Chinese remainder theorem)中获得。
例如,如等式(4)所示,对于r=3且m=4
对于稀疏Winograd卷积,直接学习如等式(2)中所述的Winograd域滤波器W,而以下形式的Winograd卷积用于训练的损失和梯度计算,如等式(5)所示:
y=AT(W⊙(FTxF))A.
(5)
对于Winograd域权重修剪,可以定义修剪掩模矩阵,用P表示,其尺寸与W相同,其将等式(5)修改为等式(6):
y=AT((W⊙P)⊙(FTxF))A,
(6)
如果相应的Winograd域滤波器权重小于阈值,则将P的元素设置为零,并且如果相应的Winograd域滤波器权重不小于阈值,则将P的元素设置为一。选择阈值以实现期望的修剪率。在优化未被修剪的Winograd域权重的同时,当Winograd域权重的值小于某个阈值时,Winograd域权重被强制为零。
这种方法的一个缺点是受训练的模型也需要Winograd卷积引擎进行推理,因为由于逆变(inversion)被超定(over-determined)的事实,Winograd滤波器不可逆到空间域。另一个缺点是,在Winograd变换之后要存储的权重数量增加,并且因此Winograd域模型需要更多的存储装置/存储器。
对于空间域滤波器w,本系统可以通过Winograd变换将其变换为Winograd域滤波器W。本系统使w和W都稀疏,同时仅为一个压缩的模型保存w。本系统基于相应的空间域正则化系数和Winograd域正则化系数将w和W中的权重正则化,使得w和W都稀疏。
图1是根据实施例的用于产生压缩的CNN的方法的流程图100。在102处,使用Winograd域正则化来将空间域权重正则化。代替直接在Winograd域中训练Winograd域滤波器并修剪Winograd域滤波器中的一些,本系统和方法训练空间域滤波器,同时在Winograd域中将空间域滤波器正则化为稀疏。w是可学习的L个层的所有卷积滤波器的集合(即w≡{wl(i,j),1≤l≤L,1≤i≤Cl和1≤j≤Dl})。给定任何矩阵A,1|A|≤θ被定义为与A相同尺寸的矩阵,而如果A中的对应元素α满足|α|≤θ,则该矩阵的元素为一,否则为零。本系统可以包括如下面的等式(7)中定义的Winograd域部分L2正则化:
或
||·||表示L2范数,Gl是由层l处的Winograd卷积的滤波器尺寸和输入片尺寸确定的Winograd变换矩阵。NWD是所有L个层的Winograd域权重的总数。θr或θWD是阈值,并且PWD(θr)是类似于等式(6)的修剪掩模矩阵。L2正则化基于Winograd域权重的幅度值仅应用于Winograd域权重的一部分。由于这种正则化,空间域权重被正则化以在训练之后部分地产生减小的Winograd域权重,并且可以在对稀疏Winograd卷积的推理中以可忽略的损失修剪这种不显着的Winograd域权重。给定期望的修剪率r>0,阈值θr可以被设置为Winograd域权重幅度值的第r百分位数。随着权重更新,在每个训练迭代更新阈值。用于不同层的单独阈值或一个公共阈值可以被选择来控制每个层的稀疏度。
对于正则化的训练,在训练中最小化的代价函数C定义为等式(8):
C(X;w)=E(X;w)+eλRWD(w;θr)-αλ
(8)
其中X是训练数据集,E(X;w)是主网络的目标损失函数(例如,分类问题的交叉熵或回归问题的均方误差损失函数)。
应注意的是,eλ被用作正则化系数,使得正则化系数总是正的。代替使用固定的正则化系数(即,λ的固定值),本系统可以提供可学习的正则化系数。从小的或预定义的系数值开始,本系统学习几乎没有正则化和性能损失的CNN模型。可以引入附加的正则化项(例如,对于α>0的-αλ)来惩罚小的正则化系数并且鼓励它们在训练中增加。利用惩罚项αλ,对于α>0,可学习的正则化系数随着训练继续进行而逐渐增加,并且最终可以使大量的Winograd域权重接近零。
与可学习的正则化系数相关的描述可以在3/7/2018提交的题为“Method andApparatus for Learning Low-Precision Neural Network that Combines WeightQuantization and Activation Quantization(结合权重量化和激活量化的、用于学习低精度神经网络的方法和装置)”的美国专利申请No.15/914,229中找到,其全部内容通过引用并入本文。
对于阈值内的部分Winograd域权重,Winograd域部分L2正则化可以假设零均值高斯先验,其中高斯先验的负对数似然可以用作正则化项。等式(8)中描述的正则化系数eλ可以与高斯先验的方差相关(即,方差的倒数对应于正则化系数eλ)。在这种贝叶斯模型中,本系统可以将高斯先验的方差视为随机变量,并通过学习找到最优方差,这利用等式(8)中的惩罚项引出可学习的正则化系数实施方式。由于没有关于方差的知识,因此不假设方差的先验分布(即,对于方差,可以假设在(0,∞)上的均匀分布)。
在102处使用Winograd域正则化的空间域权重的正则化可以利用梯度下降。对于梯度下降,以下可以定义为等式(9)和(10):
其中
例如,对于r=3和m=4,简单地假设P(θr)=1(没有修剪),随后从等式(4)和(10)导出等式(11):
其中这意味着
此外,可以使用等式(12)通过梯度下降来更新λ:
可以观察到eλ趋向于α/RWD,并且随着正则化器RWD减小,正则化系数eλ变得更大。更大的正则化系数进一步将Winograd域权重正则化以在随后的更新中靠近零。以这种方式,本系统可以逐渐稀疏(sparsify)Winograd域滤波器,同时在训练中更新空间域权重。
在104处,使用空间域正则化来将空间域权重正则化。
类似于稀疏Winograd域滤波器的正则化,本系统可以利用正则化的训练来修剪空间域权重。类似于等式(5),本系统可以使用如等式(13)中的空间域部分L2正则化器:
或
其中θr或θSD是某个阈值,并且PSD(θr)是空间域中的修剪掩模矩阵。
给定原始CNN模型,如果可能,本系统执行空间域权重修剪。本系统利用空间域和Winograd域部分L2正则化为卷积滤波器定义代价函数,如等式(14)和(15):
其中
其中θWD(rWD)和θSD(rSD)是分别在Winograd域和空间域中给定期望的修剪率rWD和rSD的用于修剪的阈值,并且αWD>0和αSD>0是在训练前选择和固定的超参数(hyperparameter)。
图2是根据实施例的重新训练CNN的方法的流程图200。在流程图200中,本系统进一步使用具有小批量的随机梯度下降来重新训练网络。在202处,更新权重。可以使用来自等式(16)的梯度在w中更新权重:
在204处,更新正则化系数。可以使用来自等式(17)的梯度来更新正则化系数λWD和λSD:
在206处,更新阈值。阈值θWD(rwD)和θSD(rSD)可以分别被更新为Winograd域权重幅度值的第rWD百分位数和空间域权重幅度值的第rSD百分位数。
在208处,基于预定条件完成训练。例如,如果对于足够大的预定的正常数ΓWD和ΓSD,λWD>ΓWD并且λSD>ΓSD,或者迭代次数大于预定界限,则训练可以结束。
根据一个实施例,在通过正则化在Winograd域和空间域两者中稀疏滤波器之后,可以通过空间域中的通用压缩来进一步压缩稀疏CNN模型。通用压缩包括如下三个步骤。
参考回图1,在106处,提供空间域权重的量化,并且修剪空间域中的小权重或零权重。本系统可以进一步执行空间域权重的均匀或抖动均匀量化,并修剪空间域中的小权重或零权重。可以通过添加均匀随机抖动来随机化空间域权重。例如,如果ω1、ω2、...是用于量化的空间域各个权重,其中NSD是空间域权重的总数,则它们可以通过等式(18)随机化:
其中U1、U2、...是独立且相同分布的均匀随机变量,均匀分布的支撑是并且Δ是随后的均匀量化的量化间隔。在随机抖动之后,可以使用等式(19)中的间隔Δ的均匀码本来量化权重:
其中取整函数为在量化之后,本系统修剪小权重或零权重并且将被修剪的权重固定为零以用于剩余的微调和压缩步骤。对于未被修剪的权重,本系统可以从均匀量化输出中取消回随机抖动,仅具有,如公式(20)中所示:
其中是权重ωi的最终通用量化输出。可以使用任何类型的量化方法而不偏离本公开。
在108处,用仅使用非零码值的Winograd域正则化来微调量化码本。本系统进一步通过仅微调非零码值用Winograd域部分L2正则化来微调均匀码本,以补偿量化后的精度损失。然后,通过使用平均梯度的梯度下降来更新它们在码本中的共享量化值,其由等式(21)给出:
其中t是迭代时间,η是学习率,并且Cn是针对某些非零整数n被量化为相同值cn=nΔ的所有权重的索引集合。在更新码本之后,在码本中他们的共享量化值之后更新各个权重,如等式(22):
对于n≠0。被修剪的权重不被微调并且保持为零。对于稀疏Winograd域滤波器,本系统在码本微调步骤中维持Winograd域部分L2正则化器。可以不包括空间域部分L2正则化器,因为在量化之后空间域被修剪的权重保持为零。
在110处,压缩来自量化码本的量化输出。本系统利用通用无损编码压缩量化输出。在随机化量化之后的源编码中,编码器和解码器共享关于随机抖动的信息(即,U1、U2、...)。在这种假设下,编码器添加回抖动并对均匀量化输出(即,qi)进行编码。另一方面,解码器对均匀量化输出进行解码,然后取消随机抖动以对随机化量化输出进行解压缩。为了避免共享随机抖动,本系统可以使用编码器和解码器都知道的伪随机数生成器。应当理解,可以使用任何类型的压缩编码而不偏离本公开的范围。
图3是根据实施例的对CNN模型进行解压缩的方法的流程图300。在302处,开始解压缩。可以对压缩的比特流执行解压缩,以获得量化的空间域权重。在304处,对于空间域卷积,使用稀疏空间域卷积来执行推理。在推理中解压缩的空间域权重可以直接用于空间域卷积。对于Winograd卷积,在306处,在Winograd变换(例如,将解压缩的空间域滤波器变换到Winograd域)之后执行Winograd域权重修剪。空间域权重可以被转换(变换)为Winograd域权重,然后Winograd域权重可以被修剪到期望的稀疏度等级。Winograd域权重可以基于它们的幅度值被修剪(例如,修剪幅度小于预定阈值的Winograd域权重)。被修剪的Winograd域权重可以用于Winograd卷积。在308处,使用稀疏Winograd卷积来执行推理。
可以为对于稀疏Winograd卷积和稀疏空间域卷积两者的通用CNN压缩系统呈现实验结果。可以针对被修剪的AlexNet评估本系统。本系统可以通过对图像数据集的增量修剪和重新训练来修剪预先训练的AlexNet模型。结果,本系统主要从全连接层中修剪了90%的空间域权重。
本系统基于winograd域部分L2正则化系数和空间域部分L2正则化系数来重新训练被修剪的AlexNet。具体地,本系统在AlexNet模型的Conv2至Conv5层上应用正则化器,并重新训练它们的权重。对于其他层,已经被修剪的权重被固定为零,并且只有未被修剪的权重以Conv2至Conv5权重重新训练。
仅使用空间域(Spatial Domain,SD)权重正则化,Conv2至Conv5中的滤波器在空间域中稀疏,但不在Winograd域中稀疏。因此,在变换到Winograd域并被修剪后,性能显著下降。然而,如果空间域和Winograd域(Winograd Domain,WD)正则化两者都被应用(SD+WD),Conv2至Conv5中的滤波器在两个域中都变得稀疏,并且修剪不会真正损害两个域中的性能。表1说明了每一层的修剪率和被修剪的模型的精度。针对Conv2至Conv5层使用空间域卷积(称为“Conv”)或使用Winograd卷积(称为“WConv”)来评估精度。
表1:被修剪的AlexNet模型的精度。
*空间域卷积用于Conv2-Conv5的精度评估
*Winograd卷积用于Conv2-Conv5的精度评估
在如上训练之后,本系统在空间域中修剪训练后的CNN模型。本系统通过采用先前实验中修剪率为70%的两个模型,进一步对被修剪的AlexNet模型应用量化和通用CNN压缩。本系统比较均匀量化(Uniform Quantization,UQ)和抖动均匀量化(Dithered UniformQuantization,DUQ)。
本系统检查{0.005,0.01,0.015,0.02}中的不同单元尺寸。单元尺寸越大,压缩比越大,但精度损失也变得越大。本系统利用当前的Winograd域部分L2正则化进一步微调量化后的码本,并且使用熵压缩方案来压缩模型。
本系统进一步对CNN模型进行解压缩,提供在空间域中稀疏的量化的CNN模型。即使模型在空间域中稀疏,利用Winograd域部分L2正则化的训练和码本微调允许将模型变换到Winograd域,然后以很小的精度损失在Winograd域中修剪它以使其在Winograd域中也稀疏。
表2示出了不同单元尺寸的精度和压缩比。使用表2中的稀疏空间域卷积来评估精度。观察到在量化之后修剪率增加,因为一些非零权重被量化为零。在对码本进行微调时,小权重或零权重保持为零。当对其他非零权重的码本进行微调时,其他非零权重被更新,
表2:压缩的AlexNet模型的精度和压缩比。
表3示出了当针对Conv2至Conv5层使用稀疏WConv时压缩的AlexNet模型的精度。本系统在空间域中压缩AlexNet模型。对模型进行解压缩,并将Conv2至Conv5层中的权重变换到Winograd域。然后在Winograd域中针对稀疏Winograd卷积修剪小幅度权重。结果表明,正则化的AlexNet模型即使在量化后也会产生稀疏Winograd域滤波器,尽管由于量化误差会有一些损失。
表3:使用稀疏Winograd卷积,压缩的AlexNet模型的精度。
图4是根据一个实施例的网络环境400中的电子设备401的框图。参考图4,网络环境400中的电子设备401可以经由第一网络498(例如,短程无线通信网络)与电子设备402通信,或者经由第二网络499(例如,远程无线通信网络)与电子设备404或服务器408通信。电子设备401可以经由服务器408与电子设备404通信。电子设备401可以包括处理器420、存储器430、输入设备450、声音输出设备455、显示设备460、音频模块470、传感器模块476、接口477、触觉模块479、相机模块480、电源管理模块488、电池489、通信模块490、订户识别模块(Subscriber Identification Module,SIM)496或天线模块497。在一个实施例中,可以从电子设备401中省略组件中的至少一个(例如,显示设备460或相机模块480),或者可以将一个或多个其他组件添加到电子设备401中。在一个实施例中,组件中的一些可以实施为单个集成电路(Integrated Circuit,IC)。例如,传感器模块476(例如,指纹传感器、虹膜传感器或照度传感器)可以嵌入在显示设备460(例如,显示器)中。
处理器420可以执行例如软件(例如,程序440)以控制与处理器420耦合的电子设备401的至少一个其他组件(例如,硬件或软件组件),并且可以执行各种数据处理或计算。作为数据处理或计算的至少一部分,处理器420可以将从另一组件(例如,传感器模块476或通信模块490)接收的命令或数据加载在易失性存储器432中,处理存储在易失性存储器432中的命令或数据,并将结果数据存储在非易失性存储器434中。处理器420可以包括主处理器421(例如,中央处理单元(Central Processing Unit,CPU)或应用处理器(ApplicationProcessor,AP))以及辅助处理器423(例如,图形处理单元(Graphics Processing Unit,GPU)、图像信号处理器(Image Signal Processor,ISP)、传感器集线器处理器或通信处理器(Communication Processor,CP)),辅助处理器423可操作地独立于主处理器421或与主处理器421结合。另外地或可替代地,辅助处理器423可以适配来比主处理器421消耗更少的功率,或者执行特定功能。辅助处理器423可以实施为与主处理器421分离或者是其一部分。
在主处理器421处于非活动(例如,睡眠)状态时代替主处理器421,或者在主处理器421处于活动状态(例如,执行应用)时与主处理器421一起,辅助处理器423可以控制与电子设备401的组件当中的至少一个组件(例如,显示设备460、传感器模块476或通信模块490)相关的至少一些功能或状态。根据一个实施例,辅助处理器423(例如,图像信号处理器或通信处理器)可以实施为与辅助处理器423功能相关的另一组件(例如,相机模块480或通信模块490)的一部分。
存储器430可以存储由电子设备401的至少一个组件(例如,处理器420或传感器模块476)使用的各种数据。各种数据可以包括例如软件(例如,程序440)以及与之相关的命令的输入数据或输出数据。存储器430可以包括易失性存储器432或非易失性存储器434。
程序440可以作为软件存储在存储器430中,并且可以包括例如操作系统(Operating System,OS)442、中间件444或应用446。
输入设备450可以从电子设备401的外部(例如,用户)接收要由电子设备401的其他组件(例如,处理器420)使用的命令或数据。输入设备450可以包括例如麦克风、鼠标或键盘。
声音输出设备455可以将声音信号输出到电子设备401的外部。声音输出设备455可以包括例如扬声器或接收器。扬声器可以用于一般目的,诸如播放多媒体或录音,并且接收器可以用于接收来电。根据一个实施例,接收器可以实施为与扬声器分离或者是扬声器的一部分。
显示设备460可以在视觉上向电子设备401的外部(例如,用户)提供信息。显示设备460可以包括例如显示器、全息设备或投影仪以及控制显示器、全息设备和投影仪中的对应的一个的控制电路。根据一个实施例,显示设备460可以包括适配于检测触摸的触摸电路,或者适配于测量触摸引起的力的强度的传感器电路(例如,压力传感器)。
音频模块470可以将声音转换为电信号并且反之亦然。根据一个实施例,音频模块470可以经由输入设备450获得声音,或者经由声音输出设备455或直接地(例如,有线地)或无线地与电子设备401耦合的外部电子设备402的耳机输出声音。
传感器模块476可以检测电子设备401的操作状态(例如,功率或温度)或电子设备401外部的环境状态(例如,用户的状态),然后生成与检测到的状态对应的电信号或者数据值。传感器模块476可以包括例如手势传感器、陀螺仪传感器、大气压力传感器、磁传感器、加速度传感器、握持传感器、接近传感器、颜色传感器、红外(InfRared,IR)传感器、生物传感器、温度传感器、湿度传感器或照度传感器。
接口477可以支持要用于电子设备401直接地(例如,有线地)或无线地与外部电子设备402耦合的一个或多个指定协议。根据一个实施例,接口477可以包括例如高清晰度多媒体接口(High Definition Multimedia Interface,HDMI)、通用串行总线(UniversalSerial Bus,USB)接口、安全数字(Secure Digital,SD)卡接口或音频接口。
连接端子478可以包括连接器,电子设备401可以经由该连接器与外部电子设备402物理连接。根据一个实施例,连接端子478可以包括例如HDMI连接器、USB连接器、SD卡连接器或音频连接器(例如,耳机连接器)。
触觉模块479可以将电信号转换为可以由用户经由触觉或动觉识别的机械刺激(例如,振动或移动)或电刺激。根据一个实施例,触觉模块479可包括例如马达、压电元件或电刺激器。
相机模块480可以捕获静止图像或移动图像。根据一个实施例,相机模块480可包括一个或多个透镜、图像传感器、图像信号处理器或闪光灯。
电源管理模块488可以管理提供给电子设备401的电源。电源管理模块488可以实施为例如电源管理集成电路(Power Management Integrated Circuit,PMIC)的至少一部分。
电池489可以向电子设备401的至少一个组件供电。根据一个实施例,电池489可以包括例如不可再充电的一次电池、可再充电的二次电池、或者燃料电池。
通信模块490可以支持在电子设备401和外部电子设备(例如,电子设备402、电子设备404或服务器408)之间建立直接(例如,有线)通信信道或无线通信信道,并且经由建立的通信信道执行通信。通信模块490可以包括可与处理器420(例如,AP)独立操作地的一个或多个通信处理器,并支持直接(例如,有线)通信或无线通信。根据一个实施例,通信模块490可以包括无线通信模块492(例如,蜂窝通信模块、短程无线通信模块或全球导航卫星系统(Global Navigation Satellite System,GNSS)通信模块)或有线通信模块494(例如,局域网(Local Area Network,LAN)通信模块或电力线通信(Power Line Communication,PLC)模块)。这些通信模块中的对应的一个可以经由第一网络498(例如,短程通信网络,诸如BluetoothTM、无线保真(Wireless-Fidelity,Wi-Fi)直连或红外线数据协会(InfraredData Association,IrDA)的标准)或第二网络499(例如,远程通信网络,诸如蜂窝网络、互联网或计算机网络(例如,LAN或广域网(Wide Area Network,WAN))与外部电子设备通信。这些各种类型的通信模块可以实施为单个组件(例如,单个IC),或者可以实施为彼此分离的多个组件(例如,多个IC)。无线通信模块492可以在诸如第一网络498或第二网络499的通信网络中,使用存储在订户识别模块496中的订户信息(例如,国际移动订户标识(International Mobile Subscriber Identity,IMSI))来识别和认证电子设备401。
天线模块497可以向电子设备401的外部(例如,外部电子设备)发送信号或功率或从其接收信号或功率。根据一个实施例,天线模块497可以包括一个或多个天线,并且,可以从其例如通过通信模块490(例如,无线通信模块492)选择适合于在通信网络(诸如,第一网络498或第二网络499)中使用的通信方案的至少一个天线。然后,可以经由所选择的至少一个天线在通信模块490和外部电子设备之间发送或接收信号或功率。
上述组件中的至少一些可以相互耦合并且经由外设间通信方案(例如,总线、通用输入和输出(General Purpose Input And Output,GPIO)、串行外设接口(SerialPeripheral Interface,SPI)或移动工业处理器接口(Mobile Industry ProcessorInterface,MIPI))在它们之间通信发送信号(例如,命令或数据)。
根据一个实施例,可以经由与第二网络499耦合的服务器408在电子设备401和外部电子设备404之间发送或接收命令或数据。电子设备402和404中的每一个可以是与电子设备401相同类型或不同类型的设备。要在电子设备401处执行的所有或一些操作可以在外部电子设备402、404或408中的一个或多个处执行。例如,如果电子设备401应该自动或者响应于来自用户或另一设备的请求而执行功能或服务,则代替执行功能或服务,或者除了执行功能或服务之外,电子设备401还可以请求一个或多个外部电子设备执行功能或服务的至少一部分。接收请求的一个或多个外部电子设备可以执行所请求的功能或服务的至少一部分,或者与请求相关的附加功能或附加服务,并且将执行的结果传送到电子设备401。电子设备401可以在进一步或不进一步处理结果的情况下提供结果,作为对请求的回复的至少一部分。为此,例如,可以使用云计算、分布式计算或客户端-服务器计算技术。
一个实施例可以被实施为软件(例如,程序440),其包括存储在可由机器(例如,电子设备401)读取的存储介质(例如,内部存储器436或外部存储器438)中的一个或多个指令。例如,电子设备401的处理器可以调用存储在存储介质中的一个或多个指令中的至少一个,并且在处理器的控制下使用或不使用一个或多个其他组件来执行它。因此,可以操作机器以根据所调用的至少一个指令执行至少一个功能。一个或多个指令可以包括由编译器生成的代码或可由解释器执行的代码。可以以非暂时性存储介质的形式提供机器可读存储介质。术语“非暂时性”指示存储介质是有形设备,并且不包括信号(例如,电磁波),但是该术语对数据半永久地存储在存储介质中和数据临时存储在存储介质中不作区分。
根据一个实施例,可以在计算机程序产品中包括和提供本公开的方法。计算机程序产品可以作为产品在卖方和买方之间进行交易。计算机程序产品可以以机器可读存储介质(例如,光盘只读存储器(Compact Disc Read Only Memory,CD-ROM))的形式分发,或者经由应用商店(例如,Play StoreTM)在线分发(例如,下载或上载),或直接在两个用户设备(例如,智能手机)之间分发。如果在线分发,则计算机程序产品的至少一部分可以临时生成或至少临时存储在机器可读存储介质中,诸如制造商的服务器的存储器,应用商店的服务器或中继服务器。
根据一个实施例,上述组件中的每个组件(例如,模块或程序)可以包括单个实体或多个实体。可以省略上述组件中的一个或多个,或者可以添加一个或多个其他组件。可替代地或另外地,可以将多个组件(例如,模块或程序)集成到单个组件中。在这种情况下,集成的组件可以仍然以与在集成之前由多个组件中的对应的一个组件执行多个组件中的每个组件的一个或多个功能的方式相同或类似的方式执行多个组件中的每个组件的一个或多个功能。由模块、程序或另一组件执行的操作可以顺序地、并行地、重复地或启发式地执行,或者操作中的一个或多个可以以不同的顺序执行或被省略,或者可以添加一个或多个其他操作。
图5是根据一个实施例的程序440的框图。参考图5,程序440可以包括控制电子设备401的一个或多个资源的OS 442、中间件444或在OS 442中可执行的应用446。OS 442可以包括例如 或BadaTM。例如,程序440的至少一部分可以在制造期间预先加载在电子设备401上,或者可以在用户使用期间从外部电子设备(例如,电子设备402或404、或服务器408)下载或由外部电子设备更新。
OS 442可以控制电子设备401的一个或多个系统资源(例如,进程、存储器或电源)的管理(例如,分配或解除分配)。另外地或可替代地,OS 442可以包括一个或多个驱动程序以驱动电子设备401的其他硬件设备,例如输入设备450、声音输出设备455、显示设备460、音频模块470、传感器模块476、接口477、触觉模块479、相机模块480、电源管理模块488、电池489、通信模块490、订户识别模块496或天线模块497。
中间件444可以向应用446提供各种功能,使得应用446可以使用从电子设备401的一个或多个资源提供的功能或信息。中间件444可以包括例如应用管理器501、窗口管理器503、多媒体管理器505、资源管理器507、电源管理器509、数据库管理器511、包管理器513、连接管理器515、通知管理器517、位置管理器519、图形管理器521、安全管理器523、电话管理器525或语音识别管理器527。
例如,应用管理器501可以管理应用446的生命周期。例如,窗口管理器503可以管理在屏幕上使用的一个或多个图形用户界面(Graphical User Interface,GUI)资源。例如,多媒体管理器505可以识别要用于播放媒体文件的一个或多个格式,并且可以使用适合于从一个或多个格式中选择的对应的格式的编解码器对媒体文件中的对应的一个进行编码或解码。例如,资源管理器507可以管理应用446的源代码或存储器430的存储空间。例如,电源管理器509可以管理电池489的容量、温度或功率,并至少部分地基于电池489的容量、温度或功率的对应信息确定或提供要用于电子设备401的操作的相关信息。电源管理器509可以与电子设备401的基本输入/输出系统(Basic Input/Output System,BIOS)互操作。
例如,数据库管理器511可以生成、搜索或改变要由应用446使用的数据库。例如,包管理器513可以管理以包文件的形式分发的应用的安装或更新。例如,连接管理器515可以管理电子设备401和外部电子设备之间的无线连接或直接连接。例如,通知管理器517可以提供向用户通知指定事件(例如,来电、消息或警报)的发生的功能。例如,位置管理器519可以管理关于电子设备401的位置信息。例如,图形管理器521可以管理要提供给用户的一个或多个图形效果或者与一个或多个图形效果有关的用户界面。
例如,安全管理器523可以提供系统安全性或用户认证。例如,电话管理器525可以管理由电子设备401提供的语音呼叫功能或视频呼叫功能。例如,语音识别管理器527可以将用户的语音数据发送到服务器408,并从服务器408接收至少部分地基于语音数据或者至少部分地基于语音数据转换的文本数据的、对应于要在电子设备401上执行的功能的命令。中间件444可以动态地删除一些现有组件或添加新组件。中间件444的至少一部分可以被包括作为OS 442的一部分,或者可以在与OS 442分离的其他软件中实施。
应用446可以包括例如主页应用551、拨号器应用553、短消息服务(Short MessageService,SMS)/多媒体消息服务(Multimedia Messaging Service,MMS)应用555、即时消息(Instant Message,IM)应用557、浏览器应用559、相机应用561、警报应用563、联系人应用565、语音识别应用567、电子邮件应用569、日历应用571、媒体播放器应用573、相册应用575、手表应用577、健康应用579(例如,用于测量锻炼程度或生物信息,诸如血糖)、或环境信息应用581(例如,用于测量气压、湿度或温度信息)。应用446还可以包括信息交换应用,其能够支持电子设备401和外部电子设备之间的信息交换。例如,信息交换应用可以包括适配于将指定信息(例如,呼叫、消息或警报)传送到外部电子设备的通知中继应用或适配于管理外部电子设备的设备管理应用。通知中继应用可以将与在电子设备401的另一应用(例如,电子邮件应用569)处的指定事件(例如,电子邮件的接收)的发生相对应的通知信息传送到外部电子设备。另外地或可替代地,通知中继应用可以从外部电子设备接收通知信息,并将通知信息提供给电子设备401的用户。
设备管理应用可以控制外部电子设备或其某个组件(例如,外部电子设备的显示设备或相机模块)的电源(例如,接通或断开)或功能(例如,亮度、分辨率或焦点的调整)。另外地或可替代地,设备管理应用可以支持在外部电子设备上运行的应用的安装、删除或更新。
尽管已经在本公开的详细描述中描述了本公开的某些实施例,但是在不脱离本公开的范围的情况下,可以以各种形式修改本公开。因此,本公开的范围不仅仅基于所描述的实施例来确定,而是基于所附权利要求及其等同物来确定。
Claims (20)
1.一种构造卷积神经网络CNN模型的方法,包括:
正则化空间域权重;
提供空间域权重的量化;
修剪空间域中的小于预定阈值的权重;
微调量化码本;
压缩来自量化码本的量化输出,以及
解压缩空间域权重并在修剪Winograd域权重后使用稀疏空间域卷积和稀疏Winograd卷积。
2.如权利要求1所述的方法,其中使用Winograd域正则化来正则化所述空间域权重。
3.如权利要求2所述的方法,其中正则化所述空间域权重还包括使用可学习的Winograd域正则化系数及其惩罚项。
4.如权利要求2所述的方法,其中正则化所述空间域权重还包括利用Winograd域正则化器定义代价函数并利用梯度下降。
5.如权利要求1所述的方法,其中使用空间域正则化来正则化所述空间域权重。
6.如权利要求5所述的方法,其中正则化所述空间域权重还包括使用可学习的空间域正则化系数及其惩罚项。
7.如权利要求5所述的方法,其中正则化所述空间域权重还包括利用空间域正则化器定义代价函数并利用梯度下降。
8.如权利要求1所述的方法,其中利用具有非零码值的Winograd域正则化来微调量化码本,并且通过使用平均梯度的梯度下降在量化码本中更新量化值。
9.如权利要求1所述的方法,其中所述CNN在修剪后在空间域或Winograd域中操作。
10.如权利要求1所述的方法,其中解压缩还包括将解压缩的空间域滤波器变换到Winograd域并修剪所述Winograd域权重。
11.一种用于构造卷积神经网络CNN模型的系统,包括:
处理器;以及
非暂时性计算机可读存储介质,被配置为存储指令,所述指令在被执行时使得处理器:
正则化空间域权重;
提供空间域权重的量化;
修剪空间域中的小于预定阈值的权重;
微调量化码本;
压缩来自量化码本的量化输出;以及
解压缩空间域权重并在修剪Winograd域权重后使用稀疏空间域卷积和稀疏Winograd卷积。
12.如权利要求11所述的系统,其中使用Winograd域正则化来正则化所述空间域权重。
13.如权利要求12所述的系统,其中所述指令在被执行时还使得所述处理器通过使用可学习的Winograd域正则化系数及其惩罚项来正则化所述空间域权重。
14.如权利要求12所述的系统,其中所述指令在被执行时还使得所述处理器通过利用Winograd域正则化器定义代价函数并使用梯度下降来正则化所述空间域权重。
15.如权利要求11所述的系统,其中使用空间域正则化来正则化所述空间域权重。
16.如权利要求15所述的系统,其中所述指令在被执行时还使得所述处理器通过使用可学习的空间域正则化系数及其惩罚项来正则化所述空间域权重。
17.如权利要求15所述的系统,其中所述指令在被执行时还使得所述处理器通过利用空间域正则化器定义代价函数并使用梯度下降来正则化所述空间域权重。
18.如权利要求11所述的系统,其中利用Winograd域正则化来微调量化码本,并且通过使用平均梯度的梯度下降在量化码本中更新量化值。
19.如权利要求11所述的系统,其中所述CNN在修剪后在空间域或Winograd域中操作。
20.如权利要求11所述的系统,其中所述指令在被执行时还使得所述处理器通过将解压缩的空间域滤波器变换到Winograd域并修剪所述Winograd域权重来进行解压缩。
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201862671311P | 2018-05-14 | 2018-05-14 | |
US62/671,311 | 2018-05-14 | ||
US16/141,035 | 2018-09-25 | ||
US16/141,035 US11423312B2 (en) | 2018-05-14 | 2018-09-25 | Method and apparatus for universal pruning and compression of deep convolutional neural networks under joint sparsity constraints |
Publications (1)
Publication Number | Publication Date |
---|---|
CN110490296A true CN110490296A (zh) | 2019-11-22 |
Family
ID=68464768
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910312776.XA Pending CN110490296A (zh) | 2018-05-14 | 2019-04-18 | 一种构造卷积神经网络(cnn)模型的方法和系统 |
Country Status (3)
Country | Link |
---|---|
US (1) | US11423312B2 (zh) |
KR (1) | KR20190130455A (zh) |
CN (1) | CN110490296A (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111709485A (zh) * | 2020-06-19 | 2020-09-25 | 腾讯科技(深圳)有限公司 | 医学影像处理方法、装置和计算机设备 |
CN112434786A (zh) * | 2020-10-22 | 2021-03-02 | 西安交通大学 | 一种基于winograd动态卷积块的图像处理方法 |
TWI768516B (zh) * | 2020-01-21 | 2022-06-21 | 大陸商星宸科技股份有限公司 | 運算裝置和運算方法 |
Families Citing this family (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10796169B2 (en) * | 2017-05-16 | 2020-10-06 | Nec Corporation | Pruning filters for efficient convolutional neural networks for image recognition of environmental hazards |
US11423312B2 (en) * | 2018-05-14 | 2022-08-23 | Samsung Electronics Co., Ltd | Method and apparatus for universal pruning and compression of deep convolutional neural networks under joint sparsity constraints |
JP2019200675A (ja) * | 2018-05-17 | 2019-11-21 | 東芝メモリ株式会社 | 演算デバイス及びデータの処理方法 |
US11640533B2 (en) * | 2018-08-03 | 2023-05-02 | Arm Limited | System, method and apparatus for training neural networks using multiple datasets |
GB2580171B (en) * | 2018-12-21 | 2021-02-17 | Imagination Tech Ltd | Methods and systems for selecting quantisation parameters for deep neural networks using back-propagation |
KR102214837B1 (ko) * | 2019-01-29 | 2021-02-10 | 주식회사 디퍼아이 | 컨벌루션 신경망 파라미터 최적화 방법, 컨벌루션 신경망 연산방법 및 그 장치 |
KR20200139909A (ko) | 2019-06-05 | 2020-12-15 | 삼성전자주식회사 | 전자 장치 및 그의 연산 수행 방법 |
US11003959B1 (en) * | 2019-06-13 | 2021-05-11 | Amazon Technologies, Inc. | Vector norm algorithmic subsystems for improving clustering solutions |
US20210089922A1 (en) * | 2019-09-24 | 2021-03-25 | Qualcomm Incorporated | Joint pruning and quantization scheme for deep neural networks |
US11816574B2 (en) * | 2019-10-25 | 2023-11-14 | Alibaba Group Holding Limited | Structured pruning for machine learning model |
CN111126569B (zh) * | 2019-12-18 | 2022-11-11 | 中国电子科技集团公司第五十二研究所 | 一种支持剪枝稀疏化压缩的卷积神经网络装置和计算方法 |
CN110991642A (zh) * | 2019-12-25 | 2020-04-10 | 神思电子技术股份有限公司 | 一种基于网络激活与稀疏化的网络裁剪优化方法 |
KR20210092575A (ko) * | 2020-01-16 | 2021-07-26 | 에스케이하이닉스 주식회사 | 목표 성능에 따라 신경망을 압축하는 반도체 장치 |
US11113601B1 (en) | 2020-06-30 | 2021-09-07 | Moffett Technologies Co., Limited | Method and system for balanced-weight sparse convolution processing |
US20220051102A1 (en) * | 2020-08-14 | 2022-02-17 | Tencent America LLC | Method and apparatus for multi-rate neural image compression with stackable nested model structures and micro-structured weight unification |
KR20220071713A (ko) | 2020-11-24 | 2022-05-31 | 삼성전자주식회사 | 뉴럴 네트워크 가중치 압축 방법 및 장치 |
CN114819140A (zh) * | 2022-03-31 | 2022-07-29 | 支付宝(杭州)信息技术有限公司 | 模型剪枝方法、装置和计算机设备 |
CN116167430B (zh) * | 2023-04-23 | 2023-07-18 | 合肥综合性国家科学中心人工智能研究院(安徽省人工智能实验室) | 基于均值感知稀疏的目标检测模型全局剪枝方法及设备 |
Family Cites Families (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6215910B1 (en) | 1996-03-28 | 2001-04-10 | Microsoft Corporation | Table-based compression with embedded coding |
US20010017941A1 (en) | 1997-03-14 | 2001-08-30 | Navin Chaddha | Method and apparatus for table-based compression with embedded coding |
US6473534B1 (en) | 1999-01-06 | 2002-10-29 | Hewlett-Packard Company | Multiplier-free implementation of DCT used in image and video processing and compression |
US6670907B2 (en) | 2002-01-30 | 2003-12-30 | Raytheon Company | Efficient phase correction scheme for range migration algorithm |
GB2539845B (en) | 2015-02-19 | 2017-07-12 | Magic Pony Tech Ltd | Offline training of hierarchical algorithms |
US20170344876A1 (en) * | 2016-05-31 | 2017-11-30 | Samsung Electronics Co., Ltd. | Efficient sparse parallel winograd-based convolution scheme |
CN106290412B (zh) | 2016-07-18 | 2018-03-27 | 中国科学院地质与地球物理研究所 | 一种基于空间域相位校正的孔隙成像方法及装置 |
EP3577491B1 (en) * | 2017-02-27 | 2023-10-04 | ETH Zurich | System and method for speed and attenuation reconstruction in ultrasound imaging |
US10776694B2 (en) * | 2017-05-16 | 2020-09-15 | Samsung Electronics Co., Ltd. | Optimized neural network input stride method and apparatus |
EP3657399A1 (en) * | 2017-05-23 | 2020-05-27 | Shanghai Cambricon Information Technology Co., Ltd | Weight pruning and quantization method for a neural network and accelerating device therefor |
KR102452953B1 (ko) * | 2017-10-30 | 2022-10-11 | 삼성전자주식회사 | 뉴럴 네트워크의 컨볼루션 연산을 수행하는 방법 및 장치 |
WO2019090325A1 (en) * | 2017-11-06 | 2019-05-09 | Neuralmagic, Inc. | Methods and systems for improved transforms in convolutional neural networks |
CN107832837B (zh) | 2017-11-28 | 2021-09-28 | 南京大学 | 一种基于压缩感知原理的卷积神经网络压缩方法及解压缩方法 |
US11423312B2 (en) * | 2018-05-14 | 2022-08-23 | Samsung Electronics Co., Ltd | Method and apparatus for universal pruning and compression of deep convolutional neural networks under joint sparsity constraints |
KR20200091623A (ko) * | 2019-01-23 | 2020-07-31 | 삼성전자주식회사 | 위노그라드 변환에 기반한 뉴럴 네트워크의 컨볼루션 연산을 수행하는 방법 및 장치 |
US11507813B2 (en) * | 2020-06-01 | 2022-11-22 | Arm Limited | Modulo operation unit |
-
2018
- 2018-09-25 US US16/141,035 patent/US11423312B2/en active Active
- 2018-11-22 KR KR1020180145161A patent/KR20190130455A/ko active Search and Examination
-
2019
- 2019-04-18 CN CN201910312776.XA patent/CN110490296A/zh active Pending
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI768516B (zh) * | 2020-01-21 | 2022-06-21 | 大陸商星宸科技股份有限公司 | 運算裝置和運算方法 |
CN111709485A (zh) * | 2020-06-19 | 2020-09-25 | 腾讯科技(深圳)有限公司 | 医学影像处理方法、装置和计算机设备 |
CN111709485B (zh) * | 2020-06-19 | 2023-10-31 | 腾讯科技(深圳)有限公司 | 医学影像处理方法、装置和计算机设备 |
CN112434786A (zh) * | 2020-10-22 | 2021-03-02 | 西安交通大学 | 一种基于winograd动态卷积块的图像处理方法 |
CN112434786B (zh) * | 2020-10-22 | 2023-09-19 | 西安交通大学 | 一种基于winograd动态卷积块的图像处理方法 |
Also Published As
Publication number | Publication date |
---|---|
KR20190130455A (ko) | 2019-11-22 |
US20190347554A1 (en) | 2019-11-14 |
US11423312B2 (en) | 2022-08-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110490296A (zh) | 一种构造卷积神经网络(cnn)模型的方法和系统 | |
CN110097019B (zh) | 字符识别方法、装置、计算机设备以及存储介质 | |
KR20200111093A (ko) | 조건부 오토인코더를 이용한 가변-레이트 압축을 위한 장치 및 방법 | |
CN110413812B (zh) | 神经网络模型的训练方法、装置、电子设备及存储介质 | |
CN110062246B (zh) | 对视频帧数据进行处理的方法和装置 | |
CN108702480A (zh) | 电子设备和用于驱动其显示器的方法 | |
CN112449192A (zh) | 解码方法、编码方法及装置 | |
KR102556644B1 (ko) | 연속적인 멀티 프레임 이미지 디노이징을 수행하는 장치 및 방법 | |
CN111445392A (zh) | 图像处理方法及装置、计算机可读存储介质和电子设备 | |
CN114418121A (zh) | 模型训练方法、对象处理方法及装置、电子设备、介质 | |
KR20200072196A (ko) | 오디오 개선을 지원하는 전자 장치 및 이를 위한 방법 | |
WO2022246986A1 (zh) | 数据处理方法、装置、设备及计算机可读存储介质 | |
US20230419452A1 (en) | Method and device for correcting image on basis of compression quality of image in electronic device | |
CN111107357A (zh) | 一种图像处理的方法、装置及系统 | |
CN113822955B (zh) | 图像数据处理方法、装置、计算机设备及存储介质 | |
WO2021016932A1 (zh) | 数据处理方法、装置及计算机可读存储介质 | |
CN116737895A (zh) | 一种数据处理方法及相关设备 | |
CN111443897A (zh) | 一种数据处理方法、装置及存储介质 | |
CN113823298B (zh) | 语音数据处理方法、装置、计算机设备及存储介质 | |
CN111698512B (zh) | 视频处理方法、装置、设备及存储介质 | |
CN111310701B (zh) | 手势识别方法、装置、设备及存储介质 | |
CN115829827A (zh) | 人脸图像处理方法、装置、设备及介质 | |
CN111783962A (zh) | 数据处理方法、数据处理装置、存储介质与电子设备 | |
EP2571292A1 (en) | System and method for mobile context determination | |
US20220245423A1 (en) | Electronic device, user terminal, and method for running scalable deep learning 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 |