CN110263913A - 一种深度神经网络压缩方法及相关设备 - Google Patents
一种深度神经网络压缩方法及相关设备 Download PDFInfo
- Publication number
- CN110263913A CN110263913A CN201910435515.7A CN201910435515A CN110263913A CN 110263913 A CN110263913 A CN 110263913A CN 201910435515 A CN201910435515 A CN 201910435515A CN 110263913 A CN110263913 A CN 110263913A
- Authority
- CN
- China
- Prior art keywords
- layer
- tensor
- neural network
- matrix
- nuclear matrix
- 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/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)
- General Health & Medical Sciences (AREA)
- Computing Systems (AREA)
- Biomedical Technology (AREA)
- Biophysics (AREA)
- Computational Linguistics (AREA)
- Data Mining & Analysis (AREA)
- Evolutionary Computation (AREA)
- Life Sciences & Earth Sciences (AREA)
- Molecular Biology (AREA)
- Artificial Intelligence (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Health & Medical Sciences (AREA)
- Image Processing (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
Abstract
本申请公开了一种深度神经网络压缩方法、装置、设备及计算机可读介质,涉及计算机技术领域。通过基于张量火车分解算法的自适应分解秩算法,在网络训练过程中根据设定的网络精度阈值逐层分解深度神经网络模型中每层的参数矩阵,分解的同时固定住其他网络层,并且按照顺序调整当前网络层的分解秩,并重新训练恢复精度,在达到精度阈值后将当前秩确定为该选取层网络的分解秩,解决了手动确定分解秩的繁琐和不确定性问题,对参数矩阵进行压缩从而达到神经网络模型的压缩效果。
Description
技术领域
本申请涉及计算机技术领域,特别涉及一种深度神经网络压缩方法、装置、设备及计算机可读介质。
背景技术
近年来,深度卷积神经网络在图像识别、自然语言处理、语音识别等领域得到了十分广泛的应用,其强大的特征提取能力在众多任务上都取得了突破式的性能提升。为了提高神经网络模型的性能,研究人员普遍会设计更深和更复杂的网络,例如:VGGNet,GoogLeNet以及ResNet等。这样会使模型的参数量和计算量大大增加,这对硬件资源(如CPU、GPU内存、带宽)的要求也越来越高,成本十分昂贵,将如此复杂的深度神经网络直接部署在计算能力和续航能力有限移动设备上(如手机、无人机、机器人、智能眼镜)是很难实现的,在移动设备上和廉价部署深度神经网络***有着重要的应用需求和前景,是未来深度学习实现产业化需要解决的一个重要问题。
要将目前的大型卷积神经网络部署在廉价设备上,需要解决存储空间和计算量有限的问题,那么模型的紧凑性和计算的高效性就是十分重要的。模型过大占用大量的内存空间,同时会影响计算效率。研究表明,在深度卷积网络中卷积操作是计算量最大的操作,故加速的关键在于提高卷积操作的计算效率。另外,在卷积神经网络中存在着大量的冗余结构和参数,特别是全连接网络层,这些冗余结构和参数对最后的推断结果贡献很小,故可以采取压缩网络结构和参数量的方式来减少模型尺寸,同时也可以加快网络的计算速度。
中国专利申请号:201610387878.4、名为“基于张量分解的深度卷积神经网络的加速与压缩方法”提供了一种基于权值张量分解的深度卷积神经网络的加速与压缩方法,通过对深度卷积神经网络的权值进张量分解,利用所得的多个低秩子张量替换原有权值,从而可以实现大型深度卷积神经网络的加速与压缩;另有中国专利申请号:201711319853.1”、名为“基于块项张量分解的深度神经网络压缩方法”提供了一种基基于块项张量分解的深度神经网络压缩方法,将权重矩阵和输入向量均转化为高阶张量并对其进行块项张量分解处理,将深度神经网络的全连接层替换为块项张量层,采用后向传播算法对替换后的深度神经网络进行训练。
目前基于张量火车张量分解的神经网络压缩算法的分解秩均是通过经验和调参的方式手动设置,训练的过程中需要反复探索每层神经网络合适的张量火车分解秩,需要大量的时间和精力。
发明内容
为了解决上述问题之一,本申请实施例提供了一种基于自适应张量火车分解秩算法的深度神经网络压缩方法、装置、设备及计算机可读介质。
第一方面,本申请提供一种深度神经网络压缩方法,所述方法包括:
获取待压缩深度神经网络模型;
当确定所述待压缩深度神经网络模型有可选网络层,按照预定次序依次选取一层网络作为选取层,固定所述可选网络层中余下层网络参数不变;
根据所述选取层进行张量分解计算,通过调整精度要求值得到多个核矩阵,当所述核矩阵的精度差值符合预置条件时将所述核矩阵作为所述选取层的张量分解核矩阵;
重复选取下一层网络作为选取层进行张量分解,直至所述可选网络层全部完成核矩阵分解,得到压缩后的深度神经网络模型。
作为一种可选地方案,所述根据所述选取层进行张量分解计算,通过调整精度要求值得到多个核矩阵,当所述核矩阵的精度差值符合预置条件时将所述核矩阵作为所述选取层的张量分解核矩阵,包括:
获取所述选取层的参数矩阵W和网络精度L,并将所述参数矩阵W转化为高维张量T;
设定误差要求值ε并记录在数组e[]中,对所述高维张量T进行张量算法压缩后并还原得到张量T′,并满足:
确定奇异值分解截断值δ,其中d为高维张量T的维度;
将所述高维张量T逐维展开为矩阵,并利用所述奇异值分解截断值δ对所述矩阵进行奇异值分解,得到分解秩rk和分解后的核矩阵;
对所述选取层进行精度调整得到精度L′,确定精度差值Δ=L-L′记录在数组l[]中;
按照从大到小的顺序调整精度要求值ε,重复进行所述精度差值的确定,直到所述精度差值Δ连续n次不大于α则停止循环,将得到的核矩阵作为所述选取层的张量分解核矩阵,其中所述n和α均为超参数。
作为一种可选地方案,所述根据所述选取层进行张量分解计算,通过调整精度要求值得到多个核矩阵,当所述核矩阵的精度差值符合预置条件时将所述核矩阵作为所述选取层的张量分解核矩阵,包括:
当所述选取层为全连接层,将所述选取层的输入向量转化为维度为(m1,...,md)的高维张量
输出向量转化为维度为(n1,...,nd)的高阶张量
偏置分解为维度为(n1,...,nd)的高维张量B,
对参数矩阵进行张量分解,得到的核矩阵为Gk[mk,nk];
分解后的深度神经网络模型运算过程表示为:
作为一种可选地方案,所述根据所述选取层进行张量分解计算,通过调整精度要求值得到多个核矩阵,当所述核矩阵的精度差值符合预置条件时将所述核矩阵作为所述选取层的张量分解核矩阵,包括:
当选取层为卷积层,使用im2col操作将输入张量转化为大小为F′F′×k2M的矩阵;
将卷积核张量转化为大小为k2M×N的矩阵,其中F为输入张量的边长,其中边长相等、M为输入通道数、N为输出通道数,k为卷积核边长;
对卷积核参数矩阵进行张量分解,分别将输入维度和输出维度进行分解:将卷积核矩阵K张量化为张量分解后得到核矩阵为Gk[mk,nk];
分解后得卷积运算表示为:
作为一种可选地方案,所述重复选取下一层网络作为选取层进行张量分解,直至所述可选网络层全部完成核矩阵分解,得到压缩后的深度神经网络模型之后,还包括:
对所述深度神经网络模型进行量化操作。
作为一种可选地方案,所述对所述深度神经网络模型进行量化操作,包括:
将32bit全精度的核矩阵参数量化至8bit的整数型。
作为一种可选地方案,所述按照预定次序依次选取一层网络作为选取层,包括:
按照从最后一层网络向第一层网络的顺序依次选取一层网络作为选取层。
第二方面,本申请提供一种基于自适应张量火车分解算法的深度神经网络压缩装置,所述装置包括:
获取单元,用于获取待压缩深度神经网络模型;
确定单元,用于当确定所述待压缩深度神经网络模型有可选网络层,按照预定次序依次选取一层网络作为选取层,固定所述可选网络层中余下层网络参数不变;
张量分解单元,用于根据所述选取层进行张量分解计算,通过调整精度要求值得到多个核矩阵,当所述核矩阵的精度差值符合预置条件时将所述核矩阵作为所述选取层的张量分解核矩阵;
执行单元,用于重复选取下一层网络作为选取层进行张量分解,直至所述可选网络层全部完成核矩阵分解,得到压缩后的深度神经网络模型。
第三方面,本申请还提供一种计算机设备,所述设备包括:
一个或多个处理器;
存储器,用于存储一个或多个程序;
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如上述的深度神经网络压缩方法。
第四方面,本申请还提供一种计算机可读介质,其上存储有计算机程序,该程序被处理器执行时实现如上述的深度神经网络压缩方法。
本申请提供的基于自适应张量火车分解秩算法的深度神经网络压缩方法、装置、设备及计算机可读介质,通过基于张量火车分解算法的自适应分解秩算法,在网络训练过程中根据设定的网络精度阈值逐层分解深度神经网络模型中每层的参数矩阵,分解的同时固定住其他网络层,并且按照顺序调整当前网络层的分解秩,并重新训练恢复精度,在达到精度阈值后将当前秩确定为该选取层网络的分解秩,解决了手动确定分解秩的繁琐和不确定性问题,对参数矩阵进行压缩从而达到神经网络模型的压缩效果。
附图说明
图1是本申请实施例中提供的一种基于自适应张量火车分解秩算法的深度神经网络压缩方法的流程图;
图2是本申请实施例中提供的一种基于自适应张量火车分解秩算法中张量分解的示意图;
图3是本申请实施例中提供的一种基于自适应张量火车分解秩算法的深度神经网络压缩装置的结构框图;
图4是本申请实施例中提供的一种计算机设备实施例的结构图;
图5是本申请实施例中提供的一种计算机设备的示例图。
具体实施方式
为了使本技术领域的人员更好地理解本申请方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分的实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本申请保护的范围。
本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”、“第四”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的实施例能够以除了在这里图示或描述的内容以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、***、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
结合图1所示,本申请实施例中提供的深度神经网络压缩方法的一种实施例,所述方法包括:
S101、获取待压缩深度神经网络模型。
待压缩深度神经网络模型可以是VGGNet,GoogLeNet以及ResNet等,对此不做限定。
S102、当确定所述待压缩深度神经网络模型有可选网络层,按照预定次序依次选取一层网络作为选取层,固定所述可选网络层中余下层网络参数不变。
判断待压缩神经网络模型中是否存在可选网络层,当确实存在可选网络层则可以进行逐层分解处理,可选的网络层有多层,按照顺序进行网络层选取,如可以按照从最后一层网络向第一层网络的顺序依次选取一层网络作为选取层,当然也可以从第一层网络向最后一层网络依次选取,对此不进行限定,对于选定的选取层,余下的网络层参数保持不变。
S103、根据所述选取层进行张量分解计算,通过调整精度要求值得到多个核矩阵,当所述核矩阵的精度差值符合预置条件时将所述核矩阵作为所述选取层的张量分解核矩阵。
具体地,获取所述选取层的参数矩阵W和网络精度L,并将所述参数矩阵W转化为高维张量T;
设定误差要求值ε并记录在数组e[]中,对所述高维张量T进行张量算法压缩后并还原得到张量T′,并满足:
确定奇异值分解截断值δ,其中d为高维张量T的维度;
将所述高维张量T逐维展开为矩阵,并利用所述奇异值分解截断值δ对所述矩阵进行奇异值分解,得到分解秩rk和分解后的核矩阵;
对所述选取层进行精度调整得到精度L′,确定精度差值Δ=L-L′记录在数组l[]中;
按照从大到小的顺序调整精度要求值ε,重复进行所述精度差值的确定,直到所述精度差值Δ连续n次不大于α则停止循环,将得到的核矩阵作为所述选取层的张量分解核矩阵,其中所述n和α均为超参数,在机器学习的上下文中,超参数是在开始学习过程之前设置值的参数,而不是通过训练得到的参数数据。
S104、重复选取下一层网络作为选取层进行张量分解,直至所述可选网络层全部完成核矩阵分解,得到压缩后的深度神经网络模型。
通过基于张量火车分解算法的自适应分解秩算法,在网络训练过程中根据设定的网络精度阈值逐层分解深度神经网络模型中每层的参数矩阵,分解的同时固定住其他网络层,并且按照顺序调整当前网络层的分解秩,并重新训练恢复精度,在达到精度阈值后将当前秩确定为该选取层网络的分解秩,解决了手动确定分解秩的繁琐和不确定性问题,对参数矩阵进行压缩从而达到神经网络模型的压缩效果。
结合图2所示,具体地,张量火车分解示意图,使用了张量火车张量分解算法来将神经网络的全连接层和卷积层的参数矩阵进行压缩。具体地,张量火车分解的原理是将一个高维张量中的每一个元素用若干个矩阵连乘的形式来表达。即:
A(i1,i2,...,id)=G1(i1)G2(i2)...Gd(id);
其中Gk(ik)是一个rk-1×rk大小的矩阵,rk表示张量火车分解的秩(TT-ranks),为了确保最终结果是一个标量,r0=rk=1。一个大小为5×4×5张量A的张量火车分解,张量A中的任一元素,例如A231可以写为3个矩阵连乘的形式。此处张量火车分解秩设为(1,3,3,1),每个矩阵的大小rk-1×rk,分别为1×3、3×3、3×1。每个矩阵在Gk中的位置由该元素的下标ik确定,分别为2、3、1。原张量一共有5×4×5=100个参数,压缩后一共有1×3×5+3×3×4+3×1×5=66个参数。
具体地,在S104中,当所述选取层为全连接层,将所述选取层的输入向量转化为维度为(m1,...,md)的高维张量
输出向量y∈RN转化为维度为(n1,...,nd)的高阶张量
偏置b=RN分解为维度为(n1,...,nd)的高维张量B,
对参数矩阵进行张量分解,得到的核矩阵为Gk[mk,nk];
分解后的深度神经网络模型运算过程表示为:
针对神经网络的全连接层,使用张量火车张量分解算法将参数矩阵分解为矩阵连乘状态,可以显著减少全连接层参数量。
具体地,在S104中,当选取层为卷积层,使用im2col操作将输入张量转化为大小为F′F′×k2M的矩阵,采用im2col的作用是为了优化卷积运算;
将卷积核张量转化为大小为k2M×N的矩阵,其中F为输入张量的边长,其中边长相等、M为输入通道数、N为输出通道数,k为卷积核边长;
对卷积核参数矩阵进行张量分解,分别将输入维度和输出维度进行分解:将卷积核矩阵K张量化为张量分解后得到核矩阵为Gk[mk,nk];
分解后得卷积运算表示为:
针对神经网络的卷积层,在im2col操作基础上对卷积核矩阵进行张量火车分解,可以减少卷积层参数量。适用自适应张量火车分解秩算法自动确定卷积层和全连接层的分解秩;在张量分解的基础上,使用权重量化算法将32bit全精度参数量化至8bit,可以加速神经网络的推断速度。
在S104,所述重复选取下一层网络作为选取层进行张量分解,直至所述可选网络层全部完成核矩阵分解,得到压缩后的深度神经网络模型之后,所述方法还包括:
对所述深度神经网络模型进行量化操作,具体地,将32bit全精度的核矩阵参数量化至8bit的整数型,完成对深度神经网络模型的量化操作。
使用量化核矩阵参数的方法解决了张量火车分解的带来的网络层数增加,前向加速效果不明显的问题,同时将权重量化技术应用在张量火车分解后的核矩阵上,具有比现有技术更加快速的前向推断速度。
本申请实施例中提供的深度神经网络压缩方法的另一种实施例,所述方法包括:
S201、获取待压缩深度神经网络模型。
S202、按照从最后一层网络向第一层网络开始,依次在待压缩深度神经网络模型选取一层网络作为选取层,并固定除选取层之外所有网络层参数;
S203、当选取层为全连接层,将该选取层层的输入向量转化为维度为(m1,...,md)的高维张量 输出向量转化为维度为(n1,...,nd)的高阶张量 偏置分解为维度为(n1,...,nd)的高维张量 使用自适应张量火车分解秩算法对参数矩阵进行张量火车分解,得到的核矩阵(TT-Cores)为Gk[mk,nk];
分解后的网络运算过程表示为:
S204、当选取层为卷积层,使用im2col操作将输入张量转化为大小为F′F′×k2M的矩阵;将卷积核张量转化为大小为k2M×N的矩阵,其中F为输入张量的边长,其中,边长相等、M为输入通道数、N为输出通道数,k为卷积核边长,使用自适应张量火车分解算法对卷积核参数矩阵进行张量火车分解,首先将输入输出维度进行分解:将卷积核矩阵K张量化为张量分解后得到得核矩阵为Gk[mk,nk];分解后得卷积运算可以表示为:
S205、重复步骤202、203、204,直至所有网络层都被分解,最终得到的网络就是经过张量火车分解压缩后的深度神经网络模型。
S206、对得到的深度神经网络模型进行量化操作。
S207、对量化操作后的深度神经网络模型进行恢复精度调整。
针对神经网络的全连接层,使用张量火车张量分解算法将参数矩阵分解为矩阵连乘状态,可以显著减少全连接层参数量;针对神经网络的卷积层,在im2col操作基础上对卷积核矩阵进行张量火车分解,可以减少卷积层参数量;适用自适应张量火车分解秩算法自动确定卷积层和全连接层的分解秩;在张量分解的基础上,使用权重量化算法将32bit全精度参数量化至8bit,可以加速神经网络的推断速度,本申请提供的的技术方案可以有效的压缩和加速现有的主流神经网络。
本申请提供的方案已经在VGG-16网络的全连接层进行过实验,实验结果表明本本申请压缩和加速效果良好。自适应张量火车分解应用在VGG-16的全连接层进行参数压缩进行了初步的实验。整体的网络参数压缩比例为3.9。但top5错误率仅仅从11.8%上升至12.3%,在CPU和GPU上分别对压缩前后的推算时间做了对比,如表1所示。
表1
实验结果表明,张量火车分解对全连接层网络的推断速度有加速作用,得益于矩阵运算的并行处理,在GPU上的加速效果更为明显。
结合图3所示,本申请提供一种基于自适应张量火车分解算法的深度神经网络压缩装置,其特征在于,所述装置包括:
获取单元301,用于获取待压缩深度神经网络模型;
确定单元302,用于当确定所述待压缩深度神经网络模型有可选网络层,按照预定次序依次选取一层网络作为选取层,固定所述可选网络层中余下层网络参数不变;
张量分解单元303,用于根据所述选取层进行张量分解计算,通过调整精度要求值得到多个核矩阵,当所述核矩阵的精度差值符合预置条件时将所述核矩阵作为所述选取层的张量分解核矩阵;
执行单元304,用于重复选取下一层网络作为选取层进行张量分解,直至所述可选网络层全部完成核矩阵分解,得到压缩后的深度神经网络模型。
本申请提供的基于自适应张量火车分解秩算法的深度神经网络压缩装置,通过基于张量火车分解算法的自适应分解秩算法,在网络训练过程中根据设定的网络精度阈值逐层分解深度神经网络模型中每层的参数矩阵,分解的同时固定住其他网络层,并且按照顺序调整当前网络层的分解秩,并重新训练恢复精度,在达到精度阈值后将当前秩确定为该选取层网络的分解秩,解决了手动确定分解秩的繁琐和不确定性问题,对参数矩阵进行压缩从而达到神经网络模型的压缩效果。
图4为本发明的计算机设备实施例的结构图。如图4所示,本实施例的计算机设备,包括:一个或多个处理器30,以及存储器40,存储器40用于存储一个或多个程序,当存储器40中存储的一个或多个程序被一个或多个处理器30执行,使得一个或多个处理器30实现如上图1-图2所示实施例的基于自适应张量火车分解秩算法的深度神经网络压缩方法。图4所示实施例中以包括多个处理器30为例。
例如,图5为本发明提供的一种计算机设备的示例图。图5示出了适于用来实现本发明实施方式的示例性计算机设备12a的框图。图5显示的计算机设备12a仅仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。
如图5所示,计算机设备12a以通用计算设备的形式表现。计算机设备12a的组件可以包括但不限于:一个或者多个处理器16a,***存储器28a,连接不同***组件(包括***存储器28a和处理器16a)的总线18a。
总线18a表示几类总线结构中的一种或多种,包括存储器总线或者存储器控制器,***总线,图形加速端口,处理器或者使用多种总线结构中的任意总线结构的局域总线。举例来说,这些体系结构包括但不限于工业标准体系结构(ISA)总线,微通道体系结构(MAC)总线,增强型ISA总线、视频电子标准协会(VESA)局域总线以及***组件互连(PCI)总线。
计算机设备12a典型地包括多种计算机***可读介质。这些介质可以是任何能够被计算机设备12a访问的可用介质,包括易失性和非易失性介质,可移动的和不可移动的介质。
***存储器28a可以包括易失性存储器形式的计算机***可读介质,例如随机存取存储器(RAM)30a和/或高速缓存存储器32a。计算机设备12a可以进一步包括其它可移动/不可移动的、易失性/非易失性计算机***存储介质。仅作为举例,存储***34a可以用于读写不可移动的、非易失性磁介质(图5未显示,通常称为“硬盘驱动器”)。尽管图5中未示出,可以提供用于对可移动非易失性磁盘(例如“软盘”)读写的磁盘驱动器,以及对可移动非易失性光盘(例如CD-ROM,DVD-ROM或者其它光介质)读写的光盘驱动器。在这些情况下,每个驱动器可以通过一个或者多个数据介质接口与总线18a相连。***存储器28a可以包括至少一个程序产品,该程序产品具有一组(例如至少一个)程序模块,这些程序模块被配置以执行本发明上述图1-图4各实施例的功能。
具有一组(至少一个)程序模块42a的程序/实用工具40a,可以存储在例如***存储器28a中,这样的程序模块42a包括但不限于操作***、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。程序模块42a通常执行本发明所描述的上述图1和图2各实施例中的功能和/或方法。
计算机设备12a也可以与一个或多个外部设备14a(例如键盘、指向设备、显示器24a等)通信,还可与一个或者多个使得用户能与该计算机设备12a交互的设备通信,和/或与使得该计算机设备12a能与一个或多个其它计算设备进行通信的任何设备(例如网卡,调制解调器等等)通信。这种通信可以通过输入/输出(I/O)接口22a进行。并且,计算机设备12a还可以通过网络适配器20a与一个或者多个网络(例如局域网(LAN),广域网(WAN)和/或公共网络,例如因特网)通信。如图所示,网络适配器20a通过总线18a与计算机设备12a的其它模块通信。应当明白,尽管图中未示出,可以结合计算机设备12a使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理器、外部磁盘驱动阵列、RAID***、磁带驱动器以及数据备份存储***等。
处理器16a通过运行存储在***存储器28a中的程序,从而执行各种功能应用以及数据处理,例如实现上述实施例所示的基于自适应张量火车分解秩算法的深度神经网络压缩方法。
本发明还提供一种计算机可读介质,其上存储有计算机程序,该程序被处理器执行时实现如上述实施例所示的基于自适应张量火车分解秩算法的深度神经网络压缩方法。
本实施例的计算机可读介质可以包括上述图5所示实施例中的***存储器28a中的RAM30a、和/或高速缓存存储器32a、和/或存储***34a。
随着科技的发展,计算机程序的传播途径不再受限于有形介质,还可以直接从网络下载,或者采用其他方式获取。因此,本实施例中的计算机可读介质不仅可以包括有形的介质,还可以包括无形的介质。
本实施例的计算机可读介质可以采用一个或多个计算机可读的介质的任意组合。计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质。计算机可读存储介质例如可以是,但不限于电、磁、光、电磁、红外线、或半导体的***、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本文件中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行***、装置或者器件使用或者与其结合使用。
计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括,但不限于磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行***、装置或者器件使用或者与其结合使用的程序。
计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于无线、电线、光缆、RF等等,或者上述的任意合适的组合。
可以以一种或多种程序设计语言或其组合来编写用于执行本发明操作的计算机程序代码,所述程序设计语言包括面向对象的程序设计语言—诸如Java、Smalltalk、C++,还包括常规的过程式程序设计语言—诸如”C”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络——包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
在本发明所提供的几个实施例中,应该理解到,所揭露的***,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。
上述以软件功能单元的形式实现的集成的单元,可以存储在一个计算机可读取存储介质中。上述软件功能单元存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或处理器(processor)执行本发明各个实施例所述方法的部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明保护的范围之内。
Claims (10)
1.一种深度神经网络压缩方法,其特征在于,所述深度神经网络压缩方法包括:
获取待压缩深度神经网络模型;
当确定所述待压缩深度神经网络模型有可选网络层,按照预定次序依次选取一层网络作为选取层,固定所述可选网络层中余下层网络参数不变;
根据所述选取层进行张量分解计算,通过调整精度要求值得到多个核矩阵,当所述核矩阵的精度差值符合预置条件时将所述核矩阵作为所述选取层的张量分解核矩阵;
重复选取下一层网络作为选取层进行张量分解,直至所述可选网络层全部完成核矩阵分解,得到压缩后的深度神经网络模型。
2.根据权利要求所述的深度神经网络压缩方法,其特征在于,所述根据所述选取层进行张量分解计算,通过调整精度要求值得到多个核矩阵,当所述核矩阵的精度差值符合预置条件时将所述核矩阵作为所述选取层的张量分解核矩阵,包括:
获取所述选取层的参数矩阵W和网络精度L,并将所述参数矩阵W转化为高维张量T;
设定误差要求值ε并记录在数组e[]中,对所述高维张量T进行张量算法压缩后并还原得到张量T′,并满足:
确定奇异值分解截断值δ,其中d为高维张量T的维度;
将所述高维张量T逐维展开为矩阵,并利用所述奇异值分解截断值δ对所述矩阵进行奇异值分解,得到分解秩rk和分解后的核矩阵;
对所述选取层进行精度调整得到精度L′,确定精度差值Δ=L-L′记录在数组l[]中;
按照从大到小的顺序调整精度要求值ε,重复进行所述精度差值的确定,直到所述精度差值Δ连续n次不大于α则停止循环,将得到的核矩阵作为所述选取层的张量分解核矩阵,其中所述n和α均为超参数。
3.根据权利要求1或2所述的深度神经网络压缩方法,其特征在于,所述根据所述选取层进行张量分解计算,通过调整精度要求值得到多个核矩阵,当所述核矩阵的精度差值符合预置条件时将所述核矩阵作为所述选取层的张量分解核矩阵,包括:
当所述选取层为全连接层,将所述选取层的输入向量转化为维度为(m1,...,md)的高维张量
输出向量转化为维度为(n1,...,nd)的高阶张量
偏置分解为维度为(n1,...,nd)的高维张量B,
对参数矩阵进行张量分解,得到的核矩阵为Gk[mk,nk];
分解后的深度神经网络模型运算过程表示为:
4.根据权利要求3所述的深度神经网络压缩方法,其特征在于,所述根据所述选取层进行张量分解计算,通过调整精度要求值得到多个核矩阵,当所述核矩阵的精度差值符合预置条件时将所述核矩阵作为所述选取层的张量分解核矩阵,包括:
当选取层为卷积层,使用im2col操作将输入张量转化为大小为F′F′×k2M的矩阵;
将卷积核张量转化为大小为k2M×N的矩阵,其中F为输入张量的边长,其中边长相等、M为输入通道数、N为输出通道数,k为卷积核边长;
对卷积核参数矩阵进行张量分解,分别将输入维度和输出维度进行分解:将卷积核矩阵K张量化为张量分解后得到核矩阵为Gk[mk,nk];
分解后得卷积运算表示为:
5.根据权利要求1所述的深度神经网络压缩方法,其特征在于,所述重复选取下一层网络作为选取层进行张量分解,直至所述可选网络层全部完成核矩阵分解,得到压缩后的深度神经网络模型之后,还包括:
对所述深度神经网络模型进行量化操作。
6.根据权利要求5所述的深度神经网络压缩方法,其特征在于,所述对所述深度神经网络模型进行量化操作,包括:
将32bit全精度的核矩阵参数量化至8bit的整数型。
7.根据权利要求1所述的深度神经网络压缩方法,其特征在于,所述按照预定次序依次选取一层网络作为选取层,包括:
按照从最后一层网络向第一层网络的顺序依次选取一层网络作为选取层。
8.一种深度神经网络压缩装置,其特征在于,所述装置包括:
获取单元,用于获取待压缩深度神经网络模型;
确定单元,用于当确定所述待压缩深度神经网络模型有可选网络层,按照预定次序依次选取一层网络作为选取层,固定所述可选网络层中余下层网络参数不变;
张量分解单元,用于根据所述选取层进行张量分解计算,通过调整精度要求值得到多个核矩阵,当所述核矩阵的精度差值符合预置条件时将所述核矩阵作为所述选取层的张量分解核矩阵;
执行单元,用于重复选取下一层网络作为选取层进行张量分解,直至所述可选网络层全部完成核矩阵分解,得到压缩后的深度神经网络模型。
9.一种计算机设备,其特征在于,所述设备包括:
一个或多个处理器;
存储器,用于存储一个或多个程序;
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如权利要求1至7中任一所述的方法。
10.一种计算机可读介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现如权利要求1至7中任一所述的方法。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910435515.7A CN110263913A (zh) | 2019-05-23 | 2019-05-23 | 一种深度神经网络压缩方法及相关设备 |
PCT/CN2019/130560 WO2020233130A1 (zh) | 2019-05-23 | 2019-12-31 | 一种深度神经网络压缩方法及相关设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910435515.7A CN110263913A (zh) | 2019-05-23 | 2019-05-23 | 一种深度神经网络压缩方法及相关设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN110263913A true CN110263913A (zh) | 2019-09-20 |
Family
ID=67915263
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910435515.7A Pending CN110263913A (zh) | 2019-05-23 | 2019-05-23 | 一种深度神经网络压缩方法及相关设备 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN110263913A (zh) |
WO (1) | WO2020233130A1 (zh) |
Cited By (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110852424A (zh) * | 2019-11-15 | 2020-02-28 | 广东工业大学 | 一种对抗生成网络的处理方法和装置 |
CN111210017A (zh) * | 2019-12-24 | 2020-05-29 | 北京迈格威科技有限公司 | 确定布局顺序及数据处理的方法、装置、设备及存储介质 |
CN111401282A (zh) * | 2020-03-23 | 2020-07-10 | 上海眼控科技股份有限公司 | 目标检测方法、装置、计算机设备和存储介质 |
CN111898484A (zh) * | 2020-07-14 | 2020-11-06 | 华中科技大学 | 生成模型的方法、装置、可读存储介质及电子设备 |
WO2020233130A1 (zh) * | 2019-05-23 | 2020-11-26 | 深圳先进技术研究院 | 一种深度神经网络压缩方法及相关设备 |
CN112184557A (zh) * | 2020-11-04 | 2021-01-05 | 上海携旅信息技术有限公司 | 超分辨率网络模型压缩方法、***、设备和介质 |
CN113326930A (zh) * | 2020-02-29 | 2021-08-31 | 华为技术有限公司 | 数据处理方法、神经网络的训练方法及相关装置、设备 |
CN113537485A (zh) * | 2020-04-15 | 2021-10-22 | 北京金山数字娱乐科技有限公司 | 一种神经网络模型的压缩方法及装置 |
WO2021234967A1 (ja) * | 2020-05-22 | 2021-11-25 | 日本電信電話株式会社 | 音声波形生成モデル学習装置、音声合成装置、それらの方法、およびプログラム |
CN113795869A (zh) * | 2019-11-22 | 2021-12-14 | 腾讯美国有限责任公司 | 用于神经网络模型压缩的量化、自适应块分区和码本编解码的方法和装置 |
WO2022022279A1 (en) * | 2020-07-27 | 2022-02-03 | Huawei Technologies Co., Ltd. | Systems, methods and media for dynamically shaped tensors using liquid types |
WO2022068623A1 (zh) * | 2020-09-30 | 2022-04-07 | 华为技术有限公司 | 一种模型训练方法及相关设备 |
CN114692816A (zh) * | 2020-12-31 | 2022-07-01 | 华为技术有限公司 | 神经网络模型的处理方法和设备 |
WO2022141189A1 (zh) * | 2020-12-30 | 2022-07-07 | 南方科技大学 | 一种循环神经网络精度和分解秩的自动搜索方法和装置 |
WO2023058969A1 (en) * | 2021-10-05 | 2023-04-13 | Samsung Electronics Co., Ltd. | Machine learning model compression using weighted low-rank factorization |
CN116187401A (zh) * | 2023-04-26 | 2023-05-30 | 首都师范大学 | 神经网络的压缩方法、装置、电子设备及存储介质 |
Families Citing this family (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2020231049A1 (en) | 2019-05-16 | 2020-11-19 | Samsung Electronics Co., Ltd. | Neural network model apparatus and compressing method of neural network model |
CN116547672A (zh) * | 2020-12-01 | 2023-08-04 | 华为技术有限公司 | 一种用于实现张量链式分解运算的设备和方法 |
CN112990454B (zh) * | 2021-02-01 | 2024-04-16 | 国网安徽省电力有限公司超高压分公司 | 基于集成dpu多核异构的神经网络计算加速方法及装置 |
CN113673694A (zh) * | 2021-05-26 | 2021-11-19 | 阿里巴巴新加坡控股有限公司 | 数据处理方法及装置、电子设备和计算机可读存储介质 |
CN114491399A (zh) * | 2021-12-30 | 2022-05-13 | 深圳云天励飞技术股份有限公司 | 数据处理方法、装置、终端设备及计算机可读存储介质 |
CN114781650B (zh) * | 2022-04-28 | 2024-02-27 | 北京百度网讯科技有限公司 | 一种数据处理方法、装置、设备以及存储介质 |
CN116167431B (zh) * | 2023-04-25 | 2023-08-04 | 之江实验室 | 一种基于混合精度模型加速的业务处理方法及装置 |
CN117540780B (zh) * | 2024-01-09 | 2024-06-25 | 腾讯科技(深圳)有限公司 | 一种神经网络模型的压缩方法和相关装置 |
CN117973485B (zh) * | 2024-03-29 | 2024-06-21 | 苏州元脑智能科技有限公司 | 模型轻量化方法、装置、计算机设备、存储介质及程序产品 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP3293682A1 (en) * | 2016-09-13 | 2018-03-14 | Alcatel Lucent | Method and device for analyzing sensor data |
CN107480770B (zh) * | 2017-07-27 | 2020-07-28 | 中国科学院自动化研究所 | 可调节量化位宽的神经网络量化与压缩的方法及装置 |
CN107944556B (zh) * | 2017-12-12 | 2020-09-08 | 电子科技大学 | 基于块项张量分解的深度神经网络压缩方法 |
CN109766995A (zh) * | 2018-12-28 | 2019-05-17 | 钟祥博谦信息科技有限公司 | 深度神经网络的压缩方法与装置 |
CN110263913A (zh) * | 2019-05-23 | 2019-09-20 | 深圳先进技术研究院 | 一种深度神经网络压缩方法及相关设备 |
-
2019
- 2019-05-23 CN CN201910435515.7A patent/CN110263913A/zh active Pending
- 2019-12-31 WO PCT/CN2019/130560 patent/WO2020233130A1/zh active Application Filing
Cited By (21)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2020233130A1 (zh) * | 2019-05-23 | 2020-11-26 | 深圳先进技术研究院 | 一种深度神经网络压缩方法及相关设备 |
CN110852424A (zh) * | 2019-11-15 | 2020-02-28 | 广东工业大学 | 一种对抗生成网络的处理方法和装置 |
CN113795869B (zh) * | 2019-11-22 | 2023-08-18 | 腾讯美国有限责任公司 | 神经网络模型处理方法、装置和介质 |
CN113795869A (zh) * | 2019-11-22 | 2021-12-14 | 腾讯美国有限责任公司 | 用于神经网络模型压缩的量化、自适应块分区和码本编解码的方法和装置 |
CN111210017A (zh) * | 2019-12-24 | 2020-05-29 | 北京迈格威科技有限公司 | 确定布局顺序及数据处理的方法、装置、设备及存储介质 |
CN111210017B (zh) * | 2019-12-24 | 2023-09-26 | 北京迈格威科技有限公司 | 确定布局顺序及数据处理的方法、装置、设备及存储介质 |
CN113326930A (zh) * | 2020-02-29 | 2021-08-31 | 华为技术有限公司 | 数据处理方法、神经网络的训练方法及相关装置、设备 |
CN113326930B (zh) * | 2020-02-29 | 2024-05-03 | 华为技术有限公司 | 数据处理方法、神经网络的训练方法及相关装置、设备 |
CN111401282A (zh) * | 2020-03-23 | 2020-07-10 | 上海眼控科技股份有限公司 | 目标检测方法、装置、计算机设备和存储介质 |
CN113537485A (zh) * | 2020-04-15 | 2021-10-22 | 北京金山数字娱乐科技有限公司 | 一种神经网络模型的压缩方法及装置 |
WO2021234967A1 (ja) * | 2020-05-22 | 2021-11-25 | 日本電信電話株式会社 | 音声波形生成モデル学習装置、音声合成装置、それらの方法、およびプログラム |
CN111898484A (zh) * | 2020-07-14 | 2020-11-06 | 华中科技大学 | 生成模型的方法、装置、可读存储介质及电子设备 |
WO2022022279A1 (en) * | 2020-07-27 | 2022-02-03 | Huawei Technologies Co., Ltd. | Systems, methods and media for dynamically shaped tensors using liquid types |
US11275671B2 (en) | 2020-07-27 | 2022-03-15 | Huawei Technologies Co., Ltd. | Systems, methods and media for dynamically shaped tensors using liquid types |
WO2022068623A1 (zh) * | 2020-09-30 | 2022-04-07 | 华为技术有限公司 | 一种模型训练方法及相关设备 |
CN112184557A (zh) * | 2020-11-04 | 2021-01-05 | 上海携旅信息技术有限公司 | 超分辨率网络模型压缩方法、***、设备和介质 |
WO2022141189A1 (zh) * | 2020-12-30 | 2022-07-07 | 南方科技大学 | 一种循环神经网络精度和分解秩的自动搜索方法和装置 |
CN114692816B (zh) * | 2020-12-31 | 2023-08-25 | 华为技术有限公司 | 神经网络模型的处理方法和设备 |
CN114692816A (zh) * | 2020-12-31 | 2022-07-01 | 华为技术有限公司 | 神经网络模型的处理方法和设备 |
WO2023058969A1 (en) * | 2021-10-05 | 2023-04-13 | Samsung Electronics Co., Ltd. | Machine learning model compression using weighted low-rank factorization |
CN116187401A (zh) * | 2023-04-26 | 2023-05-30 | 首都师范大学 | 神经网络的压缩方法、装置、电子设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
WO2020233130A1 (zh) | 2020-11-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110263913A (zh) | 一种深度神经网络压缩方法及相关设备 | |
CN110473141B (zh) | 图像处理方法、装置、存储介质及电子设备 | |
EP3735658A1 (en) | Generating a compressed representation of a neural network with proficient inference speed and power consumption | |
CN106127297B (zh) | 基于张量分解的深度卷积神经网络的加速与压缩方法 | |
CN109165660B (zh) | 一种基于卷积神经网络的显著物体检测方法 | |
CN109087258B (zh) | 一种基于深度学习的图像去雨方法及装置 | |
CN113221969A (zh) | 一种基于物联网感知的双特征融合的语义分割***及方法 | |
CN108628807A (zh) | 浮点数矩阵的处理方法、装置、设备及计算机可读存储介质 | |
WO2020074989A1 (en) | Data representation for dynamic precision in neural network cores | |
CN110298446B (zh) | 面向嵌入式***的深度神经网络压缩和加速方法及*** | |
CN108415888A (zh) | 用于神经网络语言模型的压缩方法和*** | |
CN111831844A (zh) | 图像检索方法、图像检索装置、图像检索设备及介质 | |
KR20210126102A (ko) | 신경망 모델 압축/압축해제를 위한 방법 및 장치 | |
CN110751265A (zh) | 一种轻量型神经网络构建方法、***及电子设备 | |
CN114973049A (zh) | 一种统一卷积与自注意力的轻量视频分类方法 | |
CN111768466A (zh) | 图像填充方法、装置、设备及存储介质 | |
US10354644B1 (en) | System and method for encoding data in a voice recognition integrated circuit solution | |
US20210279594A1 (en) | Method and apparatus for video coding | |
CN112017159B (zh) | 一种遥感场景下的地面目标真实感仿真方法 | |
CN115953651A (zh) | 一种基于跨域设备的模型训练方法、装置、设备及介质 | |
WO2023159820A1 (zh) | 图像压缩方法、图像解压缩方法及装置 | |
CN112532251A (zh) | 一种数据处理的方法及设备 | |
CN115273135A (zh) | 基于DC-Res2Net和特征融合注意力模块的手势图像分类方法 | |
CN112580772B (zh) | 卷积神经网络的压缩方法及装置 | |
Chung et al. | Filter pruning by image channel reduction in pre-trained convolutional neural networks |
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 | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20190920 |
|
RJ01 | Rejection of invention patent application after publication |