CN116432737A - 基于深度学习的模型压缩训练的方法、装置和设备 - Google Patents
基于深度学习的模型压缩训练的方法、装置和设备 Download PDFInfo
- Publication number
- CN116432737A CN116432737A CN202111676487.1A CN202111676487A CN116432737A CN 116432737 A CN116432737 A CN 116432737A CN 202111676487 A CN202111676487 A CN 202111676487A CN 116432737 A CN116432737 A CN 116432737A
- Authority
- CN
- China
- Prior art keywords
- target operator
- compression
- operator
- compression parameters
- parameters corresponding
- 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
- 238000007906 compression Methods 0.000 title claims abstract description 240
- 230000006835 compression Effects 0.000 title claims abstract description 240
- 238000000034 method Methods 0.000 title claims abstract description 89
- 238000012549 training Methods 0.000 title claims abstract description 86
- 238000013135 deep learning Methods 0.000 title claims abstract description 48
- 238000013507 mapping Methods 0.000 claims abstract description 91
- 238000013136 deep learning model Methods 0.000 claims abstract description 46
- 238000012804 iterative process Methods 0.000 claims abstract description 13
- 238000004590 computer program Methods 0.000 claims description 8
- 230000009286 beneficial effect Effects 0.000 abstract description 2
- 230000008569 process Effects 0.000 description 41
- 238000012545 processing Methods 0.000 description 35
- 238000004891 communication Methods 0.000 description 23
- 238000010586 diagram Methods 0.000 description 23
- 238000004364 calculation method Methods 0.000 description 18
- 238000013139 quantization Methods 0.000 description 16
- 230000006870 function Effects 0.000 description 10
- 238000005516 engineering process Methods 0.000 description 9
- PSYGHMBJXWRQFD-UHFFFAOYSA-N 2-(2-sulfanylacetyl)oxyethyl 2-sulfanylacetate Chemical compound SCC(=O)OCCOC(=O)CS PSYGHMBJXWRQFD-UHFFFAOYSA-N 0.000 description 7
- 238000013528 artificial neural network Methods 0.000 description 7
- 238000012546 transfer Methods 0.000 description 7
- 238000013144 data compression Methods 0.000 description 5
- 238000004422 calculation algorithm Methods 0.000 description 4
- 230000003287 optical effect Effects 0.000 description 4
- 230000002093 peripheral effect Effects 0.000 description 4
- 230000005236 sound signal Effects 0.000 description 4
- 230000003068 static effect Effects 0.000 description 4
- 102100030148 Integrator complex subunit 8 Human genes 0.000 description 3
- 101710092891 Integrator complex subunit 8 Proteins 0.000 description 3
- 238000013473 artificial intelligence Methods 0.000 description 3
- 238000013461 design Methods 0.000 description 3
- 239000011159 matrix material Substances 0.000 description 3
- 230000004044 response Effects 0.000 description 3
- 230000001133 acceleration Effects 0.000 description 2
- 230000004888 barrier function Effects 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 2
- 230000008859 change Effects 0.000 description 2
- 238000007418 data mining Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 238000007667 floating Methods 0.000 description 2
- 230000003993 interaction Effects 0.000 description 2
- 238000010801 machine learning Methods 0.000 description 2
- 238000007726 management method Methods 0.000 description 2
- 238000012821 model calculation Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 238000003058 natural language processing Methods 0.000 description 2
- 230000009471 action Effects 0.000 description 1
- 230000004913 activation Effects 0.000 description 1
- 230000006978 adaptation Effects 0.000 description 1
- 238000004458 analytical method Methods 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 210000004027 cell Anatomy 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000003384 imaging method Methods 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 230000014759 maintenance of location Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 210000002569 neuron Anatomy 0.000 description 1
- 238000010606 normalization Methods 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 230000009466 transformation Effects 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
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, Expansion, Code Conversion, And Decoders (AREA)
Abstract
本申请提供一种基于深度学习的模型压缩训练的方法、装置和设备。该方法包括:在对深度学习模型进行训练的迭代过程中,当运行至目标算子时,获取目标算子的输入数据,目标算子为数据待压缩的算子;从映射关系存储文件中获取与目标算子对应的压缩参数,其中,映射关系存储文件中包括与每一目标算子对应的压缩参数;基于与目标算子对应的压缩参数,对目标算子的输入数据进行压缩,以得到压缩数据;根据压缩数据对深度学习模型进行训练。本申请的方法,有助于加快模型训练速度,同时减少计算资源消耗。
Description
技术领域
本申请涉及深度学习技术和人工智能领域,尤其涉及一种基于深度学习的模型压缩训练的方法、装置和设备。
背景技术
随着人工智能技术的发展,深度学习模型广泛应用于图像处理、自然语言处理等领域。深度学习需要用到大量的神经网络和运算模块,基于这个需求目前有很多深度学习框架,例如PyTorch、Caffe、MXNet和TensorFlow等。深度学习框架通常是基于计算图设计的,计算图可分为静态计算图和动态计算图。静态图指先定义再运行,一次定义多次运行。动态图是在运行过程中被定义的,在运行的时候构建,可以多次构建多次运行。基于这样的功能设计思路,运算模块对应图中的一个节点,图中包含多个运算节点。由于动态图的思想直观明了,更符合人的思考过程,使用动态图设计深度学习模型的研究越来越多。
深度学习模型的压缩是指利用神经网络参数的冗余性和网络结构的冗余性来精简模型,在不影响任务完成度的情况下,得到参数量更少、结构更精简的模型。被压缩后的模型对于计算资源和内存的需求更小,相比原始未压缩的模型能够满足更加广泛的应用需求。
目前,在基于深度学习的模型压缩训练过程中,当运行至可以实现数据压缩的算子时,算子内部需要完成根据输入数据计算压缩参数,然后通过计算获得的压缩参数对输入数据进行压缩处理,数据被压缩处理之后再进行算子计算以输出结果。
在模型训练的迭代过程中,每一次迭代过程中都需要计算一次压缩参数,导致模型训练的速度较慢,模型训练的过程运行在计算设备上,进而导致需要消耗计算设备的大量计算资源。
发明内容
本申请提供一种基于深度学习的模型压缩训练的方法、装置和设备,用以解决深度学习模型训练速度慢、计算资源消耗大的问题。
第一方面,本申请提供一种基于深度学习的模型压缩训练的方法,所述深度学习模型包括多个算子,所述方法包括:
在对深度学习模型进行训练的迭代过程中,当运行至目标算子时,获取所述目标算子的输入数据,所述目标算子为数据待压缩的算子;
从映射关系存储文件中获取与所述目标算子对应的压缩参数,其中,所述映射关系存储文件中包括与每一目标算子对应的压缩参数;
基于与所述目标算子对应的压缩参数,对所述目标算子的输入数据进行压缩,以得到压缩数据;
根据所述压缩数据对所述深度学习模型进行训练。
第二方面,本申请提供一种基于深度学习的模型压缩训练的装置,所述深度学习模型包括多个算子,所述装置包括:
获取单元,用于在对深度学习模型进行训练的迭代过程中,当运行至目标算子时,获取所述目标算子的输入数据;所述目标算子为数据待压缩的算子;
映射单元,用于从映射关系存储文件中获取与所述目标算子对应的压缩参数,所述映射关系存储文件中包括与每一目标算子对应的压缩参数;
压缩单元,用于基于与所述目标算子对应的压缩参数,对所述目标算子的输入数据进行压缩,以得到压缩数据;
训练单元,用于根据所述压缩数据对所述深度学习模型进行训练。
第三方面,本申请提供一种芯片,包括如上述第二方面所述的基于深度学习的模型压缩训练的装置。
第四方面,本申请提供一种计算机设备,包括:处理器以及与所述处理器通信连接的存储器;所述存储器存储计算机执行指令;所述处理器执行所述存储器存储的计算机执行指令,以实现如上述第一方面所述的基于深度学习的模型压缩训练的方法。
第五方面,本申请提供一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机执行指令,所述计算机执行指令被处理器执行时用于实现如上述第一方面所述的基于深度学习的模型压缩训练的方法。
第六方面,本申请提供一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现如上述第一方面所述的基于深度学习的模型压缩训练的方法。
本申请提供的基于深度学习的模型压缩训练的方法、装置和设备,深度学习模型包括多个算子,在对深度学习模型进行训练的迭代过程中,当运行至目标算子时,获取目标算子的输入数据,目标算子为数据待压缩的算子;从映射关系存储文件中获取与目标算子对应的压缩参数,其中,映射关系存储文件中包括与每一目标算子对应的压缩参数;基于与目标算子对应的压缩参数,对目标算子的输入数据进行压缩,以得到压缩数据;根据压缩数据对深度学习模型进行训练。据此,引入映射关系存储文件来存储深度学习模型训练迭代过程中使用的与目标算子对应的压缩参数,使得之前迭代过程中计算的压缩参数能够复用,降低每一次迭代过程中需要对各目标算子都计算一次压缩参数的概率,减少计算压缩参数所需要的时间,从而有助于加快模型训练速度,同时减少计算资源消耗。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本申请的实施例,并与说明书一起用于解释本申请的原理。
图1为本公开一示例性实施例示出的板卡的结构图;
图2为本公开一示例性实施例示出的组合处理装置的结构图;
图3为本公开一示例性实施例示出的计算装置的内部结构示意图;
图4为本公开一示例性实施例示出的处理器核的内部结构示意图;
图5为本公开一示例性实施例示出的不同集群的处理器核间的数据写入过程示意图;
图6为本公开一示例性实施例示出的基于深度学习的模型压缩训练的方法的流程示意图;
图7为本公开另一示例性实施例示出的基于深度学习的模型压缩训练方法的流程示意图;
图8为本公开另一示例性实施例示出的基于深度学习的模型压缩训练方法的流程示意图;
图9为本公开一示例性实施例示出的基于深度学习的模型压缩训练的装置的结构示意图;
图10为本公开另一示例性实施例示出的基于深度学习的模型压缩训练的装置的结构示意图;
图11为本公开一示例性实施例示出的计算机设备的结构示意图;
图12为本公开一示例性实施例示出的计算机设备的框图。
通过上述附图,已示出本申请明确的实施例,后文中将有更详细的描述。这些附图和文字描述并不是为了通过任何方式限制本申请构思的范围,而是通过参考特定实施例为本领域技术人员说明本申请的概念。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本申请相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本申请的一些方面相一致的装置和方法的例子。下面首先对本申请涉及到的专业名词进行解释。
PyTorch是一款Facebook开源的深度学习编程框架,适用于Python、C++等编程语言,用以实现高效的GPU并行计算及深度学习网络搭建,具有轻松扩展、快速实现、生产部署稳定性强等优点。
PyTorch的主要特征是类似于Numpy的张量计算,编写新的神经网络模块或PyTorch中Tensor API的接口设计简单明了且具有最少的抽象,PyTorch在搭建神经网络模块时常用到的算子模块包含torch.ops,torch.Tensor.ops,torch.nn.Modules,torch.nn.functional.ops。
PyTorch编写神经网络模块使用到的算子模块接口对应C++实现为同一个函数,Python接口定义多种调用形式,方便神经网络模块的搭建。但函数只是执行一个任务的语句组合,只包含函数名称、参数、函数主体及返回类型,函数调用执行方式为执行一次完成一次对应计算,返回按照执行传递的输入执行,对应PyTorch计算模块的函数也是如此。对比静态图的实现方式,每个计算模块中的算子是一个类的实例,类是面向对象的,可将多个函数进行封装。
深度学习模型的压缩是指利用神经网络参数的冗余性和网络结构的冗余性精简模型,在不影响任务完成度的情况下,得到参数量更少、结构更精简的模型。被压缩后的模型计算资源需求和内存需求更小,相比原始未压缩的模型能够满足更加广泛的应用需求。
模型量化作为模型压缩的一种方式,是一种将浮点计算转成低比特定点计算的技术,可以有效的降低模型计算强度、参数大小和内存消耗。低位宽也可在许多硬件平台上使用高性能的矢量化操作。与典型的FP32模型相比,PyTorch支持INT8量化,模型大小减少4倍,内存带宽需求也可减小4倍。模型量化对应的位宽可以选择为INT8、INT16或INT32,模型数据量化可按照不同的量化规则来实现,一般需要量化参数来映射FP32数据与量化数据,对应量化参数可以对FP32数据和量化数据进行相互转换。
下面以具体地实施例对本申请的技术方案以及本申请的技术方案如何解决背景技术中提出的技术问题进行详细说明。下面这几个具体的实施例可以相互结合,对于相同或相似的概念或过程可能在某些实施例中不再赘述。下面将结合附图,对本申请的实施例进行描述。
图1示出本披露实施例的一种板卡10的结构示意图。如图1所示,板卡10包括芯片101,其是一种系统级芯片(System on Chip,SoC),或称片上系统,集成有一个或多个组合处理装置,组合处理装置是一种人工智能运算单元,用以支持各类深度学习和机器学习算法,满足计算机视觉、语音、自然语言处理、数据挖掘等领域复杂场景下的智能处理需求,比如进行深度学习模型的训练。特别是深度学习技术大量应用在云端智能领域,云端智能应用的一个显著特点是输入数据量大,对平台的存储能力和计算能力有很高的要求,此实施例的板卡10适用在云端智能应用,具有庞大的片外存储、片上存储和大量的计算能力。
芯片101通过对外接口装置102与外部设备103相连接。外部设备103例如是服务器、计算机、摄像头、显示器、鼠标、键盘、网卡或wifi接口等。待处理的数据可以由外部设备103通过对外接口装置102传递至芯片101。芯片101的计算结果可以经由对外接口装置102传送回外部设备103。根据不同的应用场景,对外接口装置102可以具有不同的接口形式,例如PCIe接口等。
板卡10还包括用于存储数据的存储器件104,其包括一个或多个存储单元105。存储器件104通过总线与控制器件106和芯片101进行连接和数据传输。板卡10中的控制器件106配置用于对芯片101的状态进行调控。为此,在一个应用场景中,控制器件106可以包括单片机(Micro Controller Unit,MCU)。
图2是示出此实施例的芯片101中的组合处理装置的结构图。如图2中所示,组合处理装置20包括计算装置201、接口装置202、处理装置203和DRAM 204。
计算装置201配置成执行用户指定的操作,主要实现为单核智能处理器或者多核智能处理器,用以执行深度学习或机器学习的计算,其可以通过接口装置202与处理装置203进行交互,以共同完成用户指定的操作。
接口装置202用于在计算装置201与处理装置203间传输数据和控制指令。例如,计算装置201可以经由接口装置202从处理装置203中获取输入数据,写入计算装置201片上的存储装置。进一步,计算装置201可以经由接口装置202从处理装置203中获取控制指令,写入计算装置201片上的控制缓存中。替代地或可选地,接口装置202也可以读取计算装置201的存储装置中的数据并传输给处理装置203。
处理装置203作为通用的处理装置,执行包括但不限于数据搬运、对计算装置201的开启和/或停止等基本控制。根据实现方式的不同,处理装置203可以是中央处理器(central processing unit,CPU)、图形处理器(graphics processing unit,GPU)或其他通用和/或专用处理器中的一种或多种类型的处理器,这些处理器包括但不限于数字信号处理器(digital signal processor,DSP)、专用集成电路(application specificintegrated circuit,ASIC)、现场可编程门阵列(field-programmable gate array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等,并且其数目可以根据实际需要来确定。如前所述,仅就本披露的计算装置201而言,其可以视为具有单核结构或者同构多核结构。然而,当将计算装置201和处理装置203整合共同考虑时,二者视为形成异构多核结构。
DRAM 204用以存储待处理的数据,为DDR内存,大小通常为16G或更大,用于保存计算装置201和/或处理装置203的数据。
图3示出了计算装置201的内部结构示意图。计算装置201用以处理计算机视觉、语音、自然语言、数据挖掘等输入数据,图中的计算装置201采用多核分层结构设计,计算装置201作为一个片上系统,其包括多个集群(cluster),每个集群又包括多个处理器核,换言之,计算装置201是以片上系统-集群-处理器核的层次所构成的。
以片上系统的层级来看,如图3所示,计算装置201包括外部存储控制器301、外设通信模块302、片上互联模块303、同步模块304以及多个集群305。
外部存储控制器301可以有多个,在图中示例性地展示2个,其用以响应处理器核发出的访问请求,访问外部存储设备,例如图2中的DRAM 204,从而自片外读取数据或是将数据写入。外设通信模块302用以通过接口装置202接收来自处理装置203的控制信号,启动计算装置201执行任务。片上互联模块303将外部存储控制器301、外设通信模块302及多个集群305连接起来,用以在各个模块间传输数据和控制信号。同步模块304是一种全局同步屏障控制器(global barrier controller,GBC),用以协调各集群的工作进度,确保信息的同步。多个集群305是计算装置201的计算核心,在图中示例性地展示4个,随着硬件的发展,本披露的计算装置201还可以包括8个、16个、64个、甚至更多的集群305。集群305用以高效地执行深度学习算法。
以集群的层级来看,如图3所示,每个集群305包括多个处理器核(IPU core)306及一个存储核(MEM core)307。
处理器核306在图中示例性地展示4个,本披露不限制处理器核306的数量。其内部架构如图4所示。每个处理器核306包括三大模块:控制模块41、运算模块42及存储模块43。
控制模块41用以协调并控制运算模块42和存储模块43的工作,以完成深度学习的任务,其包括取指单元(instruction fetch unit,IFU)411及指令译码单元(instructiondecode unit,IDU)412。取指单元411用以获取来自处理装置203的指令,指令译码单元412则将获取的指令进行译码,并将译码结果作为控制信息发送给运算模块42和存储模块43。
运算模块42包括向量运算单元421及矩阵运算单元422。向量运算单元421用以执行向量运算,可支持向量乘、加、非线性变换等复杂运算;矩阵运算单元422负责深度学习算法的核心计算,即矩阵乘及卷积。
存储模块43用来存储或搬运相关数据,包括神经元存储单元(neuron RAM,NRAM)431、权值存储单元(weight RAM,WRAM)432、输入/输出直接内存访问模块(input/outputdirect memory access,IODMA)433、搬运直接内存访问模块(move direct memoryaccess,MVDMA)434。NRAM 431用以存储供处理器核306计算的输入、输出数据及中间结果;WRAM 432则用以存储深度学习网络的权值;IODMA 433通过广播总线309控制NRAM431/WRAM432与DRAM 204的访存;MVDMA 434则用以控制NRAM 431/WRAM 432与SRAM 308的访存。
回到图3,存储核307主要用以存储和通信,即存储处理器核306间的共享数据或中间结果、以及执行集群305与DRAM 204之间的通信、集群305间彼此的通信、处理器核306间彼此的通信等。在其他实施例中,存储核307具有标量运算的能力,用以执行标量运算。
存储核307包括共享存储单元(SRAM)308、广播总线309、集群直接内存访问模块(cluster direct memory access,CDMA)310及全局直接内存访问模块(global directmemory access,GDMA)311。SRAM 308承担高性能数据中转站的角色,在同一个集群305内不同处理器核306之间所复用的数据不需要通过处理器核306各自向DRAM 204获得,而是经SRAM 308在处理器核306间中转,存储核307只需要将复用的数据从SRAM 308迅速分发给多个处理器核306即可,以提高核间通讯效率,亦大大减少片上片外的输入/输出访问。
广播总线309、CDMA 310及GDMA 311则分别用来执行处理器核306间的通信、集群305间的通信和集群305与DRAM 204的数据传输。以下将分别说明。
广播总线309用以完成集群305内各处理器核306间的高速通信,此实施例的广播总线309支持核间通信方式包括单播、多播与广播。单播是指点对点(即单一处理器核至单一处理器核)的数据传输,多播是将一份数据从SRAM 308传输到特定几个处理器核306的通信方式,而广播则是将一份数据从SRAM 308传输到所有处理器核306的通信方式,属于多播的一种特例。
CDMA 310用以控制在同一个计算装置201内不同集群305间的SRAM 308的访存。图5示出当一个处理器核欲将数据写入至另一个集群的处理器核时的示意图,以说明CDMA310的工作原理。在此应用场景中,同一个计算装置包括多个集群,为方便说明,图中仅展示集群0与集群1,集群0与集群1分别包括多个处理器核,同样为了说明方便,图中的集群0仅展示处理器核0,集群1仅展示处理器核1。处理器核0欲将数据写入至处理器核1。
首先,处理器核0发送单播写请求将数据写入本地的SRAM 0中,CDMA 0作为主(master)端,CDMA 1作为从(slave)端,主端向从端推送写请求,即主端发送写地址AW和写数据W,将数据传送到集群1的SRAM 1中,接着从端发送写响应B作为回应,最后集群1的处理器核1发送单播读请求将数据从SRAM 1中读取出来。
回到图3,GDMA 311与外部存储控制器301协同,用以控制集群305的SRAM 308到DRAM 204的访存,或是将数据自DRAM 204读取至SRAM 308中。从前述可知,DRAM204与NRAM431或WRAM 432间的通信可以经由2个渠道来实现。第一个渠道是通过IODAM 433直接联系DRAM 204与NRAM 431或WRAM 432;第二个渠道是先经由GDMA 311使得数据在DRAM 204与SRAM 308间传输,再经过MVDMA 434使得数据在SRAM 308与NRAM 431或WRAM 432间传输。虽然表面上看来第二个渠道需要更多的元件参与,数据流较长,但实际上在部分实施例中,第二个渠道的带宽远大于第一个渠道,因此DRAM 204与NRAM 431或WRAM 432间的通信通过第二个渠道可能更有效率。本披露的实施例可根据本身硬件条件选择数据传输渠道。
在其他实施例中,GDMA 311的功能和IODMA 433的功能可以整合在同一部件中。本披露为了方便描述,将GDMA 311和IODMA 433视为不同部件,对于本领域技术人员来说,只要其实现的功能以及达到的技术效果与本披露类似,即属于本披露的保护范围。进一步地,GDMA 311的功能、IODMA 433的功能、CDMA 310的功能、MVDMA 434的功能亦可以由同一部件来实现,同样地,只要其实现的功能以及达到的技术效果与本披露类似,均属于本披露的保护范围。
图6为本公开一示例性实施例示出的基于深度学习的模型压缩训练的方法的流程示意图。
如图6所示,本公开所示出的基于深度学习的模型压缩训练的方法,包括:
S601,在对深度学习模型进行训练的迭代过程中,当运行至目标算子时,获取目标算子的输入数据,目标算子为数据待压缩的算子。
本公开提供的方案可以由具备计算能力的芯片或计算机设备执行,例如该方法应用于上述板卡、装置或处理器中。
深度学习模型的训练涉及多次迭代过程,通过多次迭代训练对模型参数进行调整,实现模型收敛。可选地,模型迭代次数根据训练的结果进行设置,例如当训练参数趋于稳定后训练结束。
算子是深度学习算法中的计算单元,深度学习模型包括多个算子,例如卷积算子、全连接算子、激活算子、归一化算子等。目标算子为数据待压缩的算子,可以理解为目标算子的输入数据需要先进行压缩再进行计算。待压缩的算子一般指计算量大的算子,例如卷积算子、全连接算子等。通过对计算量大的算子中冗余的参数进行压缩精简,达到减少计算提高训练速度的目的。
可选地,目标算子可以根据算子的计算量确定,设定一个计算量阈值,若算子的计算量大于该阈值,则判断该算子为目标算子(待压缩算子),反之,该算子不是目标算子(待压缩算子)。可选地,目标算子还可以预先确定。具体地,在深度学习模型的所有算子中预先确定目标算子,给目标算子添加压缩标识,压缩标识用于表征携带该压缩标识的算子的输入数据需要先进行压缩再进行计算。若监测到当前算子携带有压缩标识,则判定该算子为目标算子,然后获取目标算子的输入数据,以待后续进行压缩。
S602,从映射关系存储文件中获取与目标算子对应的压缩参数,其中,映射关系存储文件中包括与每一目标算子对应的压缩参数。
在深度学习模型量化训练过程中,由于模型中权重是逐渐变化并趋于稳定的,所以在迭代训练过程中大多数迭代可以复用上一次迭代的量化参数。本申请通过映射关系存储文件将迭代过程中模型之前的量化参数记录下来。
映射关系存储文件用于存储模型属性状态与模型算子间的映射关系,模型属性状态包括压缩参数。确定目标算子后,可以通过该映射关系获得目标算子对应的压缩参数。可选地,模型属性状态还可以包括设备相关参数,例如当计算压缩参数的设备和用于进行数据压缩的设备不同时,所需要的用于进行设备转换的异构设备参数。映射关系存储文件中与目标算子对应的压缩参数,可以理解为模型训练过程中与目标算子对应的最近使用的压缩参数。举例来说,若当前次迭代过程为第1次迭代过程,则此时获取的与目标算子对应的压缩参数可以是设置的初始值;若当前次迭代过程为第N次迭代过程(N为大于1的整数),则此时获取的与目标算子对应的压缩参数可以是第N-1次迭代过程中所使用的与目标算子对应的压缩参数。S603,基于与目标算子对应的压缩参数,对目标算子的输入数据进行压缩,以得到压缩数据。
获得与目标算子对应的压缩参数之后,可以通过已有的数据压缩方式,基于压缩参数对该目标算子的输入数据进行压缩,以得到压缩数据。压缩数据即为压缩后的输入数据,相对于原始的输入数据,数据量更少,对于计算资源和内存的需求更小。
可选地,在模型量化中,压缩参数包括位宽和量化系数,可以通过已有的量化方式,基于位宽和量化系数对目标算子的输入数据进行量化,以得到量化数据。举例来说,输入数据为浮点数据FP32,量化数据为整型数据INT8,该量化数据相对于该输入数据,对于计算资源和内存的需求可减小为原来的1/4。
可选地,压缩参数还可以包括权重稀疏参数、算子并行计算拆分参数等其他能够实现模型压缩的参数。
S604,根据压缩数据对深度学习模型进行训练。
在每一次迭代过程中,根据压缩数据进行模型计算,以完成深度学习模型的训练,有助于加快模型训练速度,同时减小计算资源消耗。
本实施例中,引入映射关系存储文件来存储深度学习模型训练迭代过程中使用的与目标算子对应的压缩参数,使得之前迭代过程中计算的压缩参数能够复用,降低每一次迭代过程中需要对各目标算子都计算一次压缩参数的概率,减少计算压缩参数所需要的时间,从而有助于加快模型训练速度,同时减少计算资源消耗。
图7为本公开另一示例性实施例示出的基于深度学习的模型压缩训练的方法的流程示意图。
如图7所示,本公开所示出的基于深度学习的模型压缩训练的方法,包括:
S701,在对深度学习模型进行训练的迭代过程中,当运行至目标算子时,获取目标算子的输入数据,目标算子为数据待压缩的算子。
步骤S701与步骤S601的实现方式类似,此处不再赘述。
S702,以目标算子的算子标识符为键值在映射关系存储文件中进行映射,获得与目标算子的算子标识符对应的压缩参数,作为与目标算子对应的压缩参数,其中,映射关系存储文件中包括与每一目标算子对应的压缩参数。
算子标识符用于区分不同的算子,深度学习模型的每个算子都具有一个唯一的算子标识符。可选地,每个算子对应特定的类型、参数和名称,算子名称在模型中是唯一的,可以将算子名称作为该算子的算子标识符。
可选地,模型训练过程中每个算子所记录的属性状态与算子标识符一一对应。算子标识符与属性状态的映射使用ParamMap表示。ParamMap可以对应编程语言中的一个Map实例或者是自定义关系的一个实例,包含映射关系的创建、修改与查询。映射关系以算子标识符作为键值,模型属性状态Param作为映射值。ParamMap作为模型训练的一个全局对象,记录当前模型属性状态,模型属性状态可以包括但不限于压缩参数。
创建好映射关系之后,对其进行存储获得映射关系存储文件,在映射关系存储文件中目标算子的压缩参数与算子标识符也是一一对应,从而以目标算子的算子标识符在映射关系存储文件中进行映射,可以获得与目标算子的算子标识符对应的压缩参数,即获得与目标算子对应的压缩参数。据此,通过存储和维持压缩参数与算子标识符的映射关系,使得模型在下一次迭代训练中能够加载之前迭代训练中存储的压缩参数,方便模型训练过程中压缩参数的保留分析及处理。
可选地,以算子标识符为键值、以压缩参数为映射值,建立算子标识符与压缩参数的映射关系;通过序列化对映射关系进行存储,获得映射关系存储文件。
序列化指把对象转换为字节序列的过程。建立算子标识符与压缩参数的映射关系之后,通过序列化对映射关系进行存储,可将映射关系转换为有序字节流,有利于保证数据的完整性和可传递性,以便保存在本地文件中或者在网络上传输。
可选地,从映射关系存储文件中获取与目标算子对应的压缩参数,包括:通过反序列化对映射关系存储文件进行重建,获得算子标识符与压缩参数的映射关系;基于目标算子的算子标识符在映射关系中进行匹配,将匹配到的压缩参数确定为与目标算子对应的压缩参数。
反序列化是指把字节序列恢复为对象的过程。映射关系存储文件以字节流形式保存,通过反序列化对字节流中保存的对象状态和描述信息进行重建,得到算子标识符与压缩参数的映射关系。再基于目标算子的算子标识符在映射关系中进行匹配,即在映射关系中查询与目标算子的算子标识符对应的压缩参数,将与目标算子的算子标识符对应的压缩参数确定为与目标算子对应的压缩参数。
S703,若基于预设策略确定与目标算子对应的压缩参数无需更新,则根据与目标算子对应的压缩参数,对目标算子的输入数据进行压缩,以得到压缩数据。
预设策略用于判断从映射关系存储文件中获取的与目标算子对应的压缩参数是否需要更新。若获取的压缩参数能够适用于在当前次迭代过程中对该目标算子的输入数据进行压缩,则该压缩参数可以无需更新;若获取的压缩参数不能够适用于在当前次迭代过程中对该目标算子的输入数据进行压缩,则该压缩参数需要更新。
可选地,与目标算子对应的压缩参数是否需要更新,跟该目标算子的输入数据有关。举例来说,在当前次迭代过程中,从映射关系存储文件中获取的与目标算子对应的压缩参数为上一次迭代过程中使用的与该目标算子对应的压缩参数,若当前次迭代过程中该目标算子的输入数据与上一次迭代过程中该目标算子的输入数据相差较小,则与该目标算子对应的压缩参数可能无需更新;若当前次迭代过程中该目标算子的输入数据与上一次迭代过程中该目标算子的输入数据相差较大,则与该目标算子对应的压缩参数可能需要更新。
可选地,预设策略为目标算子的输入数据经过与目标算子对应的压缩参数的压缩之后得到的数据范围,是否在预设范围之内。
预设范围是指压缩后数据的预期范围。压缩后数据的预期范围由压缩目标确定,举例来说,若压缩目标为8位整型数据,则其对应的预设范围为-128~127。
具体地,从映射关系存储文件中获得与目标算子对应的压缩参数之后,可以通过已有的数据压缩方式,基于该压缩参数对目标算子的输入数据进行压缩,得到压缩后数据,判断该压缩后数据的数据范围是否在预设范围之内。
可选地,基于预设策略确定与目标算子对应的压缩参数无需更新,包括:若数据范围在预设范围之内,则确定与目标算子对应的压缩参数无需更新。
数据范围在预设范围之内,说明从映射关系存储文件中获取的与目标算子对应的压缩参数,可以适用于在当前次迭代过程中对该目标算子的输入数据进行压缩,从而无需更新映射关系存储文件中与该目标算子对应的压缩参数,直接复用,即无需重新计算压缩参数,减少计算压缩参数所需要的时间,从而加快模型训练速度,同时减少计算资源消耗。
S704,若基于预设策略确定与目标算子对应的压缩参数需要更新,则根据目标算子的输入数据计算新的压缩参数,根据新的压缩参数,对目标算子的输入数据进行压缩,以得到压缩数据。
可选地,基于预设策略确定与目标算子对应的压缩参数需要更新,包括:若数据范围不在预设范围之内,则确定与目标算子对应的压缩参数需要更新。
数据范围不在预设范围之内,说明从映射关系存储文件中获取的与目标算子对应的压缩参数,不适用于在当前次迭代过程中对该目标算子的输入数据进行压缩,从而需要更新映射关系存储文件中与该目标算子对应的压缩参数,即需要重新计算压缩参数,以保证经过压缩参数的压缩之后得到的数据符合预期要求。
具体地,可以通过已有的压缩参数计算方式,根据当前次迭代过程中目标算子的输入数据,计算与该目标算子对应的新的压缩参数。获得新的压缩参数之后,可以通过已有的数据压缩方式,基于该新的压缩参数对该目标算子的输入数据进行压缩,以得到压缩数据。
可选地,将映射关系存储文件中与目标算子对应的压缩参数,更新为新的压缩参数。
在获得与目标算子对应的新的压缩参数之后,将映射关系存储文件中与目标算子对应的压缩参数,更新为新的压缩参数,具体可以是用新的压缩参数覆盖掉原来的压缩参数。据此实现映射关系存储文件中压缩参数的更新,便于后续迭代复用。
S705,根据压缩数据对深度学习模型进行训练。
步骤S705与步骤S604的实现方式类似,此处不再赘述。
图8为本公开另一示例性实施例示出的基于深度学习的模型压缩训练的方法的流程示意图。
如图8所示,本公开所示出的基于深度学习的模型压缩训练的方法,包括:
S801,在对深度学习模型进行训练的迭代过程中,当运行至目标算子时,获取目标算子的输入数据,目标算子为数据待压缩的算子。
步骤S801与步骤S601的实现方式类似,此处不再赘述。
S802,以目标算子的算子标识符为键值在映射关系存储文件中进行映射,获得与目标算子的算子标识符对应的压缩参数,作为与目标算子对应的压缩参数,其中,映射关系存储文件中包括与每一目标算子对应的压缩参数。
步骤S802与步骤S702的实现方式类似,此处不再赘述。
S803,在确定达到预设的更新间隔次数时,基于预设策略确定与目标算子对应的压缩参数是否需要更新。
更新间隔次数是指相邻两次判断压缩参数是否需要更新所间隔的迭代次数。举例来说,若上一次判断压缩参数是否需要更新是在第N次迭代,更新间隔次数为K次,则下一次判断压缩参数是否需要更新是在第N+K次迭代,于是在确定当前迭代次数为第N+K次时,判定达到预设的更新间隔次数,从而基于预设策略确定与目标算子对应的压缩参数是否需要更新。
预设的更新间隔次数可以根据实际需求进行设置,此处不做限定。可选地,预设的更新间隔次数为1次,即每次迭代时都对压缩参数是否需要更新进行判断,以保证经过压缩参数的压缩之后得到的数据符合预期要求。
可选地,当基于预设策略确定与目标算子对应的压缩参数连续预设次数无需更新时,调整预设的更新间隔次数,调整后的更新间隔次数大于预设的更新间隔次数;在确定达到调整后的更新间隔次数时,基于预设策略确定与目标算子对应的压缩参数是否需要更新。
当基于预设策略确定与目标算子对应的压缩参数连续预设次数无需更新时,说明模型训练趋于稳定,此后的迭代过程中大概率可以直接复用之前迭代过程中使用的压缩参数,因此对预设的更新间隔次数进行调整,以使更新间隔次数增大,从而减少不必要的对压缩参数是否需要更新所进行的判断。其中,连续预设次数可以结合实际情况进行设置,此处不做限定。
对更新间隔次数进行调整之后,将调整后的更新间隔次数代替原来预设的更新间隔次数,作为之后相邻两次判断压缩参数是否需要更新所间隔的迭代次数。据此可以减少不必要的判断压缩参数是否需要更新所耗费的时间,从而进一步加快模型训练速度,同时减少计算资源消耗。
S804,若基于预设策略确定与目标算子对应的压缩参数无需更新,则根据与目标算子对应的压缩参数,对目标算子的输入数据进行压缩,以得到压缩数据。
步骤S804与步骤S703的实现方式类似,此处不再赘述。
S805,若基于预设策略确定与目标算子对应的压缩参数需要更新,则根据目标算子的输入数据计算新的压缩参数,根据新的压缩参数,对目标算子的输入数据进行压缩,以得到压缩数据。
步骤S805与步骤S704的实现方式类似,此处不再赘述。
S806,根据压缩数据对深度学习模型进行训练。
步骤S806与步骤S604的实现方式类似,此处不再赘述。
应该理解的是,上述各示例可以作为独立的实施例,也可以将其中的至少部分进行组合,得到新的实施例,且本实施例对各实施例之间的具体的组合方式不做限定。
图9为本公开一示例性实施例示出的基于深度学习的模型压缩训练的装置的结构示意图,该装置可以采用软件模块或硬件模块,或者是二者的结合成为计算机设备的一部分。
如图9所示,本公开所示出的基于深度学习的模型压缩训练的装置900,包括:
获取单元910,用于在对深度学习模型进行训练的迭代过程中,当运行至目标算子时,获取目标算子的输入数据,目标算子为数据待压缩的算子;
映射单元920,用于从映射关系存储文件中获取与目标算子对应的压缩参数,其中,映射关系存储文件中包括与每一目标算子对应的压缩参数;
压缩单元930,用于基于与目标算子对应的压缩参数,对目标算子的输入数据进行压缩,以得到压缩数据;
训练单元940,用于根据压缩数据对深度学习模型进行训练。
图10为本公开另一示例性实施例示出的基于深度学习的模型压缩训练的装置的结构示意图。
如图10所示,本公开所示出的基于深度学习的模型压缩训练的装置1000,在图9所示实施例的基础上,映射单元920具体用于:以目标算子的算子标识符为键值在映射关系存储文件中进行映射,获得与目标算子的算子标识符对应的压缩参数,作为与目标算子对应的压缩参数。
可选地,压缩单元930包括:
第一压缩模块931,用于若基于预设策略确定与目标算子对应的压缩参数无需更新,则根据与目标算子对应的压缩参数,对目标算子的输入数据进行压缩,以得到压缩数据;
第二压缩模块932,用于若基于预设策略确定与目标算子对应的压缩参数需要更新,则根据目标算子的输入数据计算新的压缩参数,根据新的压缩参数,对目标算子的输入数据进行压缩,以得到压缩数据。
可选地,压缩单元930还包括:
更新模块933,用于在根据目标算子的输入数据计算新的压缩参数之后,将映射关系存储文件中与目标算子对应的压缩参数,更新为新的压缩参数。
可选地,预设策略为目标算子的输入数据经过与目标算子对应的压缩参数的压缩之后得到的数据范围,是否在预设范围之内;压缩单元930还包括:
第一确定模块934,用于若数据范围在预设范围之内,则确定与目标算子对应的压缩参数无需更新;
第二确定模块935,用于若数据范围不在预设范围之内,则确定与目标算子对应的压缩参数需要更新。
可选地,压缩单元930还包括:
判断模块936,用于在确定达到预设的更新间隔次数时,基于预设策略确定与目标算子对应的压缩参数是否需要更新。
可选地,压缩单元930还包括:
调整模块937,用于当基于预设策略确定与目标算子对应的压缩参数连续预设次数无需更新时,调整预设的更新间隔次数,调整后的更新间隔次数大于预设的更新间隔次数。
可选地,装置1000还包括:
存储单元950,用于:以算子标识符为键值、以压缩参数为映射值,建立算子标识符与压缩参数的映射关系;通过序列化对映射关系进行存储,获得映射关系存储文件。
可选地,映射单元920,具体用于:通过反序列化对映射关系存储文件进行重建,获得算子标识符与压缩参数的映射关系;基于目标算子的算子标识符在映射关系中进行匹配,将匹配到的压缩参数确定为与目标算子对应的压缩参数。
关于基于深度学习的模型压缩训练的装置的具体限定可以参见上文中对于基于深度学习的模型压缩训练的方法的限定,在此不再赘述。上述基于深度学习的模型压缩训练的装置中的各个单元和模块可全部或部分通过软件、硬件及其组合来实现。上述各单元和模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个单元和模块对应的操作。
图11为本公开一示例性实施例示出的一种计算机设备的结构示意图。
如图11所示,本公开所示出的计算机设备包括:处理器1101以及与处理器1101通信连接的存储器1102;存储器1102存储计算机执行指令;处理器1101执行存储器1102存储的计算机执行指令,以实现如上述实施例提供的方法。
计算机设备还包括接收器1103和发送器1104。接收器1103用于接收外部设备发送的指令和数据,发送器1104用于向外部设备发送指令和数据。
图12为本公开一示例性实施例示出的一种终端设备的框图,该设备可以是移动电话,计算机,数字广播终端,消息收发设备,游戏控制台,平板设备,医疗设备,健身设备,个人数字助理等。
装置1200可以包括以下一个或多个组件:处理组件1202,存储器1204,电源组件1206,多媒体组件1208,音频组件1210,输入/输出(I/O)接口1212,传感器组件1214,以及通信组件1216。
处理组件1202通常控制装置1200的整体操作,诸如与显示,电话呼叫,数据通信,相机操作和记录操作相关联的操作。处理组件1202可以包括一个或多个处理器1220来执行指令,以完成上述的方法的全部或部分步骤。此外,处理组件1202可以包括一个或多个模块,便于处理组件1202和其他组件之间的交互。例如,处理组件1202可以包括多媒体模块,以方便多媒体组件1208和处理组件1202之间的交互。
存储器1204被配置为存储各种类型的数据以支持在装置1200的操作。这些数据的示例包括用于在装置1200上操作的任何应用程序或方法的指令,联系人数据,电话簿数据,消息,图片,视频等。存储器1204可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,如静态随机存取存储器(SRAM),电可擦除可编程只读存储器(EEPROM),可擦除可编程只读存储器(EPROM),可编程只读存储器(PROM),只读存储器(ROM),磁存储器,快闪存储器,磁盘或光盘。
电源组件1206为装置1200的各种组件提供电力。电源组件806可以包括电源管理系统,一个或多个电源,及其他与为装置1200生成、管理和分配电力相关联的组件。
多媒体组件1208包括在装置1200和用户之间的提供一个输出接口的屏幕。在一些实施例中,屏幕可以包括液晶显示器(LCD)和触摸面板(TP)。如果屏幕包括触摸面板,屏幕可以被实现为触摸屏,以接收来自用户的输入信号。触摸面板包括一个或多个触摸传感器以感测触摸、滑动和触摸面板上的手势。触摸传感器可以不仅感测触摸或滑动动作的边界,而且还检测与触摸或滑动操作相关的持续时间和压力。在一些实施例中,多媒体组件808包括一个前置摄像头和/或后置摄像头。当装置800处于操作模式,如拍摄模式或视频模式时,前置摄像头和/或后置摄像头可以接收外部的多媒体数据。每个前置摄像头和后置摄像头可以是一个固定的光学透镜系统或具有焦距和光学变焦能力。
音频组件1210被配置为输出和/或输入音频信号。例如,音频组件1210包括一个麦克风(MIC),当装置1200处于操作模式,如呼叫模式、记录模式和语音识别模式时,麦克风被配置为接收外部音频信号。所接收的音频信号可以被进一步存储在存储器1204或经由通信组件1216发送。在一些实施例中,音频组件1210还包括一个扬声器,用于输出音频信号。
I/O接口1212为处理组件1202和外围接口模块之间提供接口,上述外围接口模块可以是键盘,点击轮,按钮等。这些按钮可包括但不限于:主页按钮、音量按钮、启动按钮和锁定按钮。
传感器组件1214包括一个或多个传感器,用于为装置1200提供各个方面的状态评估。例如,传感器组件1214可以检测到装置1200的打开/关闭状态,组件的相对定位,例如组件为装置1200的显示器和小键盘,传感器组件1214还可以检测装置1200或装置1200一个组件的位置改变,用户与装置1200接触的存在或不存在,装置1200方位或加速/减速和装置1200的温度变化。传感器组件1214可以包括接近传感器,被配置用来在没有任何的物理接触时检测附近物体的存在。传感器组件1214还可以包括光传感器,如CMOS或CCD图像传感器,用于在成像应用中使用。在一些实施例中,该传感器组件1214还可以包括加速度传感器,陀螺仪传感器,磁传感器,压力传感器或温度传感器。
通信组件1216被配置为便于装置1200和其他设备之间有线或无线方式的通信。装置1200可以接入基于通信标准的无线网络,如WiFi,2G或3G,或它们的组合。在一个示例性实施例中,通信组件1216经由广播信道接收来自外部广播管理系统的广播信号或广播相关信息。在一个示例性实施例中,通信组件1216还包括近场通信(NFC)模块,以促进短程通信。例如,在NFC模块可基于射频识别(RFID)技术,红外数据协会(IrDA)技术,超宽带(UWB)技术,蓝牙(BT)技术和其他技术来实现。
在示例性实施例中,装置1200可以被一个或多个应用专用集成电路(ASIC)、数字信号处理器(DSP)、数字信号处理设备(DSPD)、可编程逻辑器件(PLD)、现场可编程门阵列(FPGA)、控制器、微控制器、微处理器或其他电子元件实现,用于执行上述方法。
在示例性实施例中,还提供了一种包括指令的非临时性计算机可读存储介质,例如包括指令的存储器1204,上述指令可由装置1200的处理器1220执行以完成上述方法。例如,非临时性计算机可读存储介质可以是ROM、随机存取存储器(RAM)、CD-ROM、磁带、软盘和光数据存储设备等。
本公开实施例还提供了一种非临时性计算机可读存储介质,当该存储介质中的指令由计算机设备的处理器执行时,使得计算机设备能够执行上述任一实施例提供的方法。
本公开实施例还提供了一种计算机程序产品,计算机程序产品包括:计算机程序,计算机程序存储在可读存储介质中,计算机设备的至少一个处理器可以从可读存储介质读取计算机程序,至少一个处理器执行计算机程序使得计算机设备执行上述任一实施例提供的方法。
需要理解的是,上述实施例中的术语“第一”、“第二”等仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。此外,在本申请的描述中,除非另有说明,“多个”的含义是指至少两个。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本申请的其它实施方案。本申请旨在涵盖本申请的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本申请的一般性原理并包括本申请未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本申请的真正范围和精神由下面的权利要求书指出。
应当理解的是,本申请并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本申请的范围仅由所附的权利要求书来限制。
Claims (14)
1.一种基于深度学习的模型压缩训练的方法,其特征在于,所述深度学习模型包括多个算子,所述方法包括:
在对深度学习模型进行训练的迭代过程中,当运行至目标算子时,获取所述目标算子的输入数据,所述目标算子为数据待压缩的算子;
从映射关系存储文件中获取与所述目标算子对应的压缩参数,其中,所述映射关系存储文件中包括与每一目标算子对应的压缩参数;
基于与所述目标算子对应的压缩参数,对所述目标算子的输入数据进行压缩,以得到压缩数据;
根据所述压缩数据对所述深度学习模型进行训练。
2.根据权利要求1所述的方法,其特征在于,从映射关系存储文件中获取与所述目标算子对应的压缩参数,包括:
以所述目标算子的算子标识符为键值在映射关系存储文件中进行映射,获得与所述目标算子的算子标识符对应的压缩参数,作为与所述目标算子对应的压缩参数。
3.根据权利要求1所述的方法,其特征在于,基于与所述目标算子对应的压缩参数,对所述目标算子的输入数据进行压缩,以得到压缩数据,包括:
若基于预设策略确定与所述目标算子对应的压缩参数无需更新,则根据与所述目标算子对应的压缩参数,对所述目标算子的输入数据进行压缩,以得到压缩数据;
若基于预设策略确定与所述目标算子对应的压缩参数需要更新,则根据所述目标算子的输入数据计算新的压缩参数,根据所述新的压缩参数,对所述目标算子的输入数据进行压缩,以得到压缩数据。
4.根据权利要求3所述的方法,其特征在于,在根据所述目标算子的输入数据计算新的压缩参数之后,还包括:
将所述映射关系存储文件中与所述目标算子对应的压缩参数,更新为所述新的压缩参数。
5.根据权利要求3所述的方法,其特征在于,所述预设策略为所述目标算子的输入数据经过与所述目标算子对应的压缩参数的压缩之后得到的数据范围,是否在预设范围之内;
基于预设策略确定与所述目标算子对应的压缩参数无需更新,包括:若所述数据范围在所述预设范围之内,则确定与所述目标算子对应的压缩参数无需更新;
基于预设策略确定与所述目标算子对应的压缩参数需要更新,包括:若所述数据范围不在所述预设范围之内,则确定与所述目标算子对应的压缩参数需要更新。
6.根据权利要求3所述的方法,其特征在于,在若基于预设策略确定与所述目标算子对应的压缩参数无需更新之前,还包括:
在确定达到预设的更新间隔次数时,基于预设策略确定与所述目标算子对应的压缩参数是否需要更新。
7.根据权利要求6所述的方法,其特征在于,还包括:
当基于预设策略确定与所述目标算子对应的压缩参数连续预设次数无需更新时,调整所述预设的更新间隔次数,调整后的更新间隔次数大于所述预设的更新间隔次数;
在确定达到调整后的更新间隔次数时,基于预设策略确定与所述目标算子对应的压缩参数是否需要更新。
8.根据权利要求1-7中任一项所述的方法,其特征在于,还包括:
以算子标识符为键值、以压缩参数为映射值,建立算子标识符与压缩参数的映射关系;
通过序列化对所述映射关系进行存储,获得映射关系存储文件。
9.根据权利要求8所述的方法,其特征在于,从映射关系存储文件中获取与所述目标算子对应的压缩参数,包括:
通过反序列化对所述映射关系存储文件进行重建,获得算子标识符与压缩参数的映射关系;
基于所述目标算子的算子标识符在所述映射关系中进行匹配,将匹配到的压缩参数确定为与所述目标算子对应的压缩参数。
10.一种基于深度学习的模型压缩训练的装置,其特征在于,所述深度学习模型包括多个算子,所述装置包括:
获取单元,用于在对深度学习模型进行训练的迭代过程中,当运行至目标算子时,获取所述目标算子的输入数据,所述目标算子为数据待压缩的算子;
映射单元,用于从映射关系存储文件中获取与所述目标算子对应的压缩参数,其中,所述映射关系存储文件中包括与每一目标算子对应的压缩参数;
压缩单元,用于基于与所述目标算子对应的压缩参数,对所述目标算子的输入数据进行压缩,以得到压缩数据;
训练单元,用于根据所述压缩数据对所述深度学习模型进行训练。
11.一种芯片,其特征在于,所述芯片包括权利要求10所述的基于深度学习的模型压缩训练的装置。
12.一种计算机设备,其特征在于,包括:处理器以及与所述处理器通信连接的存储器;
所述存储器存储计算机执行指令;
所述处理器执行所述存储器存储的计算机执行指令,以实现如权利要求1-9中任一项所述的方法。
13.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有计算机执行指令,所述计算机执行指令被处理器执行时用于实现如权利要求1-9中任一项所述的方法。
14.一种计算机程序产品,其特征在于,包括计算机程序,该计算机程序被处理器执行时实现权利要求1-9中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111676487.1A CN116432737A (zh) | 2021-12-31 | 2021-12-31 | 基于深度学习的模型压缩训练的方法、装置和设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111676487.1A CN116432737A (zh) | 2021-12-31 | 2021-12-31 | 基于深度学习的模型压缩训练的方法、装置和设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116432737A true CN116432737A (zh) | 2023-07-14 |
Family
ID=87078382
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111676487.1A Pending CN116432737A (zh) | 2021-12-31 | 2021-12-31 | 基于深度学习的模型压缩训练的方法、装置和设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116432737A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116756589A (zh) * | 2023-08-16 | 2023-09-15 | 北京壁仞科技开发有限公司 | 匹配算子的方法、计算设备和计算机可读存储介质 |
-
2021
- 2021-12-31 CN CN202111676487.1A patent/CN116432737A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116756589A (zh) * | 2023-08-16 | 2023-09-15 | 北京壁仞科技开发有限公司 | 匹配算子的方法、计算设备和计算机可读存储介质 |
CN116756589B (zh) * | 2023-08-16 | 2023-11-17 | 北京壁仞科技开发有限公司 | 匹配算子的方法、计算设备和计算机可读存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110147532B (zh) | 编码方法、装置、设备及存储介质 | |
CN108073986B (zh) | 一种神经网络模型训练方法、装置及电子设备 | |
CN111443917B (zh) | 神经网络运行优化方法、装置及相关产品 | |
CN113742082A (zh) | 应用资源分配方法及装置、计算机可读介质和终端 | |
CN110929837A (zh) | 神经网络模型压缩方法及装置 | |
US20220035745A1 (en) | Data processing method and chip, device, and storage medium | |
CN111753498A (zh) | 文本处理方法、装置、设备及存储介质 | |
CN114968594B (zh) | 任务处理方法、装置、电子设备和存储介质 | |
CN116432737A (zh) | 基于深度学习的模型压缩训练的方法、装置和设备 | |
CN113537470A (zh) | 模型量化方法及装置、存储介质及电子设备 | |
CN113297128B (zh) | 数据处理方法、装置、计算机设备和存储介质 | |
CN115098262B (zh) | 一种多神经网络任务处理方法及装置 | |
CN114510911B (zh) | 文本处理方法、装置、计算机设备及存储介质 | |
CN114254563A (zh) | 数据处理方法及装置、电子设备、存储介质 | |
CN117011414A (zh) | 基于文本的图像编辑方法、装置、设备、介质及程序产品 | |
CN117793361A (zh) | 数据编码和数据解码的方法、装置、设备 | |
US20220156566A1 (en) | Streaming accelerators and streaming systems including the same | |
CN116579380A (zh) | 一种数据处理方法以及相关设备 | |
CN111259675B (zh) | 基于神经网络计算的方法和装置 | |
CN114090262A (zh) | 对象处理方法及装置、电子设备、存储介质 | |
CN114266306A (zh) | 基于机器学习模型实现数据分类的方法及装置、电子设备 | |
CN114070892A (zh) | 数据传输方法和装置 | |
CN111866047B (zh) | 数据解码方法、装置、计算机设备及存储介质 | |
CN109871848B (zh) | 一种移动终端的文字识别方法及装置 | |
US20240251216A1 (en) | Audio signal processing method and apparatus |
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 |