侵权投诉

如何通过张量的降维来降低卷积计算量(CP分解)

FPGA开发圈 2019-11-28 17:15 次阅读

引言

在CNN网络中卷积运算占据了最大的计算量,压缩卷积参数可以获得显著的硬件加速器的性能提升。在即将介绍的这篇论文中,作者就是通过张量的降维来降低卷积计算量的。作者通过CP分解将一个4D张量分解成多个低维度的张量,并且最后通过微调参数来提升网络精度。

1 原理

CNN卷积参数可以看做一个4D的张量。其中两个维度是对应一幅feature map的两个空间方向。一个方向对应输入feature map,另外一个维度为输出feature map方向。一个全卷积运算是对应每个输入feature map卷积求和,如图所示。通过CP分解,一个全卷积运算变成了连续多步一维卷积运算。图中S维度是多个输入feature map堆叠成的,dxd是feature map的空间维度。卷积核在feature map两个空间维度进行划窗运动,图中一个绿色方块内的结果求和得到一幅输出feature map中的一个像素点。T是多幅输出feature map堆叠成的。

那么这样的分解如何来保证和全卷积结果的不变呢?其实是要保证kernel不变就行了。然后再通过一些数学变化将全卷积变为连续多步卷积。已知一个二维矩阵可以进行如下分解:

其中R是矩阵A的秩。计算量的降低取决于A的秩,秩越小,那么就可以被分解为更小矩阵,计算量降低的就越大。如果A的秩为其维度d,那么如果保持分解后秩不变,那么计算量是不能减小的,所以关键是看矩阵的秩的大小,秩的大小反映了网络的信息冗余度。将之推广到多维张量,有:

假设A张量维度为n1xn2x…nd,那么通过上述分解,参数量就大为降低,为(n1+n2+…nd)R个。

对于二维矩阵,可以使用SVD方式来计算分解的矩阵。但是当维数大于2,则无法使用这种方式了。作者选择了非线性最下平方差(non-linear least squares)方法,其通过降低L2项来获得分解矩阵。NLS方法计算的1维分解矩阵精度更好。

4D张量分解了,那么如何来将卷积计算分解为多步连续运算呢?一个全卷积运算表示为:

K为卷积核,维度为dxdxSxT。经过分解后卷积核为:

然后通过重新排序可以得到连续多步卷积运算:

2 实验

字符识别上,作者使用4层卷积网络,在不进行CP降维时,识别精度为91.2%。通过CP降维后,精度降低了1%,但是识别速率提升了8.5倍。

在ALEXNET网络上,CP降维实现了6.6倍速率提升,但是精度只降低了1%。

结论

CP分解降低了权重的秩,进而降低了计算量以及参数总量。多适用于小型的分类网络。

原文标题:【网络压缩四】CP分解

文章出处:【微信号:FPGA-EETrend,微信公众号:FPGA开发圈】欢迎添加关注!文章转载请注明出处。

收藏 人收藏
分享:

评论

相关推荐

深度学习基本概念总结

卷积神经网络(CNN) 具有局部互联、权值共享、下采样(池化)和使用多个卷积层的特点。
的头像 汽车玩家 发表于 04-04 17:45 143次 阅读
深度学习基本概念总结

图像卷积操作的两点注意事项

图像卷积操作(convolution),或称为核操作(kernel),是进行图像处理的一种常用手段,
的头像 汽车玩家 发表于 03-13 16:44 295次 阅读
图像卷积操作的两点注意事项

连续时间系统的时域分析的详细资料说明

本文档的主要内容详细介绍的是连续时间系统的时域分析的详细资料说明。
发表于 03-06 08:00 65次 阅读
连续时间系统的时域分析的详细资料说明

数字信号处理教程之卷积与滤波的详细课件说明

本文档的主要内容详细介绍的是数字信号处理教程之卷积与滤波的详细课件说明包括了:1 卷积基础,2 差分....
发表于 11-13 14:48 116次 阅读
数字信号处理教程之卷积与滤波的详细课件说明

找不到3d硬件加速器怎么办

  1、显卡驱动没有装,或装的不正确。如果没有装,请正确安装显卡驱动即可,最好是由官方发布的。装的不正确是因为,类似Wind...
发表于 08-21 09:04 593次 阅读
找不到3d硬件加速器怎么办

如何将硬件加速器关闭?

硬件加速是指在计算机中通过把计算量非常大的工作分配给专门的硬件来处理以减轻中央处理器的工作量之技术。....
的头像 发烧友学院 发表于 08-15 15:29 1763次 阅读
如何将硬件加速器关闭?

详细解读高斯滤波---卷积和积分运算

那可是天文数字,而且这里面绝大部分的矩形有重叠,重叠意味着什么?在算求和的时候有重复性的工作,其实我....
的头像 ADAS 发表于 08-09 16:09 1306次 阅读
详细解读高斯滤波---卷积和积分运算

卷积学习与图像识别的技术发展

自20世纪80年代兴起的神经网络热潮已经退去,神经网络再次成为常规科学。托马斯·库恩(Thomas ....
的头像 新机器视觉 发表于 06-11 09:08 1118次 阅读
卷积学习与图像识别的技术发展

详解卷积神经网络卷积过程

卷积过程是卷积神经网络最主要的特征。然而卷积过程有比较多的细节,初学者常会有比较多的问题,这篇文章对....
的头像 电子发烧友网工程师 发表于 05-02 15:39 3211次 阅读
详解卷积神经网络卷积过程

卷积神经网络的在人工智能中的发展

AlexNet发表的2012年是具有里程碑意义的一年,自那以后,计算机视觉领域的所有突破几乎都来自深....
发表于 02-05 09:48 1011次 阅读
卷积神经网络的在人工智能中的发展

DPCNN,究竟是多么牛逼的网络呢?

好啦,看似问题都解决了,目标成功达成。剩下的我们就只需要重复的进行等长卷积+等长卷积+使用一个siz....
的头像 电子发烧友网工程师 发表于 01-28 09:22 2942次 阅读
DPCNN,究竟是多么牛逼的网络呢?

信号与系统的教程课件资料免费下载

本文档的主要内容详细介绍的是信号与系统的教程课件资料免费下载主要内容包括了:1.信号的描述、分类、运....
发表于 11-26 08:00 281次 阅读
信号与系统的教程课件资料免费下载

线性滤波与卷积的基本概念及边界补充方法

线性滤波可以说是图像处理最基本的方法,它可以允许我们对图像进行处理,产生很多不同的效果。
的头像 Imagination Tech 发表于 11-08 15:29 2544次 阅读
线性滤波与卷积的基本概念及边界补充方法

浅谈卷积运算在数字信号处理的应用与优势

在数字信号处理当中,常用到了运算内容有:卷积运算、差分方程计算、功率谱密度计算、复频率变换及模数和数....
发表于 10-29 10:23 2253次 阅读
浅谈卷积运算在数字信号处理的应用与优势

信号与系统教程之连续时间系统的时域分析

本文档的主要内容详细介绍的是信号与系统教程之连续时间系统的时域分析主要内容包括了:1 。系统响应的经....
发表于 10-29 08:00 322次 阅读
信号与系统教程之连续时间系统的时域分析

浅析卷积的本质及物理意义

卷积这个东东是“信号与系统”中论述系统对输入信号的响应而提出的。因为是对模拟信号论述的,所以常常带有....
的头像 传感器技术 发表于 09-27 11:33 3559次 阅读
浅析卷积的本质及物理意义

MATLAB的Sobel图像边缘灰度值检测算法的详细公式和实现资料概述

图像边缘就是图像灰度值突变的地方,也就是图像在该部分的像素值变化速度非常之快,就比如在坐标轴上一条曲....
的头像 电子发烧友网工程师 发表于 08-26 09:47 3414次 阅读
MATLAB的Sobel图像边缘灰度值检测算法的详细公式和实现资料概述

1*1卷积核是什么?如何理解1*1卷积的原理?

我们都知道,卷积核的作用在于特征的抽取,越是大的卷积核尺寸就意味着更大的感受野,当然随之而来的是更多....
的头像 Imagination Tech 发表于 08-24 11:10 9691次 阅读
1*1卷积核是什么?如何理解1*1卷积的原理?

什么是离散信号?离散信号与系统的时域分析,信号与系统电子课件五免费下载

连续系统:传输和处理连续时间信号的系统。 离散系统:传输和处理离散时间信号的系统。 例:数字计算....
发表于 08-23 08:00 403次 阅读
什么是离散信号?离散信号与系统的时域分析,信号与系统电子课件五免费下载

卷积的本质是什么?有什么物理意义?幽默的给你解释

分三个部分来理解: 1.信号的角度 2.数学家的理解(外行) 3.与多项式的关系卷积这个东东是....
的头像 传感器技术 发表于 07-29 10:23 12384次 阅读
卷积的本质是什么?有什么物理意义?幽默的给你解释

图像处理中滤波与卷积有什么区别?

图像处理中滤波和卷积是常用到的操作。两者在原理上相似,但是在实现的细节上存在一些区别。这篇博文主要叙....
的头像 Imagination Tech 发表于 07-09 10:30 3058次 阅读
图像处理中滤波与卷积有什么区别?

几幅图弄清DFT、DTFT和DFS的关系

大家好,又到了每日学习的时间了,今天咱们来聊一聊数字信号处理中DFT、DTFT和DFS的关系,咱们通....
的头像 FPGA学习交流 发表于 06-11 15:15 5750次 阅读
几幅图弄清DFT、DTFT和DFS的关系

一维卷积、二维卷积、三维卷积具体应用

由于计算机视觉的大红大紫,二维卷积的用处范围最广。因此本文首先介绍二维卷积,之后再介绍一维卷积与三维....
发表于 05-08 10:29 991次 阅读
一维卷积、二维卷积、三维卷积具体应用

一维与三维卷积流程及在机器视觉中的应用

由于计算机视觉的大红大紫,二维卷积的用处范围最广。本文将介绍二维卷积、一维卷积与三维卷积的具体流程,....
的头像 Imagination Tech 发表于 05-03 09:08 4152次 阅读
一维与三维卷积流程及在机器视觉中的应用

Veloce仿真环境下的SoC端到端硬件加速器功能验证

很多人认为硬件加速器无非是一种速度更快的仿真器而已。毫无疑问,由于硬件加速器使用物理硬件进行仿真,使....
发表于 03-28 14:50 1489次 阅读
Veloce仿真环境下的SoC端到端硬件加速器功能验证

大规模网络芯片设计项目团队转用硬件加速器

以最新的以太网交换机 SoC 设计的验证计划为例,该设计包含 128 端口和 1/10/40/100....
发表于 03-27 11:27 629次 阅读
大规模网络芯片设计项目团队转用硬件加速器

利用硬件加速器提高仿真速度时的验证平台考虑

正确利用硬件加速器对逻辑仿真进行加速是非常有效的。如果知道某项设计在仿真中的运行速度(用每秒仿真了多....
发表于 03-05 10:13 505次 阅读
利用硬件加速器提高仿真速度时的验证平台考虑

什么是卷积_卷积的意义

卷积的定义 卷积是两个变量在某范围内相乘后求和的结果。 如果卷积的变量是序列x(n)和h(n),则卷....
发表于 11-28 17:54 11326次 阅读
什么是卷积_卷积的意义

添加硬件加速器可以加快处理器的正弦计算

如果修改软件不能实现所需速度,那么你可能顺理成章的想到在你的设计中加入硬件加速模块。 作 有很多种算....
发表于 11-24 18:38 945次 阅读
添加硬件加速器可以加快处理器的正弦计算

实验一 连续时间系统卷积的数值计算

通过程序设计来实现连续时间系统卷积的计算,更深刻的理解卷积的意义。
发表于 05-23 18:21 247次 阅读
实验一 连续时间系统卷积的数值计算

计算线性卷积

发表于 06-25 21:29 197次 阅读
计算线性卷积

卷积相关PPT课件

发表于 10-19 22:59 545次 阅读
卷积相关PPT课件

XAPP731-用于实现RAID6奇偶性的硬件加速器

A Redundant Array of Independent Disks (RAID) arra....
发表于 02-16 15:35 781次 阅读
XAPP731-用于实现RAID6奇偶性的硬件加速器

基于FPGA Nios-Ⅱ的矩阵运算硬件加速器设计

针对复杂算法中矩阵运算量大, 计算复杂, 耗时多, 制约算法在线计算性能的问题, 从硬件实现角度, ....
发表于 12-06 17:30 805次 阅读
基于FPGA Nios-Ⅱ的矩阵运算硬件加速器设计

基于FPGA的高速卷积的硬件设计实现

  在数字信号处理领域,离散时间系统的输出响应,可以直接由输入信号与系统单位冲激响应的离散卷积得到。....
发表于 12-02 10:46 3158次 阅读
基于FPGA的高速卷积的硬件设计实现