CN113052309A - 压缩神经网络模型的方法、计算机系统以及存储介质 - Google Patents
压缩神经网络模型的方法、计算机系统以及存储介质 Download PDFInfo
- Publication number
- CN113052309A CN113052309A CN202011448780.8A CN202011448780A CN113052309A CN 113052309 A CN113052309 A CN 113052309A CN 202011448780 A CN202011448780 A CN 202011448780A CN 113052309 A CN113052309 A CN 113052309A
- Authority
- CN
- China
- Prior art keywords
- weight coefficients
- subset
- computer
- neural network
- weight
- 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
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
- 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/084—Backpropagation, e.g. using gradient descent
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)
- Compression Or Coding Systems Of Tv Signals (AREA)
Abstract
本公开提供一种压缩神经网络模型的方法、计算机系统以及存储介质。所述方法包括:对与权重系数集对应的多维张量进行重塑,所述权重系数集与神经网络相关联。从该权重系数集中识别权重系数子集。根据识别的权重系数子集,压缩神经网络的模型。
Description
相关申请的交叉引用
本申请要求于2019年12月28日在美国专利商标局提交的第62/954,472号美国临时专利申请以及2020年10月19日在美国专利和商标局提交的第17/073,602号美国专利申请的优先权,其全部内容通过引用结合在本申请中。
技术领域
本公开通常涉及数据处理领域,并且尤其涉及神经网络。
背景技术
国际标准化组织(International Organization for Standardization)ISO/国际电工委员会(International Electrotechnical Commission)IEC动态图像专家组(Moving Picture Experts Group)MPEG(JTC 1/SC 29/WG 11)一直在积极寻找未来视频编解码技术的标准化的潜在需求,以进行视觉分析和理解。ISO于2015年采用视觉搜索紧凑描述符(Compact Descriptors for Visual Search,CDVS)标准作为静止图像标准,其提取特征表示用于图像相似性匹配。CDVS标准被列为MPEG 7和ISO/IEC 15938-15的第15部分,并且于2018年定稿,该标准提取了视频片段的全局和局部、手动设计和基于深度神经网络(Deep Neural Networks,DNN)的特征描述符。DNN在诸如语义分类、目标检测/识别、目标跟踪、视频质量增强等大量视频应用中的成功,提出了压缩DNN模型的强烈需求。
发明内容
本公开实施例涉及压缩神经网络模型的方法、系统和计算机可读存储介质,可以实现显著的压缩神经网络模型。
根据一个方面,提供一种用于压缩神经网络模型的方法。该方法可以包括对与权重系数集对应的多维张量进行重塑,所述权重系数集与神经网络相关联。从该权重系数集中识别权重系数子集。根据识别的权重系数集,压缩神经网络的模型。
根据另一个方面,提供一种用于压缩神经网络模型的计算机系统。该计算机系统可以包括至少一个处理器、至少一个计算机可读存储器、至少一个计算机可读有形存储设备,以及存储在至少一个存储设备中的至少一个上的程序指令,该程序指令由至少一个处理器通过至少一个存储器来执行,由此计算机系统执行所述方法。该方法可以包括对与权重系数集对应的多维张量进行重塑,所述权重系数集与神经网络相关联。从该权重系数集中识别权重系数子集。根据识别的权重系数集,压缩神经网络的模型。
根据又一个方面,提供一种压缩神经网络模型的计算机可读介质。该计算机可读介质可以包括至少一个计算机可读存储设备以及存储在至少一个有形存储设备中的程序指令,该程序指令可由处理器执行。该程序指令可由处理器执行以执行一种方法,该方法包括对与权重系数集对应的多维张量进行重塑,所述权重系数集与神经网络相关联。从该权重系数集中识别权重系数子集。根据识别的权重系数集,压缩神经网络的模型。
通过本公开实施例提供的压缩神经网络模型的方法、系统和计算机可读存储介质,利用可量化性正则化可以提高进一步压缩所学习的权重系数的效率,进而实现显著压缩神经网络模型。
附图说明
这些和其它目的、特征和优点将从以下结合附图阅读的说明性实施例的详细描述中变得显而易见。由于附图是用于方便本领域技术人员结合详细描述进行清楚的理解,因此附图的各种特征并非按比例绘制。在附图中:
图1示出了根据至少一个实施例的联网计算机环境;
图2是根据至少一个实施例的神经网络模型压缩系统的框图;
图3示出了根据至少一个实施例的由压缩神经网络模型的程序所执行的步骤的操作流程图;
图4是根据至少一个实施例的图1中描绘的计算机和服务器的内部部件和外部部件的框图;
图5是根据至少一个实施例的包括图1中描绘的计算机系统的示例性云计算环境的框图;以及
图6是根据至少一个实施例的图5的示例性云计算环境的功能层的框图。
具体实施方式
本文公开了所要求保护的结构和方法的详细实施例;然而,可理解的是,所公开的实施例仅仅是图示了可以以各种形式实施的所要求保护的结构和方法。然而,这些结构和方法可以以许多不同的形式来实施,并且不应当被解释为限于本文阐述的示例性实施例。相反,提供这些示例性实施例是为了使本公开清楚和完整,并且将范围完整地传达给本领域技术人员。在描述中,可以省略公知特征和技术的细节,以避免不必要地模糊所呈现的实施例。
本公开实施例通常涉及数据处理领域,并且尤其涉及神经网络。以下描述的示例性实施例提供了用于压缩神经网络模型的系统、方法和计算机程序。因此,一些实施例具有通过允许提高所学习的权重系数的压缩效率来改进计算领域的能力,这可以显著减小深度神经网络模型大小。
如前所述,ISO/IEC MPEG(JTC 1/SC 29/WG 11)一直在积极寻找未来视频编解码技术的标准化的潜在需求,以进行视觉分析和理解。ISO于2015年采用CDVS标准作为静态图像标准,其提取用于图像相似性匹配的特征表示(Feature Representations)。CDVS标准被列为MPEG 7和ISO/IEC 15938-15的第15部分,并且于2018年定稿,该标准提取了视频片段的全局和局部、手动设计和基于DNN的特征描述符。DNN在诸如语义分类、目标检测/识别、目标跟踪、视频质量增强等大量视频应用中的成功,提出了压缩DNN模型的强烈需求。
因此,MPEG正在积极致力于神经网络标准(Neural Network standard,NNR)的编码表示(Coded Representation),该NNR的编码表示对DNN模型进行编码以节省存储和计算。存在几种学习紧凑DNN模型的方法。目标是删除不重要的权重系数,并且假设权重系数的值越小,它们的重要性就越低。通过将稀疏性促进正则化项添加到网络训练目标中或贪婪地删除网络参数,已提出了几种网络修剪方法来明确实现此目标。从压缩DNN模型的角度来看,在学习紧凑网络模型之后,权重系数可以通过量化,然后进行熵编解码来进一步压缩。此类进一步的压缩过程可以显著地减小DNN模型的存储大小,这对于在移动设备、芯片等上部署模型是必不可少的。
可使用可量化性正则化损失(quantizability regularization loss)来提高量化效率。使用迭代网络再训练/修正过程来联合优化原始训练目标和可量化性正则化损失,以使所学习的网络权重系数保持原始性能,并适用于通过量化和熵编解码来进行进一步的压缩。本文讨论的方法、计算机系统和计算机可读介质可以应用于压缩原始的预训练的DNN模型。它还可以作为另外的处理模块,以进一步压缩任何修剪的DNN模型。
本公开提出了一种在迭代网络再训练/微调框架中使用可量化性正则化来压缩DNN模型的方法。可量化性正则化可以提高进一步压缩所学习的权重系数的效率,这可以显著地减小DNN模型的大小。通过迭代再训练过程,可以维持目标训练目标以追求量化效率。迭代再训练过程还提供了在不同时间引入不同损失的灵活性,从而使得系统在优化过程中专注于不同的目标上。可以使用具有不同数据形式的数据集。输入/输出数据通常是4D张量,该4D张量可以是真实的视频片段、图像或提取的特征图。
本文参考根据各个实施例的方法、装置(系统)和计算机可读介质的流程图和/或框图来描述各方面。应当理解,流程图图示和/或框图的每个框,以及流程图图示和/或框图中的框的组合可由计算机可读程序指令实现。
现在参考图1,联网计算机环境的功能框图示出了根据可量化性正则化压缩神经网络模型的神经网络模型压缩系统100(以下被称为“系统”)。应当理解,图1仅提供一种实施方案的图示,并不意味着对可实现不同实施例的环境的任何限制。可基于设计和实现需求对所描绘的环境进行许多修改。
系统100可以包括计算机102和服务器计算机114。计算机102可通过通信网络110(以下被称为“网络”)与服务器计算机114进行通信。计算机102包括处理器104以及存储在数据存储设备106上的软件程序108,并且能够与用户对接以及与服务器计算机114通信。如下面将参考图4讨论的,计算机102可以分别包括内部组件800A和外部组件900A,并且服务器计算机114可以分别包括内部组件800B和外部组件900B。计算机102可为例如移动设备、电话、个人数字助理、上网本、膝上型计算机、平板计算机、台式计算机或者能够运行程序、访问网络和访问数据库的任何类型的计算设备。
如以下结合图5和图6所讨论的,服务器计算机114还可以在云计算服务模型中操作,诸如软件即服务(Software as a Service,SaaS)、平台即服务(Platform as aService,PaaS)或基础设施即服务(Infrastructure as a Service,IaaS)。服务器计算机114还可位于云计算部署模型中,诸如私有云、社区云、公共云或混合云中。
用于压缩神经网络模型的服务器计算机114能够运行与数据库112交互的可量化性正则化程序116(以下被称为“程序”)。下面将结合图3更详细地解释可量化行正则化程序的方法。在一个实施例中,计算机102可作为包括用户接口的输入设备操作,而程序116可主要在服务器计算机114上运行。在可替代实施例中,程序116可主要在至少一个计算机102上运行,而服务器计算机114可用于处理和存储程序116所使用的数据。应注意,程序116可以是独立的程序,或者可以集成到更大的可量化性正则化程序中。
然而,应当注意,在一些实例中,可以以任何比例在计算机102和服务器计算机114之间共享对程序116的处理。在另一个实施例中,程序116可在一个以上计算机、服务器计算机或者计算机和服务器计算机的某一组合上操作,例如,通过网络110与单个服务器计算机114进行通信的多个计算机102。在另一个实施例中,例如,程序116可在多个服务器计算机114上操作,所述多个服务器计算机114通过网络110与多个客户端计算机进行通信。可替代地,程序可在网络服务器上运行,该网络服务器通过网络与服务器和多个客户端计算机进行通信。
网络110可以包括有线连接、无线连接、光纤连接或其某一组合。通常,网络110可为支持计算机102和服务器计算机114之间的通信的连接和协议的任何组合。网络110可以包括各种类型的网络,诸如,例如局域网(Local Area Network,LAN)、广域网(Wide AreaNetwork,WAN)(例如因特网)、电信网络(例如公共交换电话网络(Public SwitchedTelephone Network,PSTN))、无线网络、公共交换网络、卫星网络、蜂窝网络(例如,第五代(the fifth generation,5G)网络、长期演进(Long-Term Evolution LTE)网络、第三代(the third generation,3G)网络、码分多址(Code Division Multiple Access,CDMA)网络等)、公共陆地移动网络(Public Land Mobile Network,PLMN)、城域网(MetropolitanArea Network,MAN)、专用网络、自组织网络、内部网、基于光纤的网络等,以及/或者这些或其它类型网络的组合。
图1所示的设备和网络的数量和布置是作为示例提供的。实际上,可存在附加的设备和/或网络、更少的设备和/或网络、不同的设备和/或网络、或者与图1所示的设备和/或网络具有不同地布置的设备和/或网络。此外,图1所示的两个或更多个设备可在单个设备中实现,或者图1所示的单个设备可以实现为多个分布式设备。此外或可替代地,系统100的一组设备(例如,至少一个设备)可执行至少一个函数,所述至少一个函数被描述为由系统100的另一组设备执行。
现在参考图2,描述了神经网络模型压缩系统200。神经网络模型压缩系统200可以用作迭代学习过程的框架。神经网络模型压缩系统200可以包括计算索引次序模块202、量化模块204和再训练模块206。再训练模块206可以包括网络转发计算模块208、计算数据损失模块210、计算梯度模块212、以及反向传播和权重更新模块214等其它模块。
设D={(x,y)}可以表示将目标y分配给输入x的数据集。设Θ={w}可以表示DNN的权重系数集。神经网络训练的目标可以是学习最优的权重系数集Θ*,从而可以将损失£(D|Θ)最小化。例如,在以前的网络修剪方法中,损失£(D|Θ)有两个部分,经验数据损失(empirical data loss)£D(D|Θ)和稀疏性促进正则化损失(sparsity-promotingregularization loss)£R(Θ):£(D|Θ)=λD£D(D|Θ)+λR£R(Θ),
其中λD andλR是用于平衡数据损失和正则化损失的贡献的超参数。
稀疏性促进正则化损失将正则化放置在整个权重系数之上,并且得到的稀疏权重与推理效率或计算加速具有弱关系。从另一个角度来看,在修剪之后,稀疏权重可以进一步经历另一个网络训练过程,其中可以学习最优的权重系数集,该最优的权重系数集可以提高进一步的模型压缩的量化效率。
因此,可以计算可量化性正则化损失£Q(D|Θ),使得:
£(D|Θ)=λD£D(D|Θ)+λQ£Q(Θ),
其中,λD和λQ是平衡数据损失和量化损失的贡献的超参数。通过联合优化£(D|Θ),能够获得在很大程度上帮助进一步压缩的量化和编解码过程的最优权重系数集。另外,量化性正则化损失考虑到如何将卷积操作作为GEMM矩阵乘法过程的基本过程,从而产生大大加快计算速度的量化的加权系数。
对于学习有效性和学习效率两者,可以进一步使用迭代优化过程来进行训练。满足期望设计结构的部分权重系数可以是固定的。可以通过反向传播训练损失来更新权重系数的非固定部分。通过迭代地执行这两个步骤,可以逐渐地固定越来越多的权重,并且可以有效地逐渐优化联合损失。
此外,由于每个层可以被单独压缩,£Q(D|Θ)可以进一步写成:
其中,LQ(Wj)是在第j层上定义的量化损失;N可以是测量量化损失的层的总数;Wj表示第j层的权重系数。由于可以独立地计算每个层的LQ(Wj),可以理解,可以不失一般性的省略脚本j。
对于每个网络层,其权重系数W是大小为(ci,k1,k2,k3,co)的一般5维(5D)张量。层的输入是大小为(hi,wi,di,ci)的4维(4D)张量A,并且层的输出可以是大小为(ho,wo,do,co)的4D张量B。大小ci、k1、k2、k3、co、hi、wi、di、ho、wo、do是大于或等于1的整数。当大小ci、k1、k2、k3、co、hi、wi、di、ho、wo、do中的任一个取值为数字1时,对应的张量减少到较低的维数。每个张量中的每个项都可以是一个浮点数。设M表示与W大小相同的5D二进制掩码,其中M中的每个项都是二进制数0/1,该二进制数0/1用于指示对应的权重系数是被修剪还是进行保留。引入M与W相关联以应对W来自修剪的DNN模型的情况。当W可以来自原始的未修剪的预训练模型时,M中的所有项取值为1。通过基于A、M和W的卷积运算⊙来计算输出B:
参数hi、wi和di(h0、wo和do)是输入张量A(输出张量B)的高度、权重和深度。参数ci(co)是输入(输出)通道的数量。参数k1、k2和k3是分别对应于高度轴、重量轴和深度轴的卷积核的大小。也就是说,对于每个输出通道v=1,…,co,该操作可以被描述为与输入A进行卷积的、大小为(ci,k1,k2,k3)的4D权重张量Wv。
可以理解,可以改变求和的次序。在至少一个实施例中,5D权重张量可以被重塑(reshape)为大小为(ci,co,k)的3D张量,其中k=k1·k2·k3。通过重塑处理中的重塑算法,可以确定沿k轴的重塑索引的次序。
权重系数的期望结构可以通过考虑两个方面来设计。权重系数的结构与如何实现卷积运算的基本GEMM矩阵乘法过程保持一致,以便加快使用所学习的权重系数的推理计算。权重系数的结构可以有助于提高量化和熵编解码效率。在一个实施例中,可以在3D重塑权重张量中使用每层中的权重系数的逐块结构(block-wise structure)。具体地,可以将3D张量分区成大小为(gi,go,gk)的块,并且块内的所有系数取值相同。这样,可以使用一个值来表示量化过程中的整个块,所述量化过程产生高效率。给定该期望结构,在迭代期间,可以确定需要固定的部分权重系数。例如,可以计算每个块内的权重的方差,并且当该方差小于设定的阈值时,将该块内的权重均设置为该块的均值。可以执行神经网络训练过程以通过反向传播机制更新剩余的非固定的权重系数。该阈值可以是预先设定的超参数,或者可以改变(例如,减小),使得在训练期间逐渐地固定更多的权重,以用于稍后的迭代。
使用具有权重系数W和掩码M的预训练的DNN模型,所述预训练的DNN模型可以是修剪的稀疏模型或未修剪的非稀疏模型,可以确定索引的次序I(W)=[i0,…,ik],以通过所述计算索引次序模块202对权重系数W和掩码M进行重塑,其中k=k1·k2·k3可以是权重W的重塑的3D张量。在一个实施例中,可以通过粗略地预测量化重塑的权重的量化损失来确定I(W)。对于大小为(gi,go,gk)的权重W的重塑的3D张量中的第p个3D块bp,meanp和Np可以表示块内权重系数的均值和LN范数。例如,L2范数是块内权重系数的方差。LN范数反映了使用均值meanp表示整个块的误差e(bp)。对于对索引进行重新排序以生成权重W的3D张量的每种可能方式,可以通过平均所有3D块的e(bp)来计算执行量化的总误差,并且I(W)可以是具有最小总误差的一个。当k可能较小时,可能会穷举搜索最佳I(W)。对于大的k,可以使用其它方法来找到次优I(W)。可以理解,可以使用基本上任何方法来确定I(W)。
在获得索引I(W)的次序以对权重系数进行重塑之后,目标是通过迭代地最小化总损失来找到更新的最佳权重系数集W*、权重掩码M*和权重量化掩码Q*。对于第t次迭代,存在当前权重系数W(t-1)、掩码M(t-1)和权重量化掩码Q(t-1)。通过量化模块204来计算量化权重系数WQ(t)和新的量化掩码Q(t)。在量化模块204中,对于使用重新排序索引I(W)的重塑的3D加权张量W的大小为(gi,go,gk)的第p个3D块bp,可以计算LN范数Np,该LN范数Np可以反映使用均值meanp表示整个块的量化误差e(bp)。重塑的3D权重张量的所有3D块可以根据它们的量化误差(LN范数)以升序来排序,并且对位于顶部的r(t)块进行量化和固定。即,可以将固定块bp内的W(t)的权重系数设置为meanp,并且将量化掩码Q(t)中的对应项设置为1。这将产生量化的权重系数WQ(t)和对应的量化掩码Q(t)。
给定训练数据集D={(x,y)},其中D可以与原始数据集D0={(x0,y0)}相同,基于该原始数据集获得预训练的权重系数W。D还可以是不同于D0的数据集,但是具有与原始数据集D相同的数据分布。在获得量化的权重系数WQ(t)和对应的量化掩码Q(t)之后,系统经历再训练过程以调整非固定权重系数。具体地说,经由网络转发计算模块208使用当前的权重系数WQ(t),将每个输入x传递通过当前的网络,产生估计的输出基于地面真实注释y和估计的输出通过计算数据损失模块210来计算数据损失£D(D|Θ)。可由计算梯度模块212来计算数据损失G(WQ(t))的梯度。深度学习框架(例如tensorflow或pytorch)使用的自动梯度计算方法在这里可以用来计算G(WQ(t))。基于梯度G(WQ(t))和量化掩码Q(t),可以使用反向传播和权重更新模块214通过BP来更新WQ(t)的非固定权重系数。再训练模块206可以包括迭代过程,从而可以采用多次迭代来更新WQ(t)的非固定部分,例如,直到数据损失收敛。系统200可以移动到下一迭代t+1,其中,给定新的量化比率r(t+1),基于WQ(t)和I(W),可以通过量化过程计算新的量化权重系数WQ(t+1)和对应的量化掩码Q(t+1),并且系统进行下一次迭代。
在每次迭代期间,量化比率r(t)的值随着t的增加而增加,以在整个迭代学习过程中对越来越多的权重系数进行量化和固定。
现在参考图3,描绘了图示压缩神经网络模型的方法300的步骤的操作流程图。在一些实施方案中,可由计算机102(图1)和服务器计算机114(图1)来执行图3的至少一个过程块。在一些实施方案中,可由另一个设备或一组设备来执行图3的至少一个过程块,所述另一个设备或一组设备与计算机102和服务器计算机114分离或包括计算机102和服务器计算机114。
在302,方法300包括对与权重系数集对应的多维张量进行重塑,所述权重系数集与神经网络相关联。
在304处,方法300包括从所述权重系数集中识别权重系数子集。
在一些实施例中,所述从所述权重系数集中识别所述权重系数子集包括:对所述权重系数集进行量化;以及选择使得可量化性正则化损失值最小化的权重系数子集,所述可量化性正则化损失值与数据损失值和量化损失值相对应,所述数据损失值和所述量化损失值与量化的权重系数集相关联。
在一些实施例中,反向传播所述最小化的可量化性正则化损失值,根据反向传播的所述最小化的可量化性正则化损失值来训练所述神经网络。
在一些实施例中,反向传播所述最小化的可量化性正则化损失值,根据反向传播的所述最小化的可量化性正则化损失值,将所述权重系数子集中的至少一个权重系数固定。
在一些实施例中,确定与所述权重系数子集相关联的梯度和量化掩码,根据确定的所述梯度和所述量化掩码,更新所述权重系数子集中的至少一个非固定权重系数。
在一些实施例中,通过对所述权重系数子集进行量化和熵编解码来压缩所述权重系数子集。
在一些实施例中,对所述神经网络的每个层分开进行压缩。
在306处,方法300包括根据识别的权重系数子集,压缩神经网络的模型。
可以理解,图3仅提供了一种实施方案的图示,并不意味着对如何实现不同实施例的任何限制。可基于设计和实现需求对所描绘的环境进行许多修改。
通过本公开实施例提供的压缩神经网络模型的方法、系统和计算机可读存储介质,利用可量化性正则化可以提高进一步压缩所学习的权重系数的效率,进而实现显著压缩神经网络模型。
图4是根据示例性实施例的图1中描绘的计算机的内部组件和外部组件的框图400。应当理解,图4仅提供一种实施方案的图示,并不意味着对可实现不同实施例的环境的任何限制。可基于设计和实现需求对所描绘的环境进行许多修改。
计算机102(图1)和服务器计算机114(图1)可以包括图4所示的相应的各组内部组件800A、800B和外部组件900A、900B。各组内部组件800中的每一个包括至少一个总线826上、至少一个操作系统828上以及至少一个计算机可读有形存储设备830上的至少一个处理器820、至少一个计算机可读RAM822以及至少一个计算机可读ROM824。
处理器820以硬件、固件、或者硬件和软件的组合来实现。处理器820是中央处理单元(Central Processing Unit,CPU)、图形处理单元(Graphics Processing Unit,GPU)、加速处理单元(Accelerated Processing Unit,APU)、微处理器、微控制器、数字信号处理器(Digital Signal Processor,DSP)、现场可编程门阵列(Field-Programmable GateArray,FPGA)、专用集成电路(Application-Specific Integrated Circuit ASIC)或另一种类型的处理部件。在一些实施方案中,处理器820包括能够被编程以执行函数的至少一个处理器。总线826包括允许在内部组件800A、800B之间进行通信的组件。
服务器计算机114(图1)上的至少一个操作系统828、软件程序108(图1)和可量化性正则化程序116(图1)存储在至少一个相应的计算机可读有形存储设备830中,以由至少一个相应的处理器820经由至少一个相应的RAM822(其一般包括高速缓冲存储器)来执行。在图4所示的实施例中,每一个计算机可读有形存储设备830是内部硬盘驱动器的磁盘存储设备。可替代地,每个计算机可读有形存储设备830是半导体存储设备,诸如ROM824、EPROM、闪存、光盘、磁光盘、固态盘、压缩盘(Compact Disc,CD)、数字多功能盘(DigitalVersatile Disc,DVD)、软盘、盒式磁盘、磁带和/或可存储计算机程序和数字信息的另一种类型的非易失性计算机可读有形存储设备。
每组内部组件800A、800B还包括R/W驱动器或接口832,以从至少一个便携式计算机可读有形存储设备936(例如CD-ROM、DVD、记忆棒、磁带、磁盘、光盘或半导体存储设备)读取或向其写入。软件程序(诸如软件程序108(图1)和可量化性正则化116(图1))可存储在至少一个相应的便携式计算机可读有形存储设备936上、经由相应的R/W驱动器或接口832进行读取并且被加载到相应的硬盘驱动器830中。
每组内部组件800A、800B还包括网络适配器或接口836(例如TCP/IP适配卡)、无线Wi-Fi接口卡;或者3G、4G或5G无线接口卡或其它有线或无线通信链路。可经由网络(例如,因特网、局域网或其它广域网)和相应的网络适配器或接口836从外部计算机将服务器计算机114(图1)上的软件程序108(图1)和可量化性正则化程序116(图1)下载到计算机102(图1)。从网络适配器或接口836,服务器计算机114上的软件程序108和可量化性正则化程序116被加载到相应的硬盘驱动器830中。网络可以包括铜线、光纤、无线传输、路由器、防火墙、交换机、网关计算机和/或边缘服务器。
每组外部组件900A、900B可以包括计算机显示监视器920、键盘930和计算机鼠标934。外部组件900A、900B还可以包括触摸屏、虚拟键盘、触摸板、定点设备和其它人机接口设备。每组内部组件800A、800B还包括设备驱动器840,以与计算机显示监视器920、键盘930和计算机鼠标934进行接口连接。设备驱动器840、R/W驱动器或接口832、以及网络适配器或接口836包括硬件和软件(存储在存储设备830和/或ROM824中)。
应预先理解,尽管本公开包括对云计算的详细描述,但本文所引用的教导的实施方案不限于云计算环境。相反,一些实施例能够结合现在已知的或以后开发的任何其它类型的计算环境来实现。
云计算是服务交付模型,该服务交付模型用于实现对可配置计算资源(例如,网络、网络带宽、服务器、处理、存储器、存储、应用、虚拟机和服务)的共享池的方便的、按需的网络访问,该可配置计算资源可以通过最少的管理工作或与服务提供者的交互而快速地调配和释放。该云模型可以包括至少五个特性、至少三个服务模型和至少四个部署模型。
特性如下:
按需自助服务(On-demand self-service):云用户可根据需要自动地单方面提供计算功能,诸如服务器时间和网络存储,而无需与服务提供商进行人工交互。
广泛的网络访问(Broad network access):功能可通过网络使用,并通过标准机制进行访问,该标准机制促进了异构瘦客户端平台或厚客户端平台(例如,移动电话、膝上型电脑和PDA)的使用。
资源池化(Resource pooling):提供者的计算资源可以通过多租户模型集中起来,以为多个消费者提供服务,并根据需求动态分配和重新分配不同的物理和虚拟资源。一般情况下,消费者不能控制或并不知晓所提供的资源的确切位置,但可以能够指定较高抽象级别(例如,国家、州或数据中心)的位置,因此具有位置独立性。
快速弹性(Rapid elasticity):在一些情况下,可以快速且弹性地调配功能,在某些情况下,自动地快速向外扩展和快速释放以快速向内扩展。对于用户来说,可用于调配的的功能通常看起来是无限的,并且可在任何时间按任何数量购买。
已测量服务(Measured service):云系统通过利用适于服务类型(例如存储、处理、带宽和活跃用户帐号)的某种抽象级别的计量能力,自动地控制和优化资源使用。可监视、控制和报告资源使用,从而为所使用服务的提供者和使用者双方提供透明度。
服务模型如下:
软件即服务(Software as a Service,SaaS):提供给消费者的功能是使用提供商在云基础架构上运行的应用程序。可通过诸如网络浏览器(例如基于web的电子邮件)之类的瘦客户端接口从各种客户端设备访问应用程序。除了可能会限制用户特定的应用配置设置外,用户既不管理也不控制包括网络、服务器、操作系统、存储、或甚至单个应用程序功能的底层云基础架构。
平台即服务(Platform as a Service,PaaS):提供给消费者的功能是将消费者创建的或获取的应用程序部署到云基础架构上,这些应用程序是使用提供商支持的编程语言和工具创建的。用户既不管理也不控制包括网络、服务器、操作系统或存储在内的底层云基础架构,但对已部署的应用程序具有控制权,并且对应用托管环境配置可能也具有控制权。
基础架构即服务(Infrastructure as a Service,IaaS):提供给消费者的功能是提供处理,存储,网络和其他基础计算资源,使消费者能够在其中部署和运行任意软件,所述任意软件包括操作系统和应用程序。用户既不管理也不控制底层云基础架构,但是对操作系统、存储、已部署的应用程序具有控制权,并且对选择网络部件(例如,主机防火墙)可能具有有限的控制权。
部署模型如下:
私有云:云基础架构单独为某个组织运行。它可由该组织或第三方管理,并且可存在于内部(on-premises)或外部(off-premises)。
社区云:云基础架构由若干组织共享,并且支持具有共同关注点(例如,任务、安全要求、策略和合规性注意事项(compliance considerations))的特定社区。它可由所述组织或第三方管理,并且可存在于内部或外部。
公共云:云基础架构可供公众或大型产业群使用,并由出售云服务的组织拥有。
混合云:云基础架构是由两个或更多个云(私有、社区或公共)组成的,这些云仍然是唯一的实体,但是通过标准化或专有技术将他们绑定在一起,该标准化或专有技术实现数据和应用可移植性(例如,云间负载平衡的云爆炸)。
云计算环境是面向焦点的服务,该焦点为无状态、低耦合、模块化和语义互操作性。云计算的核心是包括相互连接的节点组成的网络的基础架构。
参考图5,描绘了示例性云计算环境500。如图所示,云计算环境500包括至少一个云计算节点10,云用户使用的本地计算设备可以与所述至少一个云计算节点进行通信,该本地计算设备为诸如,例如个人数字助理(Personal Digital Assistant PDA)或蜂窝电话54A、台式计算机54B、膝上型计算机54C和/或汽车计算机系统54N。云计算节点10可彼此通信。它们可在至少一个网络中进行物理地或虚拟地分组(未示出),所述网络为诸如如上所述的私有云、社区云、公共云或混合云或其组合。这允许云计算环境500提供基础架构即服务、平台即服务和/或软件即服务,云消费者不需要维护本地计算设备上的资源。应当理解,图5中所示的计算设备54A-N的类型仅旨在是示例性的,并且云计算节点10和云计算环境500可通过任何类型的网络和/或网络可寻址连接(例如,使用web浏览器)与任何类型的计算机化设备进行通信。参考图6,示出了由云计算环境500(图5)提供的一组功能抽象层600。应当预先理解,图6中所示的部件、层和功能仅仅是示例性的,并且实施例不限于此。如图所示,提供以下层和对应功能:
硬件和软件层60包括硬件部件和软件部件。硬件部件的示例包括:主机61;基于精简指令集计算机(Reduced Instruction Set Computer,RISC)体系结构的服务器62;服务器63;刀片服务器64;存储设备65;以及网络和联网部件66。在一些实施例中,软件部件包括网络应用服务器软件67和数据库软件68。
虚拟化层70提供抽象层,从该抽象层可提供虚拟实体的以下示例:虚拟服务器71;虚拟存储器72;虚拟网络73,包括虚拟专用网络;虚拟应用程序和操作系统74;以及虚拟客户端75。
在一个示例中,管理层80可提供下面描述的功能。资源供应81提供计算资源和用于在云计算环境内执行任务的其它资源的动态获取。当在云计算环境中利用资源时,计量和定价82对资源的使用进行成本跟踪,并且为这些资源的消耗提供帐单和发票。在一个示例中,这些资源可以包括应用软件许可证。安全性为云用户和任务提供身份验证,以及对数据和其他资源的保护。用户门户83为用户和系统管理员提供对云计算环境的访问。服务级别管理84提供云计算资源分配和管理,从而满足所需的服务级别。服务水平协议(ServiceLevel Agreement,SLA)规划和实现85为根据SLA预期未来需求的云计算资源提供了预安排和采购。
工作负载层90提供可以利用云计算环境的功能的示例。可以从该层提供的工作负载和功能的示例包括:映射(mapping)及导航91;软件开发及生命周期管理92;虚拟课堂教学交付93;数据分析处理94;交易处理95;以及可量化性正则化96。可量化性正则化96可以根据可量化性正则化来压缩神经网络模型。
一些实施例可涉及在任何可能的技术细节集成水平的系统、方法和/或计算机可读介质。计算机可读介质可以包括计算机可读非易失性存储介质,计算机可读非易失性存储介质具有用于使处理器执行操作的计算机可读程序指令。
计算机可读存储介质可为有形设备,有形设备可保存和存储由指令执行设备使用的指令。计算机可读存储介质可为,例如但不限于,电子存储设备、磁存储设备、光存储设备、电磁存储设备、半导体存储设备或前述的任何合适的组合。计算机可读存储介质的更具体示例的非穷尽列表包括以下内容:便携式计算机软盘、硬盘、随机存取存储器(RandomAccess Memory,RAM)、只读存储器(Read-Only Memory,ROM)、可擦除可编程只读存储器(Erasable Programmable Read-Only Memory,EPROM或闪存)、静态随机存取存储器(Static Random Access Memory,SRAM)、便携式光盘只读存储器(Compact Disc Read-Only Memory,CD-ROM)、数字通用盘(Digital Versatile Disk,DVD)、记忆棒、软盘、机械编码装置,例如其上记录有指令的凹槽中的打孔卡片或凸起结构,以及前述的任何合适的组合。如在本文使用的,计算机可读存储介质不被解释为是瞬时信号本身,例如无线电波或其它自由传播的电磁波、通过波导或其它传输介质传播的电磁波(例如,通过光缆的光脉冲),或通过导线传输的电信号。
可将本文描述的计算机可读程序指令从计算机可读存储介质下载到相应的计算/处理设备,或者经由网络(例如,因特网、局域网、广域网和/或无线网络)下载到外部计算机或外部存储设备。网络可以包括铜传输缆线、光传输纤维、无线传输、路由器、防火墙、交换机、网关计算机和/或边缘服务器。每个计算/处理设备中的网络适配卡或网络接口从网络接收计算机可读程序指令,并且转发计算机可读程序指令以存储在相应的计算/处理设备内的计算机可读存储介质中。
执行操作的计算机可读程序代码/指令可为汇编指令、指令集体系结构(Instruction-Set-Architecture,ISA)指令、机器指令、机器相关指令、微代码、固件指令、状态设置数据、集成电路的配置数据,或者以一种或多种编程语言的任何组合编写的源代码或目标代码,该编程语言包括面向对象的编程语言(诸如SmallTalk、C++等)以及过程编程语言(诸如“C”编程语言或类似的编程语言)。计算机可读程序指令可完全在用户的计算机上执行、部分地在用户的计算机上执行、作为独立软件包部分地在用户的计算机上并且部分地在远程计算机上、或者完全在远程计算机或服务器上执行。在后一种情况下,远程计算机可通过任何类型的网络(包括局域网(Local Area Network,LAN)或广域网(Wide AreaNetwork,WAN))连接到用户的计算机,或者可连接到外部计算机(例如,通过使用因特网服务提供商的因特网)。在一些实施例中,包括(例如)可编程逻辑电路、现场可编程门阵列(Field-Programmable Gate Arrays,FPGA)或可编程逻辑阵列(Programmable LogicArrays,PLA)的电子电路可通过利用计算机可读程序指令的状态信息来执行计算机可读程序指令以使电子电路个性化,进而执行本公开的各方面或操作。
可以将这些计算机可读程序指令提供给通用计算机、专用计算机或其它可编程数据处理装置的处理器以产生机器,使得经由计算机或其它可编程数据处理装置的处理器执行的指令,创建用于实现流程图和/或框图的框或多个框中指定的功能/动作的方法。这些计算机可读程序指令还可被存储在计算机可读存储介质中,该计算机可读存储介质可指导计算机、可编程数据处理装置和/或其它设备以特定方式运行,以使存储有指令的计算机可读存储介质包括这样的制造品,该制造品包括实现在流程图和/或框图的框或多个框中指定的功能/操作的各方面的指令。
还可以将计算机可读程序指令加载到计算机、其他可编程数据处理装置或其他设备上,以在计算机、其他可编程装置或其他设备上执行一系列操作步骤,以产生计算机实现的处理,使得在计算机、其他可编程装置或其他设备上执行的指令实现在流程图和/或框图的框或多个框中指定的功能/操作。
附图中的流程图和框图图示了根据各种实施例的系统、方法和计算机可读介质的可能实现的体系结构、功能和操作。在这点上,流程图或框图中的每个框可表示指令的模块、片段或部分,该指令包括用于实现指定的逻辑功能的至少一个可执行指令。方法、计算机系统和计算机可读介质可以包括附加框、更少的框、不同的框,或者与附图中所描绘的那些框不同布置的框。在一些可替换实施方案中,在框中指出的功能可以不按照附图中指出的顺序执行。例如,连续示出的两个框实际上可以同时或基本上同时执行,或者这些框有时可以以相反的顺序执行,这取决于所涉及的功能。还应注意,框图和/或流程图图示中的每个框,以及框图和/或流程图图示中的框的组合可通过基于硬件的专用系统来实现,所述基于硬件的专用系统执行指定功能或操作、或者执行专用硬件和计算机指令的组合。
显然,本文描述的系统和/或方法可以以不同形式的硬件、固件、或硬件和软件的组合来实现。实现这些系统和/或方法的实际专用控制硬件或软件代码不限于这些实施方案。因此,在不参考特定软件代码的情况下在本文描述了系统和/或方法的操作和行为——应当理解,可基于在本文的描述来设计软件和硬件以实现系统和/或方法。
本文中使用的元件、动作或指令都不应被解释为关键的或必要的,除非明确地如此描述。此外,如本文所用,冠词“一种(a)”和“一种(an)”旨在包括至少一个项目,并且可与“至少一个”互换使用。此外,如本文所用,术语“组”旨在包括至少一个项目(例如,相关项目、不相关项目、相关项目和不相关项目的组合等),并且可与“至少一个”互换使用。当仅意指一个项目时,使用术语“一个”或类似语言。此外,如本文所用,术语“具有(has)”、“具有(have)”、“具有(having)”等旨在是开放式术语。进一步地,短语“根据”旨在表示“至少部分地根据”,除非另外明确声明。
已出于图示的目的呈现了对各个方面和实施例的描述,但该描述并非旨在是详尽的或限于所公开的实施例。虽然特征的组合在权利要求中引用和/或在说明书中公开,但是这些组合并不旨在对可能的实施方案的公开进行限制。事实上,这些特征中的许多特征可以以权利要求中未具体列举和/或说明书中未公开的方式组合。虽然下面列出的每个从属权利要求可直接从属于仅一个权利要求,但是可能的实施方式的公开包括与权利要求组中的每个其它权利要求进行组合的每个从属权利要求。在不脱离所描述的实施例的范围的情况下,许多修改和变化对于本领域普通技术人员是显而易见的。本文使用的术语被选择为最佳地解释实施例的原理、实际应用或相对于市场中发现的技术的改进,或者使得本领域普通技术人员能够理解本文公开的实施例。
Claims (15)
1.一种压缩神经网络模型的方法,其特征在于,包括:
对与权重系数集对应的多维张量进行重塑,所述权重系数集与神经网络相关联;
从所述权重系数集中识别权重系数子集;以及
根据识别的权重系数子集,压缩所述神经网络的模型。
2.根据权利要求1所述的方法,其特征在于,所述从所述权重系数集中识别所述权重系数子集包括:
对所述权重系数集进行量化;以及
选择使得可量化性正则化损失值最小化的权重系数子集,所述可量化性正则化损失值与数据损失值和量化损失值相对应,所述数据损失值和所述量化损失值与量化的权重系数集相关联。
3.根据权利要求2所述的方法,其特征在于,进一步包括反向传播所述最小化的可量化性正则化损失值,根据反向传播的所述最小化的可量化性正则化损失值来训练所述神经网络。
4.根据权利要求2所述的方法,其特征在于,反向传播所述最小化的可量化性正则化损失值,根据反向传播的所述最小化的可量化性正则化损失值,将所述权重系数子集中的至少一个权重系数固定。
5.根据权利要求4所述的方法,其特征在于,进一步包括确定与所述权重系数子集相关联的梯度和量化掩码,根据确定的所述梯度和所述量化掩码,更新所述权重系数子集中的至少一个非固定权重系数。
6.根据权利要求1所述的方法,其特征在于,进一步包括通过对所述权重系数子集进行量化和熵编解码来压缩所述权重系数子集。
7.根据权利要求1所述的方法,其特征在于,对所述神经网络的每个层分开进行压缩。
8.一种压缩神经网络模型的计算机系统,其特征在于,所述计算机系统包括:
重塑模块,用于对与权重系数集对应的多维张量进行重塑,所述权重系数集与神经网络相关联;
识别模块,用于从所述权重系数集中识别权重系数子集;以及
压缩模块,用于根据识别的权重系数子集,压缩所述神经网络的模型。
9.根据权利要求8所述的计算机系统,其特征在于,识别所述权重系数子集包括:
量化模块,用于对所述权重系数集进行量化;以及
选择代码,用于选择使得可量化性正则化损失值最小化的权重系数子集,所述可量化性正则化损失值与数据损失值和量化损失值相对应,所述数据损失值和所述量化损失值与量化的权重系数集相关联。
10.根据权利要求9所述的计算机系统,其特征在于,进一步包括训练模块,所述训练模块用于反向传播所述最小化的可量化性正则化损失值,根据反向传播的所述最小化的可量化性正则化损失值来训练所述神经网络。
11.根据权利要求9所述的计算机系统,其特征在于,反向传播所述最小化的可量化性正则化损失值,根据反向传播的所述最小化的可量化性正则化损失值,将所述权重系数子集中的至少一个权重系数固定。
12.根据权利要求11所述的计算机系统,其特征在于,进一步包括更新模块,所述更新模块用于确定与所述权重系数子集相关联的梯度和量化掩码,根据确定的所述梯度和所述量化掩码,更新所述权重系数子集中的至少一个非固定权重系数。
13.根据权利要求8所述的计算机系统,其特征在于,进一步包括压缩模块,所述压缩模块用于通过对所述权重系数子集进行量化和熵编解码来压缩所述权重系数子集。
14.一种易失性计算机可读介质,其特征在于,其上存储有压缩神经网络模型的计算机程序,所述计算机程序用于使得至少一个计算机处理器执行如权利要求1-7中任一项所述的方法。
15.一种服务器计算机,其特征在于,包括处理器和存储器;所述存储器存储有计算机程序,所述计算机程序被所述处理器执行时,使得所述处理器执行如权利要求1至7中任一项所述的方法。
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201962954472P | 2019-12-28 | 2019-12-28 | |
US62/954,472 | 2019-12-28 | ||
US17/073,602 | 2020-10-19 | ||
US17/073,602 US20210201157A1 (en) | 2019-12-28 | 2020-10-19 | Neural network model compression with quantizability regularization |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113052309A true CN113052309A (zh) | 2021-06-29 |
Family
ID=76508053
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011448780.8A Pending CN113052309A (zh) | 2019-12-28 | 2020-12-09 | 压缩神经网络模型的方法、计算机系统以及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113052309A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116348880A (zh) * | 2021-10-21 | 2023-06-27 | 维萨国际服务协会 | 用于嵌入压缩和正则化的方法、系统和计算机程序产品 |
-
2020
- 2020-12-09 CN CN202011448780.8A patent/CN113052309A/zh active Pending
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116348880A (zh) * | 2021-10-21 | 2023-06-27 | 维萨国际服务协会 | 用于嵌入压缩和正则化的方法、系统和计算机程序产品 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
WO2019100784A1 (en) | Feature extraction using multi-task learning | |
US11263223B2 (en) | Using machine learning to determine electronic document similarity | |
US11443228B2 (en) | Job merging for machine and deep learning hyperparameter tuning | |
US11853877B2 (en) | Training transfer-focused models for deep learning | |
US11811429B2 (en) | Variational dropout with smoothness regularization for neural network model compression | |
US20200125926A1 (en) | Dynamic Batch Sizing for Inferencing of Deep Neural Networks in Resource-Constrained Environments | |
JP7398482B2 (ja) | ニューラル・ネットワークのデータセット依存の低ランク分解 | |
US11861469B2 (en) | Code generation for Auto-AI | |
US20220138537A1 (en) | Probabilistic nonlinear relationships cross-multi time series and external factors for improved multivariate time series modeling and forecasting | |
US11893691B2 (en) | Point cloud geometry upsampling | |
CN113557534A (zh) | 深度森林模型开发和训练 | |
WO2022043798A1 (en) | Automated query predicate selectivity prediction using machine learning models | |
US11935271B2 (en) | Neural network model compression with selective structured weight unification | |
US11496775B2 (en) | Neural network model compression with selective structured weight unification | |
US11816868B2 (en) | Coding of multiple-component attributes for point cloud coding | |
US20190138895A1 (en) | Model matching and learning rate selection for fine tuning | |
CN113052309A (zh) | 压缩神经网络模型的方法、计算机系统以及存储介质 | |
US20210201157A1 (en) | Neural network model compression with quantizability regularization | |
US20210232891A1 (en) | Neural network model compression with structured weight unification | |
CN114616825B (zh) | 视频数据解码方法和计算机系统以及存储介质 | |
US20220036245A1 (en) | EXTRACTING SEQUENCES FROM d-DIMENSIONAL INPUT DATA FOR SEQUENTIAL PROCESSING WITH NEURAL NETWORKS | |
CN113159312B (zh) | 压缩神经网络模型的方法、计算机系统以及存储介质 | |
CN113112012B (zh) | 用于视频图像处理的方法、装置和计算机设备 | |
CN113286143A (zh) | 压缩神经网络模型的方法、计算机系统以及存储介质 | |
US20230099635A1 (en) | Context aware automated artificial intelligence framework |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
REG | Reference to a national code |
Ref country code: HK Ref legal event code: DE Ref document number: 40046426 Country of ref document: HK |
|
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |