首页> 中国专利> 基于参数量化的深度卷积神经网络的加速与压缩方法

基于参数量化的深度卷积神经网络的加速与压缩方法

摘要

本发明提供的基于参数量化的深度卷积神经网络的加速与压缩方法,包括:对深度卷积神经网络的参数进行量化得到多个子码本和多个子码本分别对应的索引值;根据多个子码本和多个子码本分别对应的索引值获取所述深度卷积神经网络的输出的特征图。本发明可以实现深度卷积神经网络的加速与压缩。

著录项

  • 公开/公告号CN105184362A

    专利类型发明专利

  • 公开/公告日2015-12-23

    原文格式PDF

  • 申请/专利权人 中国科学院自动化研究所;

    申请/专利号CN201510518900.X

  • 发明设计人 程健;吴家祥;冷聪;卢汉清;

    申请日2015-08-21

  • 分类号G06N3/02(20060101);

  • 代理机构北京博维知识产权代理事务所(特殊普通合伙);

  • 代理人方振昌

  • 地址 100080 北京市海淀区中关村东路95号

  • 入库时间 2023-12-18 12:59:36

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2018-02-02

    授权

    授权

  • 2016-01-20

    实质审查的生效 IPC(主分类):G06N3/02 申请日:20150821

    实质审查的生效

  • 2015-12-23

    公开

    公开

说明书

技术领域

本发明涉及图像处理技术,特别是涉及一种基于参数量化的深度 卷积神经网络的加速与压缩方法。

背景技术

近几年来,深度卷积神经网络在计算机视觉、语音处理、机器学习等 众多领域取得了巨大的突破,显著地提高了机器算法在图像分类、目标检 测和语音识别等多个任务中的性能,并且在互联网、视频监控等行业中得 到了广泛应用。

深度卷积神经网络的训练过程,是基于大规模的含有人工标注信息的 数据集,对网络参数进行学习与调整。一般而言,大容量、高复杂度的深 度卷积网络可以更全面地对数据进行学习,从而取得更好的性能指标。但 是,随着网络层数与参数数量的增加,运算和存储代价都会大幅增长,因 此目前来说,卷积神经网络的训练与测试大多只能在高性能的计算集群上 进行。

另一方面,移动互联网技术在近年取得了长足进步,在实际生活中的 应用也越来越广泛。在移动互联网的应用场景下,用户所使用的设备,例 如手机或者平板电脑,其运算与存储能力都十分有限。虽然深度卷积神经 网络可以在计算集群上进行训练,但是在移动平台应用场景下,网络模型 的测试过程仍需要在移动设备上进行,这就提出了两个挑战:如何降低卷 积神经网络的测试用时,以及如何压缩网络模型的存储开销。

针对卷积神经网络的加速与压缩问题,已有一些有效的算法被提出。 这些算法是将网络中的某一层分解为复杂度较低的若干层的组合,以达到 降低运算或者存储代价的目的。然而,这些算法并没有同时考虑卷积神经 网络的加速和压缩,并且只在网络的少数几层上进行了测试,对于整个网 络模型的加速或压缩效果还有待研究。

发明内容

本发明提供的基于参数量化的深度卷积神经网络的加速与压缩方法, 可以实现深度卷积神经网络的加速与压缩。

根据本发明的一方面,提供一种基于参数量化的深度卷积神经网络的 加速与压缩方法,包括:对深度卷积神经网络的参数进行量化得到多个子 码本和所述多个子码本分别对应的索引值;根据所述多个子码本和所述多 个子码本分别对应的索引值获取所述深度卷积神经网络的输出的特征图。

本发明实施例提供的基于参数量化的深度卷积神经网络的加速与压 缩方法,通过对深度卷积神经网络的参数进行量化得到多个子码本和多个 子码本分别对应的索引值,根据多个子码本和多个子码本分别对应的索引 值获取深度卷积神经网络的输出的特征图,从而可以实现深度卷积神经网 络的加速与压缩。

附图说明

图1为本发明实施例提供的基于参数量化的深度卷积神经网络的加速 与压缩方法流程图;

图2为本发明实施例提供的深度卷积神经网络的图像分类过程示意 图;

图3为本发明实施例提供的全连接层的参数量化过程示意图;

图4为本发明实施例提供的全连接层的高效运行过程示意图。

具体实施方式

下面结合附图对本发明实施例提供的基于参数量化的深度卷积神经 网络的加速与压缩方法进行详细描述。

图1为本发明实施例提供的基于参数量化的深度卷积神经网络的加速 与压缩方法流程图。

参照图1,在步骤S101,对深度卷积神经网络的参数进行量化得到多 个子码本和所述多个子码本分别对应的索引值。

在步骤S102,根据所述多个子码本和所述多个子码本分别对应的索引 值获取所述深度卷积神经网络的输出的特征图。

这里,深度卷积神经网络包括多个卷积层或多个全连接层,将多个卷 积层的参数或多个全连接层的参数进行量化,并根据量化后的多个卷积层 或多个全连接层获取各自对应的输出的特征图,具体可参照图2。

进一步地,所述深度卷积神经网络为多个卷积层,所述对深度卷积神 经网络的参数进行量化得到多个子码本和所述多个子码本分别对应的索 引值包括,重复执行以下处理,直至多个卷积层都被遍历:

将所述卷积层的参数分割成M组,每组包括多个第一参数子向量,其 中,M为正整数;

对所述每组的多个第一参数子向量分别进行K均值聚类得到所述每组 对应的第一子码本,所述第一子码本包括多个第一码字;

分别计算所述多个第一参数子向量与所述多个第一码字的欧氏距离;

获取所述欧氏距离最小的第一参数子向量和第一码字,并记录所述欧 氏距离最小的第一码字的索引值。

这里,卷积层的参数可以是,但不限于,具体为Wk×Hk×Cs×Ct的四阶 数组,其中Wk是卷积核的宽度,Hk是卷积核的高度,Cs是输入的第一特 征图的通道数,Ct是输出的第一特征图的通道数。将Cs所在维度均匀地分 为M组,每组的维度为[Cs/M](若维度不足,则在最后一组中补零),这 样就可以将卷积层的参数分为M组,每组包含Wk×Hk×Ct个第一参数子向 量。

对每组的Wk×Hk×Ct个第一参数子向量分别进行K均值聚类得到每组 对应的第一子码本,其中,K为正整数,K为第一子码本中的第一码字的 数量。

进一步地,所述深度卷积神经网络为多个全连接层,所述对深度卷积 神经网络的参数进行量化得到多个子码本和所述多个子码本分别对应的 索引值包括,重复执行以下处理,直至多个全连接层都被遍历:

将所述全连接层的参数分割成M组,每组包括多个第二参数子向量;

对所述多个第二参数子向量分别进行K均值聚类得到所述每组对应的 第二子码本,所述第二子码本包括多个第二码字;

分别计算所述多个第二参数子向量与所述多个第二码字的欧氏距离;

获取所述欧氏距离最小的第二参数子向量和第二码字,并记录所述欧 氏距离最小的第二码字的索引值。

这里,全连接层参数可以是,但不限于,具体为Ct×Cs的矩阵,其中Cs是输入层的节点数,Ct是输出层的节点数。将Cs所在维度均匀地分为M组, 每段的维度为[Cs/M](若维度不足,则在最后一段中补零),这样就可以 将全连接层的参数分为M组,每组包含Ct个第二参数子向量。

在划分完的M组第二参数子向量中,分别进行K均值聚类获取每组对 应的第二子码本,其中,K为正整数,K为第二子码本中的第二码字的数 量。

进一步地,所述深度卷积神经网络为所述多个卷积层,所述根据所述 多个子码本和所述多个子码本分别对应的索引值获取所述深度卷积神经 网络的输出的特征图包括,重复执行以下处理,直至所述多个卷积层都被 遍历:

输入第一特征图;

将所述第一特征图分割为M组,所述每组包括多个第一特征子向量;

将所述多个第一特征子向量分别与所述每组对应的第一子码本中的 多个第一码字进行内积运算得到多个第一运算结果,并将所述多个第一运 算结果存储在第一查找表中;

将所述多个第一运算结果进行求和得到输出的第一特征图。

这里,输入第一特征图,第一特征图可以是,但不限于,具体为 Ws×Hs×Cs的三阶数组,其中,Ws是输入特征图的宽度,Hs是输入特征图 的高度。将Cs所在维度均匀地分为M组,每组的维度为[Cs/M](若维度不 足,则在最后一段中补零),这样就可以将卷积层中的第一特征图分为M 组,每组包含Ws×Hs个第一特征子向量。

对于卷积层,输出的第一特征图中的某一节点的响应值,是输入第一 特征图中对应空间区域内的各个位置上所有节点的响应值构成的向量,与 对应的卷积核中各个位置上所有连接权重构成的向量的内积之和,由公式 (1)可知:

G(ct,wt,ht)=Σwk,hk<vec(Wct,wk,hk),vec(Fws,hs)>---(1)

其中,G是输出的第一特征图,G(ct,wt,ht)为其中第Ct个第一特征图 上空间位置为(wt,ht)的节点,W为卷积核,wk,hk为该卷积核中的第Ct个卷积核,对应输出的第一特征图G中的第Ct个第一特征图中空间位置为 (wk,hk)的参数向量,F是输入的第一特征图,hs表示其中的空间位置 为(ws,hs)的特征向量。

这些内积可以拆分为多个子向量的内积之和,即将多个第一特征子向 量分别与每组对应的第一子码本中的多个第一码字进行内积运算得到多 个第一运算结果,将所述多个第一运算结果进行求和得到输出的第一特征 图,具体由公式(2)可知:并将多个第一运算结果存储在第一查找表中, 第一查找表的大小为Ws×Hs×M×K。

G(ct,wt,ht)=Σwk,hk,m<vec(Wct,wk,hk(m)),vec(Fws,hs(m))>Σwk,hk,m<vec(C(m)(kct,wk,hk(m))),vec(Fws,hs(m))>---(2)

其中,为第一参数子向量中的第m个子向量,为第一特征子向量中的第m个子向量;C(m)为第m个第一子码本, 为第一参数子向量的量化索引值,为对第 一参数子向量进行量化时所用的第一码字。

进一步地,所述深度卷积神经网络为所述多个全连接层,所述根据所 述多个子码本和所述多个子码本分别对应的索引值获取所述深度卷积神 经网络的输出的特征图包括,重复执行以下处理,直至多个全连接层都被 遍历:

输入第二特征图;

将所述第二特征图分割为M组,所述每组包括第二特征子向量;

将所述第二特征子向量与所述每组对应的第二子码本中的多个第二 码字进行内积运算得到多个第二运算结果,并将所述多个第二运算结果存 储在第二查找表中;

将所述多个第二运算结果进行求和得到输出的第二特征图。

这里,输入第二特征图,第二特征图可以是,但不限于,具体为Cs×1 的列向量。将Cs所在维度均匀地分为M组,每段的维度为[Cs/M](若维 度不足,则在最后一段中补零),这样就可以将全连接层中的第二特征图 分为M组,每组包含1个第二特征子向量。

在划分完的M组特征子向量中,分别计算每个特征子向量与对应子码 本中所有码字的内积,保存在一个查找表中。对于全连接层,该查找表的 大小为M×K。

对于全连接层,第二特征图中的某一节点的响应值是第二特征图中所 有节点的响应值构成的向量,与对应的连接权向量的内积,具体由公式(3) 可知:

G(ct)=<vec(Wct),vec(F)>---(3)

其中,G为输出的第二特征图,G(ct)为第ct个节点,W为连接权矩阵, 为该矩阵中的第ct行(对应输出特征图中的第ct个节点),即第二参数 子向量,F为第二特征图,即特征向量。

这个内积可以拆分为多个子向量的内积之和,即将所述第二特征子向 量与所述每组对应的第二子码本中的多个第二码字进行内积运算得到多 个第二运算结果,并将所述多个第二运算结果存储在第二查找表中;将所 述多个第二运算结果进行求和得到输出的第二特征图,具体由公式(4) 可知:

G(ct)=Σm<vec(Wct(m)),vec(F(m))>Σm<vec(cm(kctm)),vec(F(m))>---(4)

其中,为第二参数子向量中的第m个第二参数子向量, F(m)为第二特征子向量F中的第m个第二特征子向量,cm为第m个第二 子码本,为第二参数子向量的量化索引值,为对第二参 数子向量进行量化时所用的第二码字。

对于卷积层和全连接层,近似后的计算过程都可按照参数子向量的量 化索引值,直接从查找表中获得对应的内积值,而不需要重复计算内积, 因此可以显著地降低运算开销,提高运行速度。

以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局 限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可 轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明 的保护范围应以所述权利要求的保护范围为准。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号