0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

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

YCqV_FPGA_EETre 来源:未知 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分解降低了权重的秩,进而降低了计算量以及参数总量。多适用于小型的分类网络。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 卷积
    +关注

    关注

    0

    文章

    95

    浏览量

    18499
  • 硬件加速器
    +关注

    关注

    0

    文章

    42

    浏览量

    12756

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

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

收藏 人收藏

    评论

    相关推荐

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

    由于计算机视觉的大红大紫,二卷积的用处范围最广。本文将介绍二卷积、一
    的头像 发表于 05-03 09:08 6424次阅读
    一<b class='flag-5'>维</b>与三<b class='flag-5'>维</b><b class='flag-5'>卷积</b>流程及在机器视觉中的应用

    张量计算在神经网络加速器中的实现形式

    引言 神经网络中涉及到大量的张量运算,比如卷积,矩阵乘法,向量点乘,求和等。神经网络加速器就是针对张量运算来设计的。一个神经网络加速器通常都包含一个张量计算阵列,以及数据收发控制,共同
    的头像 发表于 11-02 13:52 2871次阅读
    <b class='flag-5'>张量计算</b>在神经网络加速器中的实现形式

    FFT与DFT计算时间的比较及圆周卷积代替线性卷积的有效性实

    实验二 FFT与DFT计算时间的比较及圆周卷积代替线性卷积的有效性实验:一 实验目的1:掌握FFT基2时间(或基2频率)抽选法,理解其提高减少乘法运算次数提高运算速度的原理。2:掌握FFT圆周
    发表于 12-29 21:52

    TensorFlow教程|张量的阶、形状、数据类型

    TensorFlow用张量这种数据结构表示所有的数据.你可以把一个张量想象成一个n的数组或列表.一个张量有一个静态类型和动态类型的
    发表于 07-27 18:30

    卷积神经网络一卷积的处理过程

    inference在设备端上做。嵌入式设备的特点是算力不强、memory小。可以通过对神经网络做量化load和省memory,但有时可能memory还吃紧,就需要对神经网络在memory使用上做进一步优化
    发表于 12-23 06:16

    空时自适应处理研究

    是空时自适应处理(STAP :SPACE-TIME ADAPTIVE PROCESSING)实用化的重要手段,基于杂波协方差矩阵特征分解
    发表于 12-18 16:46 13次下载

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

    通过程序设计实现连续时间系统卷积计算,更深刻的理解卷积的意义。
    发表于 05-23 18:21 1次下载

    基于FPGA的高光谱图像奇异值分解技术

    基于FPGA的高光谱图像奇异值分解技术
    发表于 08-30 15:10 2次下载

    基于张量分解的运动想象脑电分类算法刘华生

    基于张量分解的运动想象脑电分类算法_刘华生
    发表于 03-15 08:00 3次下载

    融合朋友关系和标签的张量分解推荐算法

    张量分解推荐算法。首先,利用高阶奇异值分解( HOSVD)方法对用户一项目一标签三元组信息进行潜在语义分析和多路,分析用户、项目、标签
    发表于 01-07 09:43 0次下载

    基于TTr1SVD的张量奇异值分解

    张量是一种数据组织形式,它的实质是高数组。很多数据都可以被组织成张量的形式,可以考虑将人脸图像组织成张量的形式。人脸识别过程中最重要的一个环节是特征提取,后续的匹配识别过程是建立在它
    发表于 01-16 14:48 1次下载

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

    由于计算机视觉的大红大紫,二卷积的用处范围最广。因此本文首先介绍二卷积,之后再介绍一
    发表于 05-08 10:29 4738次阅读
    一<b class='flag-5'>维</b><b class='flag-5'>卷积</b>、二<b class='flag-5'>维</b><b class='flag-5'>卷积</b>、三<b class='flag-5'>维</b><b class='flag-5'>卷积</b>具体应用

    谷歌宣布开源张量计算库TensorNetwork及其API

    张量是一种多维数组,根据数组元素的顺序按层级分类:例如,普通数是零阶张量(也称为标量),向量可视为一阶张量,矩阵可视为二阶张量等等。低阶张量
    的头像 发表于 06-23 09:54 3611次阅读
    谷歌宣布开源<b class='flag-5'>张量计算</b>库TensorNetwork及其API

    如何使用FPGA实现高光谱图像奇异值分解技术

    了解决高光谱图像数高、数据巨大、实时处理技术实现难的问题,提出了高光谱图像实时处理技术。采用奇异值分解(SVD)算法对高光谱图像进行
    发表于 03-11 16:07 10次下载
    如何使用FPGA实现高光谱图像奇异值<b class='flag-5'>分解</b><b class='flag-5'>降</b><b class='flag-5'>维</b>技术

    浅析卷积与池化的对比

    在学习深度学习中卷积网络过程中,有卷积层,池化层,全连接层等等,其中卷积层与池化层均可以对特征图,本次实验针对控制其他层次一致的情况下,
    的头像 发表于 02-17 14:58 1038次阅读
    浅析<b class='flag-5'>卷积</b><b class='flag-5'>降</b><b class='flag-5'>维</b>与池化<b class='flag-5'>降</b><b class='flag-5'>维</b>的对比