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

文档序号:9433180阅读:2242来源:国知局
基于参数量化的深度卷积神经网络的加速与压缩方法
【技术领域】
[0001] 本发明涉及图像处理技术,特别是涉及一种基于参数量化的深度卷积神经网络的 加速与压缩方法。
【背景技术】
[0002] 近几年来,深度卷积神经网络在计算机视觉、语音处理、机器学习等众多领域取得 了巨大的突破,显著地提高了机器算法在图像分类、目标检测和语音识别等多个任务中的 性能,并且在互联网、视频监控等行业中得到了广泛应用。
[0003] 深度卷积神经网络的训练过程,是基于大规模的含有人工标注信息的数据集,对 网络参数进行学习与调整。一般而言,大容量、高复杂度的深度卷积网络可以更全面地对数 据进行学习,从而取得更好的性能指标。但是,随着网络层数与参数数量的增加,运算和存 储代价都会大幅增长,因此目前来说,卷积神经网络的训练与测试大多只能在高性能的计 算集群上进行。
[0004] 另一方面,移动互联网技术在近年取得了长足进步,在实际生活中的应用也越来 越广泛。在移动互联网的应用场景下,用户所使用的设备,例如手机或者平板电脑,其运算 与存储能力都十分有限。虽然深度卷积神经网络可以在计算集群上进行训练,但是在移动 平台应用场景下,网络模型的测试过程仍需要在移动设备上进行,这就提出了两个挑战:如 何降低卷积神经网络的测试用时,以及如何压缩网络模型的存储开销。
[0005] 针对卷积神经网络的加速与压缩问题,已有一些有效的算法被提出。这些算法是 将网络中的某一层分解为复杂度较低的若干层的组合,以达到降低运算或者存储代价的目 的。然而,这些算法并没有同时考虑卷积神经网络的加速和压缩,并且只在网络的少数几层 上进行了测试,对于整个网络模型的加速或压缩效果还有待研究。

【发明内容】

[0006] 本发明提供的基于参数量化的深度卷积神经网络的加速与压缩方法,可以实现深 度卷积神经网络的加速与压缩。
[0007] 根据本发明的一方面,提供一种基于参数量化的深度卷积神经网络的加速与压缩 方法,包括:对深度卷积神经网络的参数进行量化得到多个子码本和所述多个子码本分别 对应的索引值;根据所述多个子码本和所述多个子码本分别对应的索引值获取所述深度卷 积神经网络的输出的特征图。
[0008] 本发明实施例提供的基于参数量化的深度卷积神经网络的加速与压缩方法,通过 对深度卷积神经网络的参数进行量化得到多个子码本和多个子码本分别对应的索引值,根 据多个子码本和多个子码本分别对应的索引值获取深度卷积神经网络的输出的特征图,从 而可以实现深度卷积神经网络的加速与压缩。
【附图说明】
[0009] 图1为本发明实施例提供的基于参数量化的深度卷积神经网络的加速与压缩方 法流程图;
[0010] 图2为本发明实施例提供的深度卷积神经网络的图像分类过程示意图;
[0011] 图3为本发明实施例提供的全连接层的参数量化过程示意图;
[0012] 图4为本发明实施例提供的全连接层的高效运行过程示意图。
【具体实施方式】
[0013] 下面结合附图对本发明实施例提供的基于参数量化的深度卷积神经网络的加速 与压缩方法进行详细描述。
[0014] 图1为本发明实施例提供的基于参数量化的深度卷积神经网络的加速与压缩方 法流程图。
[0015] 参照图1,在步骤S101,对深度卷积神经网络的参数进行量化得到多个子码本和 所述多个子码本分别对应的索引值。
[0016] 在步骤S102,根据所述多个子码本和所述多个子码本分别对应的索引值获取所述 深度卷积神经网络的输出的特征图。
[0017] 这里,深度卷积神经网络包括多个卷积层或多个全连接层,将多个卷积层的参数 或多个全连接层的参数进行量化,并根据量化后的多个卷积层或多个全连接层获取各自对 应的输出的特征图,具体可参照图2。
[0018] 进一步地,所述深度卷积神经网络为多个卷积层,所述对深度卷积神经网络的参 数进行量化得到多个子码本和所述多个子码本分别对应的索引值包括,重复执行以下处 理,直至多个卷积层都被遍历:
[0019] 将所述卷积层的参数分割成M组,每组包括多个第一参数子向量,其中,M为正整 数;
[0020] 对所述每组的多个第一参数子向量分别进行K均值聚类得到所述每组对应的第 一子码本,所述第一子码本包括多个第一码字;
[0021] 分别计算所述多个第一参数子向量与所述多个第一码字的欧氏距离;
[0022] 获取所述欧氏距离最小的第一参数子向量和第一码字,并记录所述欧氏距离最小 的第一码字的索引值。
[0023] 这里,卷积层的参数可以是,但不限于,具体为WkXHkXC sXCt的四阶数组,其中Wk是卷积核的宽度,Hk是卷积核的高度,C s是输入的第一特征图的通道数,C ,是输出的第一特 征图的通道数。将Cs所在维度均匀地分为M组,每组的维度为[Cs/M](若维度不足,则在最 后一组中补零),这样就可以将卷积层的参数分为M组,每组包含Wk X Hk X Ct个第一参数子 向量。
[0024] 对每组的Wk X Hk X Ct个第一参数子向量分别进行K均值聚类得到每组对应的第一 子码本,其中,K为正整数,K为第一子码本中的第一码字的数量。
[0025] 进一步地,所述深度卷积神经网络为多个全连接层,所述对深度卷积神经网络的 参数进行量化得到多个子码本和所述多个子码本分别对应的索引值包括,重复执行以下处 理,直至多个全连接层都被遍历:
[0026] 将所述全连接层的参数分割成M组,每组包括多个第二参数子向量;
[0027] 对所述多个第二参数子向量分别进行K均值聚类得到所述每组对应的第二子码 本,所述第二子码本包括多个第二码字;
[0028] 分别计算所述多个第二参数子向量与所述多个第二码字的欧氏距离;
[0029] 获取所述欧氏距离最小的第二参数子向量和第二码字,并记录所述欧氏距离最小 的第二码字的索引值。
[0030] 这里,全连接层参数可以是,但不限于,具体为CtXCs的矩阵,其中C s是输入层的 节点数,Ct是输出层的节点数。将Cs所在维度均匀地分为M组,每段的维度为[Cs/M](若维 度不足,则在最后一段中补零),这样就可以将全连接层的参数分为M组,每组包含Ct个第 二参数子向量。
[0031] 在划分完的M组第二参数子向量中,分别进行K均值聚类获取每组对应的第二子 码本,其中,K为正整数,K为第二子码本中的第二码字的数量。
[0032] 进一步地,所述深度卷积神经网络为所述多个卷积层,所述根据所述多个子码本 和所述多个子码本分别对应的索引值获取所述深度卷积神经网络的输出的特征图包括,重 复执行以下处理,直至所述多个卷积层都被遍历:
[0033] 输入第一特征图;
[0034] 将所述第一特征图分割为M组,所述每组包括多个第一特征子向量;
[0035] 将所述多个第一特征子向量分别与所述每组对应的第一子码本中的多个第一码 字进行内积运算得到多个第一运算结果,并将所述多个第一运算结果存储在第一查找表 中;
[0036] 将所述多个第一运算结果进行求和得到输出的第一特征图。
[0037] 这里,输入第一特征图,第一特征图可以是,但不限于,具体SWsXHsXC s的三阶数 组,其中,Ws是输入特征图的宽度,H s是输入特征图的高度。将C s所在维度均匀地分为M组, 每组的维度为[Cs/M](若维度不足,则在最后一段中补零),这样就可以将卷积层中的第一 特征图分为M组,每组包含Ws X Hs个第一特征子向量。
[0038] 对于卷积层,输出的第一特征图中的
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1