CN117291246A - 神经网络模型的压缩方法、装置和存储介质 - Google Patents
神经网络模型的压缩方法、装置和存储介质 Download PDFInfo
- Publication number
- CN117291246A CN117291246A CN202210693059.8A CN202210693059A CN117291246A CN 117291246 A CN117291246 A CN 117291246A CN 202210693059 A CN202210693059 A CN 202210693059A CN 117291246 A CN117291246 A CN 117291246A
- Authority
- CN
- China
- Prior art keywords
- vector set
- trained
- neural network
- network model
- vector
- 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
- 238000003062 neural network model Methods 0.000 title claims abstract description 183
- 238000000034 method Methods 0.000 title claims abstract description 84
- 230000006835 compression Effects 0.000 title claims abstract description 78
- 238000007906 compression Methods 0.000 title claims abstract description 78
- 238000003860 storage Methods 0.000 title claims abstract description 55
- 239000013598 vector Substances 0.000 claims abstract description 421
- 230000009466 transformation Effects 0.000 claims abstract description 176
- 238000013507 mapping Methods 0.000 claims abstract description 12
- 230000004044 response Effects 0.000 claims abstract description 11
- 238000012549 training Methods 0.000 claims description 48
- 238000004590 computer program Methods 0.000 claims description 9
- 239000011159 matrix material Substances 0.000 description 25
- 238000010586 diagram Methods 0.000 description 24
- 230000006870 function Effects 0.000 description 24
- 238000013139 quantization Methods 0.000 description 24
- 230000006837 decompression Effects 0.000 description 19
- 238000013528 artificial neural network Methods 0.000 description 17
- 238000012545 processing Methods 0.000 description 16
- 230000009467 reduction Effects 0.000 description 14
- 238000004891 communication Methods 0.000 description 10
- 230000008569 process Effects 0.000 description 10
- 238000001514 detection method Methods 0.000 description 9
- 101100153586 Caenorhabditis elegans top-1 gene Proteins 0.000 description 5
- 101100370075 Mus musculus Top1 gene Proteins 0.000 description 5
- 238000004364 calculation method Methods 0.000 description 4
- 230000000694 effects Effects 0.000 description 4
- 238000004458 analytical method Methods 0.000 description 3
- 238000013473 artificial intelligence Methods 0.000 description 3
- 230000005540 biological transmission Effects 0.000 description 3
- 238000013527 convolutional neural network Methods 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 230000003068 static effect Effects 0.000 description 3
- 238000003491 array Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 238000005457 optimization Methods 0.000 description 2
- 230000000306 recurrent effect Effects 0.000 description 2
- RYGMFSIKBFXOCR-UHFFFAOYSA-N Copper Chemical compound [Cu] RYGMFSIKBFXOCR-UHFFFAOYSA-N 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 238000012512 characterization method Methods 0.000 description 1
- 230000000052 comparative effect Effects 0.000 description 1
- 239000000470 constituent Substances 0.000 description 1
- 229910052802 copper Inorganic materials 0.000 description 1
- 239000010949 copper Substances 0.000 description 1
- 238000012217 deletion Methods 0.000 description 1
- 230000037430 deletion Effects 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000018109 developmental process Effects 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 238000003709 image segmentation Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 238000003064 k means clustering Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 230000005055 memory storage Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000000513 principal component analysis Methods 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 238000013519 translation Methods 0.000 description 1
- 230000001960 triggered 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/08—Learning methods
- G06N3/082—Learning methods modifying the architecture, e.g. adding, deleting or silencing nodes or connections
-
- 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
技术领域
本申请涉及人工智能技术领域,尤其涉及一种神经网络模型的压缩方法、装置和存储介质。
背景技术
随着人工智能(artificial intelligence,AI)的不断发展,诸如深度神经网络(deep neural network,DNN)等由于其强大的特征表达能力,已经在图像、视频、语音等多个领域展现出超强的计算能力。由于神经网络模型本身的参数量很大,对存储器的存储能力要求很高,这将会给神经网络模型的部署带来很大的挑战。
向量量化(vector quantization,VQ)是一种非常有效的压缩神经网络模型的方法,可以实现对神经网络模型的原始参数的压缩,以减少模型的存储量。然而,当前的方法中在进行向量量化后参数的精度损失较大,且神经网络模型的准确度也有待提高,因此,如何在保证神经网络模型准确度的同时,降低存储器对神经网络模型参数的存储压力,是亟待解决的问题。
发明内容
有鉴于此,提出了一种神经网络模型的压缩方法、装置和存储介质。
第一方面,本申请的实施例提供了一种神经网络模型的压缩方法。该方法包括:
响应于使用神经网络模型执行推理任务的指令,获取存储器存储的训练好的第一向量集合和训练好的变换信息,第一向量集合包括压缩后的神经网络模型的参数,变换信息包括向量集合之间的映射关系信息;
根据训练好的第一向量集合和训练好的变换信息,确定解压缩后的第二向量集合,第二向量集合包括重排列的神经网络模型的参数,解压缩后的第二向量集合中各向量的维数大于第一向量集合中对应向量的维数;
根据解压缩后的第二向量集合,确定解压缩后的神经网络模型;
从存储器中删除第二向量集合。
根据本申请实施例,通过响应于使用神经网络模型执行推理任务的指令,从存储器获取压缩后的神经网络模型参数和相应的变换信息,进行解压缩,并在执行完推理任务后,仅在存储器中保留压缩后的模型参数和变换信息,可以减少神经网络模型占用的存储空间。同时,压缩后的模型参数为在低秩向量基础上进行量化后得到的,可以使得在相同的压缩比例下,得到的量化精度更高,从而在保证神经网络模型准确度的同时,降低了存储器对神经网络模型参数的存储压力。
根据第一方面,在所述神经网络模型的压缩方法的第一种可能的实现方式中,该训练好的变换信息包括训练好的第一变换信息和训练好的第二变换信息,根据训练好的第一向量集合和训练好的变换信息,确定解压缩后的第二向量集合,包括:
根据训练好的第一向量集合和训练好的第一变换信息,确定第三向量集合,第三向量集合中各向量的维数大于训练好的第一向量集合中对应向量的维数;
根据第三向量集合和训练好的第二变换信息,确定解压缩后的第二向量集合,解压缩后的第二向量集合包括的参数量大于第三向量集合。
根据本申请实施例,通过在解压缩时,先根据训练好的第一变换信息先确定第三向量集合,再根据训练好的第二变换信息确定解压缩后的第二向量集合,可以使得在得到第三向量集合后,仅需进行解码操作即可完成解压缩,更加快捷。
根据第一方面,在所述神经网络模型的压缩方法的第二种可能的实现方式中,该训练好的变换信息包括训练好的第一变换信息和训练好的第二变换信息,根据训练好的第一向量集合和训练好的变换信息,确定解压缩后的第二向量集合,包括:
根据训练好的第一向量集合和训练好的第二变换信息,确定解压缩后的第四向量集合,解压缩后的第四向量集合包括的参数量大于训练好的第一向量集合;
根据解压缩后的第四向量集合和训练好的第一变换信息,确定解压缩后的第二向量集合,解压缩后的第二向量集合中各向量的维数大于解压缩后的第四向量集合中对应向量的维数。
根据本申请实施例,通过先根据训练好的第二变换信息确定解压缩后的第四向量集合,再根据训练好的第一变换信息确定解压缩后的第二向量集合,可以实现对存储器中存储的训练好的第一向量集合的解压缩,从而可以在执行推理任务时可以随用随解压,节省了存储器的存储空间。
根据第一方面的第一种或第二种可能的实现方式,在所述神经网络模型的压缩方法的第三种可能的实现方式中,该方法还包括:
获取训练数据、原始神经网络模型参数信息和目标推理任务信息;
根据原始神经网络模型参数信息和目标推理任务信息,确定第一变换信息和第四向量集合;
以根据第一变换信息和第四向量集合确定的向量集合作为神经网络模型的参数,利用训练数据对神经网络模型进行训练,确定训练好的第一变换信息和训练好的第四向量集合;
根据训练好的第四向量集合,确定第一向量集合和第二变换信息;
以根据第一向量集合和第二变换信息确定的向量集合作为新的训练好的第四向量集合,根据训练好的第一变换信息和新的训练好的第四向量集合确定解压缩后的第二向量集合;
以解压缩后的第二向量集合作为神经网络模型的参数,确定第二变换信息为训练好的第二变换信息,利用训练数据对神经网络模型进行训练,得到训练好的第一向量集合。
根据本申请实施例,通过利用训练数据、原始神经网络模型参数信息和目标推理任务信息,对神经网络模型的参数在降维后进行训练,确定训练好的第一变换信息和训练好的第四向量集合,减少了后续量化过程的计算量,而后对第四向量集合进行量化,并进行微调训练,使得最终得到训练好的第一向量集合在同样压缩比例的情况下,具有更高的量化精度,从而在保证神经网络模型准确度的同时,也降低了存储器对神经网络模型参数的存储压力。
根据第一方面的第三种可能的实现方式,在所述神经网络模型的压缩方法的第四种可能的实现方式中,根据训练好的第四向量集合,确定第一向量集合和第二变换信息,包括:
对训练好的第四向量集合进行聚类,确定第一向量集合和第二变换信息,第一向量集合包括各聚类中心的对应的向量。
根据本申请实施例,通过对降维后的向量进行聚类,可以实现对神经网络模型参数的进一步压缩,从而可以进一步减少神经网络模型在存储器中占用的存储空间。
根据第一方面或第一方面的第一种或第二种或第三种或第四种可能的实现方式,在所述神经网络模型的压缩方法的第五种可能的实现方式中,该第二向量集合的维数为m,m为正整数,该第一向量集合的维数为d,d为1-m之间的任意正整数。
根据本申请实施例,通过使得d为小于m的值,可以实现对向量的降维处理,可以使得后续聚类过程更易于实现,且在同样压缩比例的情况下,量化的精度更高,通过预定合适的d的值还可以平衡降维带来的近似误差以及后续聚类时的误差。
根据第一方面或第一方面的第一种或第二种或第三种或第四种或第五种可能的实现方式,在所述神经网络模型的压缩方法的第六种可能的实现方式中,该推理任务针对于以下中的任一项:图像数据、音频数据、文本数据。
根据本申请实施例,通过推理任务可适用于多种类型的数据,可实现本申请实施例的压缩方法的多场景的应用。
第二方面,本申请的实施例提供了一种神经网络模型的压缩装置。该装置包括:
第一获取模块,用于响应于使用神经网络模型执行推理任务的指令,获取存储器存储的训练好的第一向量集合和训练好的变换信息,第一向量集合包括压缩后的神经网络模型的参数,变换信息包括向量集合之间的映射关系信息;
第一确定模块,用于根据训练好的第一向量集合和训练好的变换信息,确定解压缩后的第二向量集合,第二向量集合包括重排列的神经网络模型的参数,解压缩后的第二向量集合中各向量的维数大于第一向量集合中对应向量的维数;
第二确定模块,用于根据解压缩后的第二向量集合,确定解压缩后的神经网络模型;
删除模块,用于从存储器中删除第二向量集合。
根据第二方面,在所述神经网络模型的压缩装置的第一种可能的实现方式中,该训练好的变换信息包括训练好的第一变换信息和训练好的第二变换信息,该第一确定模块,用于:
根据训练好的第一向量集合和训练好的第一变换信息,确定第三向量集合,第三向量集合中各向量的维数大于训练好的第一向量集合中对应向量的维数;
根据第三向量集合和训练好的第二变换信息,确定解压缩后的第二向量集合,解压缩后的第二向量集合包括的参数量大于第三向量集合。
根据第二方面,在所述神经网络模型的压缩装置的第二种可能的实现方式中,该训练好的变换信息包括训练好的第一变换信息和训练好的第二变换信息,该第一确定模块,用于:
根据训练好的第一向量集合和训练好的第二变换信息,确定解压缩后的第四向量集合,解压缩后的第四向量集合包括的参数量大于训练好的第一向量集合;
根据解压缩后的第四向量集合和训练好的第一变换信息,确定解压缩后的第二向量集合,解压缩后的第二向量集合中各向量的维数大于解压缩后的第四向量集合中对应向量的维数。
根据第二方面的第一种或第二种可能的实现方式,在所述神经网络模型的压缩装置的第三种可能的实现方式中,该装置还包括:
第二获取模块,用于获取训练数据、原始神经网络模型参数信息和目标推理任务信息;
第三确定模块,用于根据原始神经网络模型参数信息和目标推理任务信息,确定第一变换信息和第四向量集合;
第四确定模块,用于以根据第一变换信息和第四向量集合确定的向量集合作为神经网络模型的参数,利用训练数据对神经网络模型进行训练,确定训练好的第一变换信息和训练好的第四向量集合;
第五确定模块,用于根据训练好的第四向量集合,确定第一向量集合和第二变换信息;
第六确定模块,用于以根据第一向量集合和第二变换信息确定的向量集合作为新的训练好的第四向量集合,根据训练好的第一变换信息和新的训练好的第四向量集合确定解压缩后的第二向量集合;
第七确定模块,用于以解压缩后的第二向量集合作为神经网络模型的参数,确定第二变换信息为训练好的第二变换信息,利用训练数据对神经网络模型进行训练,得到训练好的第一向量集合。
根据第二方面的第三种可能的实现方式,在所述神经网络模型的压缩装置的第四种可能的实现方式中,该第五确定模块,用于:
对训练好的第四向量集合进行聚类,确定第一向量集合和第二变换信息,第一向量集合包括各聚类中心的对应的向量。
根据第二方面或第二方面的第一种或第二种或第三种或第四种可能的实现方式,在所述神经网络模型的压缩装置的第五种可能的实现方式中,该第二向量集合的维数为m,m为正整数,该第一向量集合的维数为d,d为1-m之间的任意正整数。
根据第二方面或第二方面的第一种或第二种或第三种或第四种或第五种可能的实现方式,在所述神经网络模型的压缩装置的第六种可能的实现方式中,该推理任务针对于以下中的任一项:图像数据、音频数据、文本数据。
第三方面,本申请的实施例提供了一种神经网络模型的压缩装置,该装置包括:处理器;用于存储处理器可执行指令的存储器;其中,处理器被配置为执行指令时实现上述第一方面或者第一方面的多种可能的实现方式中的一种或几种的神经网络模型的压缩方法。
第四方面,本申请的实施例提供了一种非易失性计算机可读存储介质,其上存储有计算机程序指令,计算机程序指令被处理器执行时实现上述第一方面或者第一方面的多种可能的实现方式中的一种或几种的神经网络模型的压缩方法。
第五方面,本申请的实施例提供了一种终端设备,该终端设备可以执行上述第一方面或者第一方面的多种可能的实现方式中的一种或几种的神经网络模型的压缩方法。
第六方面,本申请的实施例提供了一种计算机程序产品,包括计算机可读代码,或者承载有计算机可读代码的非易失性计算机可读存储介质,当所述计算机可读代码在电子设备中运行时,所述电子设备中的处理器执行上述第一方面或者第一方面的多种可能的实现方式中的一种或几种的神经网络模型的压缩方法。
本申请的这些和其他方面在以下(多个)实施例的描述中会更加简明易懂。
附图说明
包含在说明书中并且构成说明书的一部分的附图与说明书一起示出了本申请的示例性实施例、特征和方面,并且用于解释本申请的原理。
图1(a)示出根据本申请一实施例的应用场景的示意图。
图1(b)示出根据本申请一实施例的应用场景的示意图。
图2示出根据本申请一实施例的神经网络模型的压缩方法的流程图。
图3示出根据本申请一实施例的神经网络模型的压缩方法的流程图。
图4示出根据本申请一实施例的训练阶段的示意图。
图5示出根据本申请一实施例的一种推理阶段的示意图。
图6示出根据本申请一实施例的一种推理阶段的示意图。
图7示出根据本申请一实施例的平衡线性变换近似误差与聚类误差的效果示意图。
图8示出根据本申请一实施例的神经网络模型的压缩装置的结构图。
图9示出根据本申请一实施例的电子设备100的结构图。
具体实施方式
以下将参考附图详细说明本申请的各种示例性实施例、特征和方面。附图中相同的附图标记表示功能相同或相似的元件。尽管在附图中示出了实施例的各种方面,但是除非特别指出,不必按比例绘制附图。
在这里专用的词“示例性”意为“用作例子、实施例或说明性”。这里作为“示例性”所说明的任何实施例不必解释为优于或好于其它实施例。
另外,为了更好的说明本申请,在下文的具体实施方式中给出了众多的具体细节。本领域技术人员应当理解,没有某些具体细节,本申请同样可以实施。在一些实例中,对于本领域技术人员熟知的方法、手段、元件和电路未作详细描述,以便于凸显本申请的主旨。
诸如DNN等神经网络由于其强大的特征表达能力,已经在图像、视频、语音等多个领域展现出超强的计算能力。由于神经网络模型本身的参数量很大,对存储器的存储能力要求很高,这将会给神经网络模型的部署带来很大的挑战。向量量化VQ是一种非常有效的压缩神经网络模型的方法,可以实现对神经网络模型的原始参数的压缩,以减少模型的存储量。然而,当前的方法在进行向量量化后参数的精度损失较大,且神经网络模型的准确度也有待提高,无法保证神经网络的推理效率,因此,如何在保证神经网络模型准确度的同时,降低存储器对神经网络模型参数的存储压力,是亟待解决的问题。
为了解决上述技术问题,本申请提供了一种神经网络模型的压缩方法,本申请实施例的神经网络模型的压缩方法能够使得存储器中存储的是训练好的向量集合和训练好的变换信息,该向量集合中包括压缩后的神经网络模型的参数,且该向量集合中的向量为进行了低秩变换后的向量,从而实现在进一步减少对存储器存储空间的占用时,还保证了压缩的模型的精度,在接收到使用神经网络模型执行推理任务的指令时,可以对该向量集合进行解压缩,执行相应的推理任务,并可在执行完任务后只保留压缩后的模型参数,使得仅需占用硬件极小的存储空间即可运行,对于模型的部署更加友好。
图1(a)和图1(b)示出根据本申请一实施例的应用场景的示意图。如图1(a)所示,本申请实施例的压缩后的神经网络模型可部署在终端设备或者服务器上,可通过存储神经网络模型参数的方式部署神经网络模型,例如,可以将神经网络模型的参数存储在终端设备或者服务器的存储器中。在执行相关推理任务(如图像任务中的目标检测等)时,可以根据本申请实施例的方法,对神经网络模型的参数进行解压缩,得到解压缩后的神经网络模型参数,以确定神经网络模型。从而能够根据获取的用户数据,利用解压缩后的神经网络模型的参数进行推理,以得到推理结果。例如,可部署压缩后的DNN在终端设备上,从而用户可以通过对终端设备的操作,触发使用DNN执行图像检测任务的指令,终端设备可以响应于该指令,利用本申请实施例的方法对压缩后的DNN参数进行解压缩,以根据解压缩后的参数确定的DNN执行图像检测任务,得到检测结果。又例如,可部署压缩后的DNN在云端服务器上,该云端服务器可与终端设备进行通信,从而用户可以通过对终端设备的操作,触发使用DNN执行图像检测任务的指令,用户数据可以是云端服务器接收的终端设备发送的图像数据,并响应于该指令,利用本申请实施例的方法对压缩后的DNN参数进行解压缩,以根据解压缩后的参数确定的DNN执行图像检测任务,得到检测结果,该检测结果可用于返回给终端设备。
在一种可能的实现方式中,如图1(b)所示,本申请实施例的神经网络模型的压缩方法还可用于云端服务器,通过获取终端设备或其他云端服务器发送的训练数据、原始的神经网络模型参数信息、目标推理任务信息等,对原始的神经网络模型参数进行压缩,得到压缩后的神经网络模型参数并返回压缩后的参数,以提供模型压缩服务。例如,云端服务器可与终端设备进行通信,接收终端设备发送的DNN参数信息、文本分类任务信息以及对应的文本训练数据,云端服务器可以根据终端设备发送的数据,利用本申请实施例的方法对DNN的参数进行压缩,得到压缩后的DNN参数,并返回给终端设备,以为终端设备提供模型压缩服务。
本申请涉及的终端设备可以是指具有无线连接功能的设备,无线连接的功能是指可以通过Wi-Fi、蓝牙等无线连接方式与其他终端设备或服务器进行连接,本申请的终端设备也可以具有有线连接进行通信的功能。本申请的终端设备可以是触屏的、也可以是非触屏的、也可以是没有屏幕的,触屏的可以通过手指、触控笔等在显示屏幕上点击、滑动等方式对终端设备进行控制,非触屏的设备可以连接鼠标、键盘、触控面板等输入设备,通过输入设备对终端设备进行控制,没有屏幕的设备比如说可以是没有屏幕的蓝牙音箱等。举例来说,本申请的终端设备可以是智能手机、上网本、平板电脑、笔记本电脑、可穿戴电子设备(如智能手环、智能手表等)、TV、虚拟现实设备、音响、电子墨水,等等。
本申请涉及的服务器可以位于云端,可以是实体设备,也可以是虚拟设备,如虚拟机、容器等,具有无线通信功能,其中,无线通信功能可设置于该服务器的芯片(系统)或其他部件或组件。可以是指具有无线连接功能的设备,无线连接的功能是指可以通过Wi-Fi、蓝牙等无线连接方式与其他服务器或终端设备进行连接,本申请的服务器也可以具有有线连接进行通信的功能。
需要说明的是,本申请实施例的神经网络模型的压缩方法也可应用于除上述以外的其他应用场景中,本申请对此不作限制。
以下通过图2-图6,对本申请实施例的神经网络模型的压缩方法进行详细的介绍。该压缩方法可分为训练阶段和推理阶段。
图2示出根据本申请一实施例的神经网络模型的压缩方法的流程图。该方法可用于上述终端设备或服务器,如图2所示,该方法包括:
步骤S201,响应于使用神经网络模型执行推理任务的指令,获取存储器存储的训练好的第一向量集合和训练好的变换信息。
该指令例如可由用户触发,可选地,该推理任务可以针对于以下中的任一项:图像数据、音频数据、文本数据,从而可以实现多场景的应用。例如,针对图像数据,使用神经网络模型可执行图像分类、目标检测、图像分割、图像去噪、图像超分辨等任务;针对音频数据,使用神经网络模型可执行音频分类、语音识别等任务;针对文本数据,使用神经网络模型可执行文本分类、机器翻译、问答系统等任务。该神经网络模型可以是深度神经网络DNN,也可以其他类型的神经网络,如卷积神经网络(convolutional neural network,CNN)、循环神经网络(recurrent neural network,RNN)等,本申请对此不作限制。
如上述,该存储器可以是终端设备的存储器,也可以是服务器的存储器。在训练好的第一向量集合和训练好的变换信息存储在服务器中的情况下,该指令可以是由与服务器连接的终端设备生成,并通过终端设备与服务器之间的有线或无线通信功能,发送给服务器,从而服务器可响应于该指令,获取存储器存储的训练好的第一向量集合和训练好的变换信息。
其中,第一向量集合可包括压缩后的神经网络模型的参数,例如,该神经网络模型为DNN,该神经网络模型的参数可包括DNN的卷积层的参数。
变换信息可包括向量集合之间的映射关系信息,用于将压缩后的第一向量集合进行解压缩,以确定相应的神经网络模型执行推理任务。可选地,训练好的变换信息包括训练好的第一变换信息和训练好的第二变换信息。第一变换信息可以包括线性变换信息,可以实现向量的低秩与高秩之间的变换(即维数的变换),第二变换信息可以包括聚类的类索引(codes)信息,表示各向量与簇之间的映射关系。通过两次变换,可以在保证神经网络模型准确度的同时,进一步减小压缩后的神经网络模型所占用的存储器的存储空间,降低存储器对神经网络模型参数的存储压力,且通过对参数对应的向量进行降秩的处理,可以使得在进一步减小存储空间的同时还保证了量化的精度,效果更佳。
训练好的第一向量集合和训练好的变换信息可通过本申请实施例的神经网络模型的压缩方法的训练阶段得到,该训练阶段的过程可参见下述图3-图4中的详细介绍。
图3示出根据本申请一实施例的神经网络模型的压缩方法的流程图。该方法可用于上述终端设备或服务器,如图3所示,该方法包括:
步骤S301,获取训练数据、原始神经网络模型参数信息和目标推理任务信息。
其中,目标推理任务信息可以是目标推理任务内容,例如为图像分类任务。训练数据可以与目标推理任务相对应,例如,目标推理任务为图像分类任务的情况下,训练数据可以是图像数据。原始神经网络模型参数信息可以包括根据神经网络模型确定的参数,例如,DNN的参数信息可包括卷积层的参数,其中卷积层的参数的向量尺寸可以不同,例如可以包括1*1、3*3等尺寸的向量。原始神经网络模型参数信息可以是神经网络模型原始的、未经压缩和训练的参数。
参见图4,示出根据本申请一实施例的训练阶段的示意图。如图4所示,以下以对参数中向量尺寸为3*3(如图中卷积参数所示,可以表示DNN卷积层中向量尺寸为3*3的参数)的参数(原始神经网络模型参数信息的示例)进行量化为例,来介绍本申请实施例的方法的训练阶段,对于其他尺寸的参数进行量化的方式同理可知。可选地,还可以对向量集合进行重排列(reshape),以确定参数的压缩比例,如图中所示重排列后的矩阵(reshapedmatrix)的尺寸为其中,N和m为正整数,N可以表示参数的向量尺寸为3*3的参数量,如图中尺寸为3*3的向量有6个,则参数量为54(3*3*6),m可以表示向量的维数,可以预先设定,用于确定对尺寸为3*3的向量集合进行压缩的比例,如图中m为9。对于不同尺寸的向量集合,可以确定相应的重排列后的矩阵,即确定不同的维数的大小。对于不同的推理任务,m的大小也可以不同。
由于在m较大时,即向量的维数较高时,对于后续的对向量进行聚类等操作的难度较大,导致量化的精度下降,为提高向量量化的精度,可以对重排列后的矩阵进行降维,以获得重排列后的矩阵的低秩表征(low-rank representation,LRR),从而在同等压缩比例下可以获得更高的量化精度,参见下述。
步骤S302,根据原始神经网络模型参数信息和目标推理任务信息,确定第一变换信息和第四向量集合。
其中,可以参见上述过程,根据原始神经网络模型参数信息和目标推理任务信息(用于确定m的大小)确定各重排列后的矩阵,再对各重排列后的矩阵进行降维,以确定对应于各矩阵的低秩表征,以及各矩阵与其低秩表征之间的映射关系,例如,可通过主成分分析(principal components analysis,PCA)、线性判别分析(linear discriminantanalysis,LDA)等方式对各重排列后的矩阵进行降维。
第四向量集合可包括上述各重排列后的矩阵的低秩表征,低秩表征的维数的大小可以为d,d可以预先设定,为1-m之间的任意正整数。对于不同的重排列后的矩阵,第四向量集合中对应的矩阵的低秩表征可以不同。第一变换信息可包括各重排列后的矩阵与其低秩表征之间的映射关系。
可参见图4中的示例,对于尺寸为3*3的向量集合对应的重排列后的矩阵,第四向量集合中包括的对应的低秩表征可以如图中所示的低秩表征(LRR),尺寸为图中d的大小为2。
由于通过确定合适的d的大小,可以平衡降维带来的近似误差以及后续聚类时的误差,因此不同的推理任务,d的大小可以不同,从而使得压缩后的模型能够由更高的量化精度。例如,针对图像分类任务,d的值可以在3-5之间,例如对于参数尺寸为3*3的向量集合,d的值可以是3,对于尺寸为1*1的向量集合,d的值可以是4。
步骤S303,以根据第一变换信息和第四向量集合确定的向量集合作为神经网络模型的参数,利用训练数据对神经网络模型进行训练,确定训练好的第一变换信息和训练好的第四向量集合。
例如,可以以第一变换信息包括的线性变换(linear transformation,LT)与第四向量集合中相应的矩阵进行矩阵乘法,将低秩表征中的维数的大小由d还原为m,从而可以以该向量集合中包括的各向量作为神经网络模型的参数,利用训练数据对神经网络模型进行训练。
其中,训练的方式可以是通过利用训练数据,通过计算目标推理任务对应的损失函数值来对神经网络模型的参数进行损失优化,直到达到预定条件,例如达到预定训练步数(epoch)或损失函数值收敛到预定数值,以确定训练好的神经网络模型参数。接着,可以根据步骤S302中的方式,确定训练好的第一变换信息和训练好的第四向量集合。
通过在步骤S302-步骤S303对向量进行降维处理,可以使得后续聚类过程更易于实现,且在同样压缩比例的情况下,量化的精度更高。
步骤S304,根据训练好的第四向量集合,确定第一向量集合和第二变换信息。
其中,可以对第四向量集合中的各低秩表征进行压缩,确定第一向量集合,压缩的方式可以是分别对各低秩表征进行聚类,参见下述。
可选地,该步骤S304,包括:
对训练好的第四向量集合进行聚类,确定第一向量集合和第二变换信息,第一向量集合包括各聚类中心的对应的向量。
其中,聚类的方式可以是k均值(k-means)聚类或其他聚类方式。例如,对于各低秩表征,可以以矩阵的每一行作为一个向量,将个向量分为k(k的值可以预先设定)簇,从而可以得到各低秩表征对应的聚类中心集合(codebook)和类索引(codes),第一向量集合可以是各codebook的集合,第二变换信息可以包括各codes。其中,codebook中的各行可分别与各簇的聚类中心相对应,codes中的各行可分别表示原向量与簇之间的映射关系。
参见图4中的示例,聚类中心集合的尺寸为k*d,codebook中的第x(x为1-k中的任意正整数)行可以表示第x簇的聚类中心;类索引的尺寸为*1,codes中的第y(y为1-/>中的任意正整数)行可以表示LRR中的第y行向量与簇之间的映射关系,即LRR中的第y行向量属于k个簇中的哪一个簇。
根据本申请实施例,通过对降维后的向量进行聚类,可以实现对神经网络模型参数的进一步压缩,从而可以进一步减少神经网络模型在存储器中占用的存储空间。
步骤S305,以根据第一向量集合和第二变换信息确定的向量集合作为新的训练好的第四向量集合,根据训练好的第一变换信息和新的训练好的第四向量集合确定解压缩后的第二向量集合。
其中,根据第一向量集合和第二变换信息确定的向量集合可以是对第一向量集合进行解压缩后的向量集合,可参见图4中的解压缩后的低秩表征(decoded LRR),尺寸与原LRR一致,为*d,其中,每一行可以是第二变换信息中该行指示的簇对应的聚类中心,该聚类中心可以根据第一向量集合确定。例如,对于decoded LRR中的某一行,可以根据codes确定原LRR中该行对应的簇(例如为z,z为1-k中的任意正整数),从而可以以codebook中第z簇对应的聚类中心,即codebook中第z行对应的向量作为decoded LRR中该行对应的向量。
在确定了解压缩后的LRR后,例如,可以以该解压缩后的LRR的集合作为新的训练好的第四向量集合,并与训练好的第一变换信息中的LT进行矩阵乘法,将各decoded LRR的维数的大小由d还原为m(参见图中解压缩后的矩阵,decoded matrix),从而可以确定解压缩后的第二向量集合,可以以该解压缩后的第二向量集合中包括的各向量作为神经网络模型的参数,固定codes,进行微调(fine-tune)训练,参见下述。
步骤S306,以解压缩后的第二向量集合作为神经网络模型的参数,确定第二变换信息为训练好的第二变换信息,利用训练数据对神经网络模型进行训练,得到训练好的第一向量集合。
其中,训练的方式可以是通过利用训练数据,通过计算目标推理任务对应的损失函数值来对神经网络模型的参数进行损失优化,直到达到预定条件,例如达到预定训练步数或损失函数值收敛到预定数值,以确定训练好的神经网络模型参数。接着,可以根据步骤S302中的方式,利用第一变换信息进行线性变换,以确定新的训练好的第四向量集合,从而,可以根据步骤S304中的方式,确定对应的第一向量集合作为训练好的第一向量集合。
根据本申请实施例,通过利用训练数据、原始神经网络模型参数信息和目标推理任务信息,对神经网络模型的参数在降维后进行训练,确定训练好的第一变换信息和训练好的第四向量集合,减少了后续量化过程的计算量,而后对第四向量集合进行量化,并进行微调训练,使得最终得到训练好的第一向量集合在同样压缩比例的情况下,具有更高的量化精度,从而在保证神经网络模型准确度的同时,也降低了存储器对神经网络模型参数的存储压力。
在根据上述训练过程,得到了训练好的第一向量集合以及相应的训练好的变换信息的情况下,可以将训练好的第一向量集合和变换信息部署在终端设备或服务器的存储器中,从而在推理阶段执行相应的推理任务时,可以从存储器中获取相应的信息进行计算。
返回参见图2,在推理阶段包括:
步骤S202,根据训练好的第一向量集合和训练好的变换信息,确定解压缩后的第二向量集合。
其中,解压缩后的第二向量集合可参见上述decoded matrix,第二向量集合可包括重排列的神经网络模型的参数,解压缩后的第二向量集合中对应向量的维数(大小为m)大于第一向量集合中对应向量的维数(大小为d)。
其中,可通过对训练好的第一向量集合中维数的大小进行还原(进行线性变换LT)以及进行解码(decode),以确定解压缩后的第二向量集合。
两种实现步骤S202的方式可分别参见下述图5和图6,分别示出根据本申请一实施例的一种推理阶段的示意图。图5和图6中延续图4中的示例,以对图4中训练好的第一向量集合中原始神经网络模型参数的尺寸为3*3的向量集合对应的压缩后的向量进行解压缩为例,对于原始神经网络模型参数的尺寸为除3*3以外的其他尺寸的压缩后的向量,可参照此例。
可选地,在推理阶段,可以先对训练好的第一向量集合进行线性变换,以恢复维数,还可以将该恢复维数后的向量集合存储在存储器中,从而仅需进行解码操作即可完成解压缩,更加快捷。
参见图5,该步骤S202,包括:
根据训练好的第一向量集合和训练好的第一变换信息,确定第三向量集合。
例如,训练好的第一向量集合中的各向量可参见图5中的聚类中心集合(codebook),可以同图4中训练好的codebook,尺寸为k*d,可以根据训练好的第一变换信息,先对codebook进行线性变换LT,以恢复维数的大小,确定第三向量集合。其中,该第三向量集合中的向量可参见图中聚类中心’(codebook’),codebook’中的各行可以分别表示恢复了维数后的各簇的聚类中心,该codebook’的维数的大小为m,大于codebook的维数的大小d。
在一种可能的实现方式中,还可以在推理阶段提前确定第三向量集合,并将该第三向量集合存储在存储器中,从而后续进行推理计算时,可以对该第三向量集合进行解压缩,节省了计算量,提高了计算效率。
根据第三向量集合和训练好的第二变换信息,确定解压缩后的第二向量集合。
该解压缩后的第二向量集合包括的参数量大于第三向量集合。例如,训练好的第二变换信息可参见图中的类索引(codes),可以同图4中训练好的codes,尺寸为*1,解压缩后的第二向量集合中的各向量可参见图中的解压缩后的矩阵(decoded matrix)。在确定decoded matrix时,对于decoded matrix中的某一行,可以根据codes确定聚类前该行对应的簇(例如为z,z为1-k中的任意正整数),从而可以以codebook’中第z簇对应的聚类中心,即codebook’中第z行对应的向量作为decoded matrix中该行对应的向量。
根据本申请实施例,通过在解压缩时,先根据训练好的第一变换信息先确定第三向量集合,再根据训练好的第二变换信息确定解压缩后的第二向量集合,可以使得在得到第三向量集合后,仅需进行解码操作即可完成解压缩,更加快捷。
可选地,在推理阶段,还可以先对训练好的第一向量集合进行解码操作,而后进行线性变换,以恢复维数,从而得到解压缩后的第二向量集合。
参见图6,该步骤S202,包括:
根据训练好的第一向量集合和训练好的第二变换信息,确定解压缩后的第四向量集合。
该解压缩后的第四向量集合包括的参数量大于训练好的第一向量集合。例如,训练好的第一向量集合中的各向量可参见图6中的聚类中心集合(codebook),可以同图4中训练好的codebook,尺寸为k*d;训练好的第二变换信息可参见图中的类索引(codes),可以同图4中训练好的codes,尺寸为*1,解压缩后的第四向量集合中的各向量可参见图中的解压缩后的LRR(decoded LRR),尺寸为/>*d。在确定decoded LRR时,对于decoded LRR中的某一行,可以根据codes确定聚类前该行对应的簇(例如为z,z为1-k中的任意正整数),从而可以以codebook中第z簇对应的聚类中心,即codebook中第z行对应的向量作为decoded LRR中该行对应的向量。
根据解压缩后的第四向量集合和训练好的第一变换信息,确定解压缩后的第二向量集合。
解压缩后的第二向量集合中的各向量可参见图6中的解压缩后的矩阵(decodedmatrix),该解压缩后的第二向量集合中各向量的维数的大小为m,大于解压缩后的第四向量集合中对应向量的维数的大小d。例如,可以根据训练好的第一变换信息,对decoded LRR进行线性变换LT,以恢复维数的大小,确定decoded matrix。
根据本申请实施例,通过先根据训练好的第二变换信息确定解压缩后的第四向量集合,再根据训练好的第一变换信息确定解压缩后的第二向量集合,可以实现对存储器中存储的训练好的第一向量集合的解压缩,从而可以在执行推理任务时可以随用随解压,节省了存储器的存储空间。
步骤S203,根据解压缩后的第二向量集合,确定解压缩后的神经网络模型。
例如,可以根据重排列(reshape)的排列顺序确定解压缩后的第二向量集合中对应的神经网络模型参数的向量,从而确定解压缩后的神经网络模型,以执行相应的推理任务。
步骤S204,从存储器中删除第二向量集合。
可在第二向量集合使用完后(例如使用解压缩后的神经网络模型执行推理任务后),从存储器中删除第二向量集合,从而,可以在存储器中仅保留压缩后的神经网络模型的参数(即训练好的第一向量集合),使得神经网络模型的参数可以仅占用一个极小的存储空间即可在硬件上运行,对于模型的部署友好。
根据本申请实施例,通过响应于使用神经网络模型执行推理任务的指令,从存储器获取压缩后的神经网络模型参数和相应的变换信息,进行解压缩,并在执行完推理任务后,仅在存储器中保留压缩后的模型参数和变换信息,可以减少神经网络模型占用的存储空间。同时,压缩后的模型参数为在低秩向量基础上进行量化后得到的,可以使得在相同的压缩比例下,得到的量化精度更高,从而在保证神经网络模型准确度的同时,降低了存储器对神经网络模型参数的存储压力。
表1示出根据本申请一实施例神经网络模型的压缩方法在ImageNet图像分类任务上的效果的对比示意。
表1
参见表1,ResNet-18和ResNet-50为两种不同的DNN模型。未压缩时的Top-1准确率(Top-1accuracy)可以表示各分类中排名第一的分类的准确率,如表中所示,ResNet-18未压缩时的Top-1准确率为71.3%,ResNet-50未压缩时的Top-1准确率为77.75%。压缩前和压缩后模型的大小可以分别表示在存储相应的DNN参数所需要的存储空间,如表中所示,ResNet-18在压缩前的大小为44.59M,在压缩比例为29倍(29x)时,对应的压缩后的模型大小为1.54M,在压缩比例为43倍(43x)时,对应的压缩后的模型大小为1.03M;ResNet-50在压缩前的大小为97.49M,在压缩比例为19倍(19x)时,对应的压缩后的模型大小为5.09M,在压缩比例为31倍(31x)时,对应的压缩后的模型大小为3.19M。
对于当前的压缩方法PQF(Permute,quantize,and fine-tune:Efficientcompression of neural networks),在同样的模型和压缩比例之下,进行压缩后,Top-1准确率均不如本申请实施例的压缩方法。参见表1,对于ResNet-18,在压缩比例均为29x的情况下,PQF的Top-1准确率为67.98%,本申请实施例的压缩方法的Top-1准确率为69.56%,提升了1.58%;在压缩比例均为43x的情况下,PQF的Top-1准确率为64.39%,本申请实施例的压缩方法的Top-1准确率为67.21%,提升了2.82%。对于ResNet-50,在压缩比例均为19x的情况下,PQF的Top-1准确率为74.93%,本申请实施例的压缩方法的Top-1准确率为76.17%,提升了1.24%;在压缩比例均为31x的情况下,PQF的Top-1准确率为73.40%,本申请实施例的压缩方法的Top-1准确率为74.41%,提升了1.01%。由此,可以看出,本申请实施例在保证了压缩比例的同时,还可以进一步提升压缩了的模型的性能。
图7示出根据本申请一实施例的平衡线性变换近似误差与聚类误差的效果示意图。通过确定合适的d的大小,可以平衡线性变换带来的近似误差以及后续聚类时的误差,以提升压缩后的DNN的性能。针对于DNN执行图像分类任务,且针对于DNN中尺寸为3*3的卷积层参数(如图中“3x3 conv”),如图7所示,左边的表针对于ResNet-18模型,右边的表针对于ResNet-50模型,表中横坐标可以表示d的大小,其中,左边的表d的大小范围为[1,9],右边的表中d的大小范围为[1,18],纵坐标可以表示Top-1准确率(如图中“Top-1accuracy”)的值,从两张图中可以看出,不同的d的大小对Top-1准确率存在影响,如图中“预训练”的折线,在线性变换时,d的值越大,线性变换后的模型的对应的Top-1准确率越高;而参考图中“压缩后”的折线,对模型进行聚类压缩后,d的值在3-5之间时,压缩后的模型对应的Top-1准确率相对较高。因此,为平衡线性变换近似误差与聚类误差,在图像分类任务中,可预设d的值为3-5之间。参见图中“PQF”的虚线,对于当前的压缩方法PQF,ResNet-18模型对应的Top-1准确率为68%,ResNet-50模型对应的Top-1准确率为64%,由此可知本申请实施例的压缩方法获得的模型的性能更好。
图8示出根据本申请一实施例的神经网络模型的压缩装置的结构图。该装置可用于终端设备或服务器,如图8所示,该装置包括:
第一获取模块801,用于响应于使用神经网络模型执行推理任务的指令,获取存储器存储的训练好的第一向量集合和训练好的变换信息,第一向量集合包括压缩后的神经网络模型的参数,变换信息包括向量集合之间的映射关系信息;
第一确定模块802,用于根据训练好的第一向量集合和训练好的变换信息,确定解压缩后的第二向量集合,第二向量集合包括重排列的神经网络模型的参数,解压缩后的第二向量集合中各向量的维数大于第一向量集合中对应向量的维数;
第二确定模块803,用于根据解压缩后的第二向量集合,确定解压缩后的神经网络模型;
删除模块804,用于从存储器中删除第二向量集合。
根据本申请实施例,通过响应于使用神经网络模型执行推理任务的指令,从存储器获取压缩后的神经网络模型参数和相应的变换信息,进行解压缩,并在执行完推理任务后,仅在存储器中保留压缩后的模型参数和变换信息,可以减少神经网络模型占用的存储空间。同时,压缩后的模型参数为在低秩向量基础上进行量化后得到的,可以使得在相同的压缩比例下,得到的量化精度更高,从而在保证神经网络模型准确度的同时,降低了存储器对神经网络模型参数的存储压力。
可选地,该推理任务针对于以下中的任一项:图像数据、音频数据、文本数据。
根据本申请实施例,通过推理任务可适用于多种类型的数据,可实现本申请实施例的压缩方法的多场景的应用。
可选地,该第二向量集合的维数为m,m为正整数,该第一向量集合的维数为d,d为1-m之间的任意正整数。
根据本申请实施例,通过使得d为小于m的值,可以实现对向量的降维处理,可以使得后续聚类过程更易于实现,且在同样压缩比例的情况下,量化的精度更高,通过预定合适的d的值还可以平衡降维带来的近似误差以及后续聚类时的误差。
可选地,该装置还包括:
第二获取模块,用于获取训练数据、原始神经网络模型参数信息和目标推理任务信息;
第三确定模块,用于根据原始神经网络模型参数信息和目标推理任务信息,确定第一变换信息和第四向量集合;
第四确定模块,用于以根据第一变换信息和第四向量集合确定的向量集合作为神经网络模型的参数,利用训练数据对神经网络模型进行训练,确定训练好的第一变换信息和训练好的第四向量集合;
第五确定模块,用于根据训练好的第四向量集合,确定第一向量集合和第二变换信息;
第六确定模块,用于以根据第一向量集合和第二变换信息确定的向量集合作为新的训练好的第四向量集合,根据训练好的第一变换信息和新的训练好的第四向量集合确定解压缩后的第二向量集合;
第七确定模块,用于以解压缩后的第二向量集合作为神经网络模型的参数,确定第二变换信息为训练好的第二变换信息,利用训练数据对神经网络模型进行训练,得到训练好的第一向量集合。
根据本申请实施例,通过利用训练数据、原始神经网络模型参数信息和目标推理任务信息,对神经网络模型的参数在降维后进行训练,确定训练好的第一变换信息和训练好的第四向量集合,减少了后续量化过程的计算量,而后对第四向量集合进行量化,并进行微调训练,使得最终得到训练好的第一向量集合在同样压缩比例的情况下,具有更高的量化精度,从而在保证神经网络模型准确度的同时,也降低了存储器对神经网络模型参数的存储压力。
可选地,该第五确定模块,用于:
对训练好的第四向量集合进行聚类,确定第一向量集合和第二变换信息,第一向量集合包括各聚类中心的对应的向量。
根据本申请实施例,通过对降维后的向量进行聚类,可以实现对神经网络模型参数的进一步压缩,从而可以进一步减少神经网络模型在存储器中占用的存储空间。
可选地,该训练好的变换信息包括训练好的第一变换信息和训练好的第二变换信息,该第一确定模块802,用于:
根据训练好的第一向量集合和训练好的第一变换信息,确定第三向量集合,第三向量集合中各向量的维数大于训练好的第一向量集合中对应向量的维数;
根据第三向量集合和训练好的第二变换信息,确定解压缩后的第二向量集合,解压缩后的第二向量集合包括的参数量大于第三向量集合。
根据本申请实施例,通过在解压缩时,先根据训练好的第一变换信息先确定第三向量集合,再根据训练好的第二变换信息确定解压缩后的第二向量集合,可以使得在得到第三向量集合后,仅需进行解码操作即可完成解压缩,更加快捷。
可选地,该训练好的变换信息包括训练好的第一变换信息和训练好的第二变换信息,该第一确定模块802,用于:
根据训练好的第一向量集合和训练好的第二变换信息,确定解压缩后的第四向量集合,解压缩后的第四向量集合包括的参数量大于训练好的第一向量集合;
根据解压缩后的第四向量集合和训练好的第一变换信息,确定解压缩后的第二向量集合,解压缩后的第二向量集合中各向量的维数大于解压缩后的第四向量集合中对应向量的维数。
根据本申请实施例,通过先根据训练好的第二变换信息确定解压缩后的第四向量集合,再根据训练好的第一变换信息确定解压缩后的第二向量集合,可以实现对存储器中存储的训练好的第一向量集合的解压缩,从而可以在执行推理任务时可以随用随解压,节省了存储器的存储空间。
本申请的实施例提供了一种神经网络模型的压缩装置,包括:处理器以及用于存储处理器可执行指令的存储器;其中,所述处理器被配置为执行所述指令时实现上述方法。
本申请的实施例提供了一种终端设备,该终端设备可以执行上述方法。
本申请的实施例提供了一种非易失性计算机可读存储介质,其上存储有计算机程序指令,所述计算机程序指令被处理器执行时实现上述方法。
本申请的实施例提供了一种计算机程序产品,包括计算机可读代码,或者承载有计算机可读代码的非易失性计算机可读存储介质,当所述计算机可读代码在电子设备的处理器中运行时,所述电子设备中的处理器执行上述方法。
图9示出根据本申请一实施例的电子设备100的结构图。如图9所示,该电子设备100可以是上述服务器或者是上述终端设备,执行上述图2-图6中任一项所示出的神经网络模型的压缩方法中服务器或终端设备的功能。该电子设备100包括至少一个处理器1801,至少一个存储器1802、至少一个通信接口1803。此外,该电子设备还可以包括天线等通用部件,在此不再详述。
下面结合图9对电子设备100的各个构成部件进行具体的介绍。
处理器1801可以是通用中央处理器(CPU),微处理器,特定应用集成电路(application-specific integrated circuit,ASIC),或一个或多个用于控制以上方案程序执行的集成电路。处理器1801可以包括一个或多个处理单元,例如:处理器110可以包括应用处理器(application processor,AP),调制解调处理器,图形处理器(graphicsprocessing unit,GPU),图像信号处理器(image signal processor,ISP),控制器,视频编解码器,数字信号处理器(digital signal processor,DSP),基带处理器,和/或神经网络处理器(neural-network processing unit,NPU)等。其中,不同的处理单元可以是独立的器件,也可以集成在一个或多个处理器中。
通信接口1803,用于与其他电子设备或通信网络通信,如以太网,无线接入网(RAN),核心网,无线局域网(Wireless Local Area Networks,WLAN)等。例如,参考图1(a)和图1(b),电子设备100为服务器,通信接口1803可以用于与终端设备通信。又例如,电子设备100为终端设备,通信接口1803可以用于与服务器通信。
存储器1802可以是只读存储器(read-only memory,ROM)或可存储静态信息和指令的其他类型的静态存储设备,随机存取存储器(random access memory,RAM)或者可存储信息和指令的其他类型的动态存储设备,也可以是电可擦可编程只读存储器(ElectricallyErasable Programmable Read-Only Memory,EEPROM)、只读光盘(CompactDisc Read-Only Memory,CD-ROM)或其他光盘存储、光碟存储(包括压缩光碟、激光碟、光碟、数字通用光碟、蓝光光碟等)、磁盘存储介质或者其他磁存储设备、或者能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其他介质,但不限于此。存储器可以是独立存在,通过总线与处理器相连接。存储器也可以和处理器集成在一起。
其中,所述存储器1802用于存储执行以上方案的应用程序代码,并由处理器1801来控制执行。所述处理器1801用于执行所述存储器1802中存储的应用程序代码。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
计算机可读存储介质可以是可以保持和存储由指令执行设备使用的指令的有形设备。计算机可读存储介质例如可以是――但不限于――电存储设备、磁存储设备、光存储设备、电磁存储设备、半导体存储设备或者上述的任意合适的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:便携式计算机盘、硬盘、随机存取存储器(RandomAccess Memory,RAM)、只读存储器(Read Only Memory,ROM)、可擦式可编程只读存储器(Electrically Programmable Read-Only-Memory,EPROM或闪存)、静态随机存取存储器(Static Random-Access Memory,SRAM)、便携式压缩盘只读存储器(Compact Disc Read-Only Memory,CD-ROM)、数字多功能盘(Digital Video Disc,DVD)、记忆棒、软盘、机械编码设备、例如其上存储有指令的打孔卡或凹槽内凸起结构、以及上述的任意合适的组合。
这里所描述的计算机可读程序指令或代码可以从计算机可读存储介质下载到各个计算/处理设备,或者通过网络、例如因特网、局域网、广域网和/或无线网下载到外部计算机或外部存储设备。网络可以包括铜传输电缆、光纤传输、无线传输、路由器、防火墙、交换机、网关计算机和/或边缘服务器。每个计算/处理设备中的网络适配卡或者网络接口从网络接收计算机可读程序指令,并转发该计算机可读程序指令,以供存储在各个计算/处理设备中的计算机可读存储介质中。
用于执行本申请操作的计算机程序指令可以是汇编指令、指令集架构(Instruction Set Architecture,ISA)指令、机器指令、机器相关指令、微代码、固件指令、状态设置数据、或者以一种或多种编程语言的任意组合编写的源代码或目标代码,所述编程语言包括面向对象的编程语言—诸如Smalltalk、C++等,以及常规的过程式编程语言—诸如“C”语言或类似的编程语言。计算机可读程序指令可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络—包括局域网(Local Area Network,LAN)或广域网(WideArea Network,WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。在一些实施例中,通过利用计算机可读程序指令的状态信息来个性化定制电子电路,例如可编程逻辑电路、现场可编程门阵列(Field-ProgrammableGate Array,FPGA)或可编程逻辑阵列(Programmable Logic Array,PLA),该电子电路可以执行计算机可读程序指令,从而实现本申请的各个方面。
这里参照根据本申请实施例的方法、装置(系统)和计算机程序产品的流程图和/或框图描述了本申请的各个方面。应当理解,流程图和/或框图的每个方框以及流程图和/或框图中各方框的组合,都可以由计算机可读程序指令实现。
这些计算机可读程序指令可以提供给通用计算机、专用计算机或其它可编程数据处理装置的处理器,从而生产出一种机器,使得这些指令在通过计算机或其它可编程数据处理装置的处理器执行时,产生了实现流程图和/或框图中的一个或多个方框中规定的功能/动作的装置。也可以把这些计算机可读程序指令存储在计算机可读存储介质中,这些指令使得计算机、可编程数据处理装置和/或其他设备以特定方式工作,从而,存储有指令的计算机可读介质则包括一个制造品,其包括实现流程图和/或框图中的一个或多个方框中规定的功能/动作的各个方面的指令。
也可以把计算机可读程序指令加载到计算机、其它可编程数据处理装置、或其它设备上,使得在计算机、其它可编程数据处理装置或其它设备上执行一系列操作步骤,以产生计算机实现的过程,从而使得在计算机、其它可编程数据处理装置、或其它设备上执行的指令实现流程图和/或框图中的一个或多个方框中规定的功能/动作。
附图中的流程图和框图显示了根据本申请的多个实施例的装置、系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或指令的一部分,所述模块、程序段或指令的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。
也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行相应的功能或动作的硬件(例如电路或ASIC(Application SpecificIntegrated Circuit,专用集成电路))来实现,或者可以用硬件和软件的组合,如固件等来实现。
尽管在此结合各实施例对本发明进行了描述,然而,在实施所要求保护的本发明过程中,本领域技术人员通过查看所述附图、公开内容、以及所附权利要求书,可理解并实现所述公开实施例的其它变化。在权利要求中,“包括”(comprising)一词不排除其他组成部分或步骤,“一”或“一个”不排除多个的情况。单个处理器或其它单元可以实现权利要求中列举的若干项功能。相互不同的从属权利要求中记载了某些措施,但这并不表示这些措施不能组合起来产生良好的效果。
以上已经描述了本申请的各实施例,上述说明是示例性的,并非穷尽性的,并且也不限于所披露的各实施例。在不偏离所说明的各实施例的范围的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。本文中所用术语的选择,旨在最好地解释各实施例的原理、实际应用或对市场中的技术的改进,或者使本技术领域的其它普通技术人员能理解本文披露的各实施例。
Claims (11)
1.一种神经网络模型的压缩方法,其特征在于,所述方法包括:
响应于使用神经网络模型执行推理任务的指令,获取存储器存储的训练好的第一向量集合和训练好的变换信息,所述第一向量集合包括压缩后的神经网络模型的参数,所述变换信息包括向量集合之间的映射关系信息;
根据所述训练好的第一向量集合和所述训练好的变换信息,确定解压缩后的第二向量集合,所述第二向量集合包括重排列的神经网络模型的参数,所述解压缩后的第二向量集合中各向量的维数大于所述第一向量集合中对应向量的维数;
根据所述解压缩后的第二向量集合,确定解压缩后的神经网络模型;
从存储器中删除所述第二向量集合。
2.根据权利要求1所述的方法,其特征在于,所述训练好的变换信息包括训练好的第一变换信息和训练好的第二变换信息,所述根据所述训练好的第一向量集合和所述训练好的变换信息,确定解压缩后的第二向量集合,包括:
根据所述训练好的第一向量集合和所述训练好的第一变换信息,确定第三向量集合,所述第三向量集合中各向量的维数大于所述训练好的第一向量集合中对应向量的维数;
根据所述第三向量集合和所述训练好的第二变换信息,确定所述解压缩后的第二向量集合,所述解压缩后的第二向量集合包括的参数量大于所述第三向量集合。
3.根据权利要求1所述的方法,其特征在于,所述训练好的变换信息包括训练好的第一变换信息和训练好的第二变换信息,所述根据所述训练好的第一向量集合和所述训练好的变换信息,确定解压缩后的第二向量集合,包括:
根据所述训练好的第一向量集合和所述训练好的第二变换信息,确定解压缩后的第四向量集合,所述解压缩后的第四向量集合包括的参数量大于所述训练好的第一向量集合;
根据所述解压缩后的第四向量集合和所述训练好的第一变换信息,确定所述解压缩后的第二向量集合,所述解压缩后的第二向量集合中各向量的维数大于所述解压缩后的第四向量集合中对应向量的维数。
4.根据权利要求2或3所述的方法,其特征在于,所述方法还包括:
获取训练数据、原始神经网络模型参数信息和目标推理任务信息;
根据所述原始神经网络模型参数信息和所述目标推理任务信息,确定第一变换信息和第四向量集合;
以根据所述第一变换信息和所述第四向量集合确定的向量集合作为神经网络模型的参数,利用训练数据对神经网络模型进行训练,确定所述训练好的第一变换信息和训练好的第四向量集合;
根据所述训练好的第四向量集合,确定第一向量集合和第二变换信息;
以根据所述第一向量集合和所述第二变换信息确定的向量集合作为新的训练好的第四向量集合,根据训练好的第一变换信息和所述新的训练好的第四向量集合确定解压缩后的第二向量集合;
以所述解压缩后的第二向量集合作为神经网络模型的参数,确定第二变换信息为所述训练好的第二变换信息,利用训练数据对神经网络模型进行训练,得到所述训练好的第一向量集合。
5.根据权利要求4所述的方法,其特征在于,所述根据所述训练好的第四向量集合,确定第一向量集合和第二变换信息,包括:
对所述训练好的第四向量集合进行聚类,确定所述第一向量集合和所述第二变换信息,所述第一向量集合包括各聚类中心的对应的向量。
6.根据权利要求1-5任一项所述的方法,其特征在于,所述第二向量集合的维数为m,m为正整数,所述第一向量集合的维数为d,d为1-m之间的任意正整数。
7.根据权利要求1-6任一项所述的方法,所述推理任务针对于以下中的任一项:图像数据、音频数据、文本数据。
8.一种神经网络模型的压缩装置,其特征在于,所述装置包括:
第一获取模块,用于响应于使用神经网络模型执行推理任务的指令,获取存储器存储的训练好的第一向量集合和训练好的变换信息,所述第一向量集合包括压缩后的神经网络模型的参数,所述变换信息包括向量集合之间的映射关系信息;
第一确定模块,用于根据所述训练好的第一向量集合和所述训练好的变换信息,确定解压缩后的第二向量集合,所述第二向量集合包括重排列的神经网络模型的参数,所述解压缩后的第二向量集合中各向量的维数大于所述第一向量集合中对应向量的维数;
第二确定模块,用于根据所述解压缩后的第二向量集合,确定解压缩后的神经网络模型;
删除模块,用于从存储器中删除所述第二向量集合。
9.一种神经网络模型的压缩装置,其特征在于,包括:
处理器;
用于存储处理器可执行指令的存储器;
其中,所述处理器被配置为执行所述指令时实现权利要求1-7任意一项所述的方法。
10.一种非易失性计算机可读存储介质,其上存储有计算机程序指令,其特征在于,所述计算机程序指令被处理器执行时实现权利要求1-7中任意一项所述的方法。
11.一种计算机程序产品,包括计算机可读代码,或者承载有计算机可读代码的非易失性计算机可读存储介质,当所述计算机可读代码在电子设备中运行时,所述电子设备中的处理器执行权利要求1-7中任意一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210693059.8A CN117291246A (zh) | 2022-06-17 | 2022-06-17 | 神经网络模型的压缩方法、装置和存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210693059.8A CN117291246A (zh) | 2022-06-17 | 2022-06-17 | 神经网络模型的压缩方法、装置和存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117291246A true CN117291246A (zh) | 2023-12-26 |
Family
ID=89250486
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210693059.8A Pending CN117291246A (zh) | 2022-06-17 | 2022-06-17 | 神经网络模型的压缩方法、装置和存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117291246A (zh) |
-
2022
- 2022-06-17 CN CN202210693059.8A patent/CN117291246A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR102596644B1 (ko) | 메모리 대역폭 활용을 감소시키기 위해 활성화 데이터의 압축 및 압축 해제를 사용하는 신경망 프로세서 | |
US11392822B2 (en) | Image processing method, image processing apparatus, and computer-readable storage medium | |
EP3777207B1 (en) | Content-specific neural network distribution | |
CN105260776B (zh) | 神经网络处理器和卷积神经网络处理器 | |
KR20230074137A (ko) | 머신 러닝 시스템들을 이용한 인스턴스 적응적 이미지 및 비디오 압축 | |
US11386583B2 (en) | Image coding apparatus, probability model generating apparatus and image decoding apparatus | |
CN110263913A (zh) | 一种深度神经网络压缩方法及相关设备 | |
US11257252B2 (en) | Image coding apparatus, probability model generating apparatus and image compression system | |
JP2022172362A (ja) | 画像処理方法、顔認識モデルトのレーニング方法、装置及び機器 | |
CN111510718B (zh) | 通过图像文件的块间差异提高压缩率的方法及系统 | |
EP3744008B1 (en) | Electronic apparatus for compression of data and compression method thereof | |
TW202312031A (zh) | 使用機器學習系統的網路參數子空間中的實例自我調整影像和視訊壓縮 | |
JP2022525897A (ja) | ニューラルネットワークモデルの圧縮/解凍のための方法および装置 | |
CN114973049A (zh) | 一种统一卷积与自注意力的轻量视频分类方法 | |
US10608664B2 (en) | Electronic apparatus for compression and decompression of data and compression method thereof | |
CN111898638B (zh) | 融合不同视觉任务的图像处理方法、电子设备及介质 | |
CN105791832B (zh) | 数据编码方法和数据解码方法及其系统 | |
CN113177483B (zh) | 视频目标分割方法、装置、设备以及存储介质 | |
CN115499635B (zh) | 数据压缩处理方法及装置 | |
CN117291246A (zh) | 神经网络模型的压缩方法、装置和存储介质 | |
CN111510716A (zh) | 通过图像文件的像素变换提高压缩率的方法和系统 | |
CN116341630A (zh) | 神经网络处理 | |
CN105469433B (zh) | 一种图片压缩方法及其设备 | |
CN115546798A (zh) | 文本识别模型的训练方法、文本识别方法及装置 | |
CN112580772B (zh) | 卷积神经网络的压缩方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication |