欢迎来到淘文阁 - 分享文档赚钱的网站! | 帮助中心 好文档才是您的得力助手!
淘文阁 - 分享文档赚钱的网站
全部分类
  • 研究报告>
  • 管理文献>
  • 标准材料>
  • 技术资料>
  • 教育专区>
  • 应用文书>
  • 生活休闲>
  • 考试试题>
  • pptx模板>
  • 工商注册>
  • 期刊短文>
  • 图片设计>
  • ImageVerifierCode 换一换

    基于GEMM实现的CNN底层算法被改?Google提出全新间接卷积算法.docx

    • 资源ID:73274250       资源大小:19.78KB        全文页数:8页
    • 资源格式: DOCX        下载积分:14.8金币
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录   QQ登录  
    二维码
    微信扫一扫登录
    下载资源需要14.8金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    基于GEMM实现的CNN底层算法被改?Google提出全新间接卷积算法.docx

    基于GEMM实现的CNN底层算法被改?Google提出全新间接卷积算法|MaratDukhanfromGoogleResearch译者|凯隐责编|Jane出品|AI科技大本营ID:rgznai100【导读】本文介绍的内容主要聚焦Google的一项最新工作改变基于GEMM实现的CNN底层算法提出的新方法。通用矩阵乘法GeneralMatrixMultiply,GEMM是广泛用于线性代数、机器学习、统计学等各个领域的常见底层算法其实现了根本的矩阵与矩阵相乘的功能因此算法效率直接决定了所有上层模型性能目前主流的卷积算法都是基于GEMM来实现的。来自谷歌的PeterVajda在ECV2019中提出了一种全新的间接卷积算法用于改良GEMM在实现卷积操作时存在的一些缺点进而提升计算效率。通用矩阵乘法GEMM是根底线性代数子程序库BasicLinearAlgebraSubprograms,BLAS中的一个函数。BLAS提供了实现矩阵以及向量根本运算的函数最早于1979年度由C.L.LAWSON提出。BLAS的开展大致可以分为三个阶段levels的历程这以及函数定义出版顺序和算法中多项式的阶数和复杂性有关第一阶段只包含与向量vector有关的运算第二阶段添加了向量与矩阵进展运算的操作第三阶段添加了矩阵与矩阵之间的运算前两个阶段的BLAS都是用于向量处理器的而第三阶段适用于矩阵处理器所以BLAS的开展以及硬件的开展密不可分。GEMM属于第三阶段的算法正式公布于1990年度其迭代更新形式为其中A以及B可以进展转置或者hermitian共轭转置而A、B以及C都可以被忽略bestrided因此实际上这个公式就表示了任意矩阵之间所有可能的加法以及乘法组合例如最根本的A*B可以将置1C置为全0矩阵即可这也是其通用性的表现。由于矩阵乘法相对于向量-向量乘法和向量-矩阵乘法有更低的时间复杂度效率更高因此其广泛用于许多科学任务中与之相关的GEMM算法成为了目前BLAS设计者的主要优化对象。例如可以将A以及B分解为分块矩阵使得GEMM可以递归实现。有关GEMM的详细信息可以参见123。怎样对GEMM进展优化是BLAS相关工作的研究热点。基于GEMM的卷积算法及其缺点卷积神经网络CNN在CV问题中的表现很出色有多种在算法层面对齐进展实现的方法直接卷积算法采用7层循环快速卷积算法利用傅里叶变换来进展卷积和基于GEMM的卷积算法。通过将卷积操作用矩阵乘法来代替进而使用GEMM算法来间接进展卷积操作这使得卷积操作可以在任何包含GEMM的平台上进展并且受益于矩阵乘法的高效性任何针对GEMM的改良以及研究都能有助于卷积运算效率的提升进而进步模型的运算速度因此目前大局部主流的神经网络框架例如Tensorflow、Pytorch以及Caffe都使用基于GEMM的方法来在底层代码中实现卷积。详细的基于GEMM的卷积方法需要借助于im2col或者im2rowbuffer来内存转换使得数据格式知足GEMM算法的输入要求进而将卷积操作转化为GEMM操作然而这个转换经过是一个计算开销以及内存开销都比拟大的经过十分是在输入channel数较小时这个经过会在整个卷积经过中占有很大的比例。简言之就是在卷积经过中每个pixel都会被屡次重复的转换这是不必要的计算开销。因此有许多工作都在对这一经过进展改良本文工作提出了一种改良算法间接卷积算法IndirectConvolutionalgorithm主要有以下两个优点1、去掉了im2row的转换经过这使得算法性能有了宏大的提升upto62%。2、用了一个更小的indirectionbuffer来代替原来的im2rowbuffer。不同于im2rowbuffer的大小随着输入channel数线性增加indirectionbuffer没有这个特性因此indirectionbuffer的内存占用特性非常有利于输入channel数较多时的卷积操作。间接卷积算法原始的GEMM通过如下计算来不断迭代进展矩阵运算操作并输出矩阵其中A是输入张量B是一个常量滤波器C是输出矩阵在传统的im2colGEMM算法中通常1而0原始GEMM操作示意图如下图1原始GEMM操作其中im2colbuffer代表矩阵Afiltertensor代表矩阵BA以及B的乘积就是输出copy表示将输入的张量展开为一个二维矩阵也就是im2colbuffer。可以看到buffer的每一行那么是由固定个数步长的pixel展开成一维的向量组成的这些pixel都在原始tensor中的一个patch内在经过以及filtertensor相乘后由于矩阵行列相乘得到一个元素因此这几个pixel的信息都被整合成了一个值也就是对他们进展了卷积操作。最后在输出矩阵C中行数rows代表输出的像素点个数columns代表输出的channel数。可以看到buffer的columns是以及输入channel数有关的。为了降低buffer带来的开销提出了一种间接矩阵乘法的思想不把输入的tensor直接展开并存储在buffer中而只是在buffer中存放每个pixel在inputtensor的坐标也就是从存数据变成了存地址类似于指针pointer思想这样不管channel数有多少存的地址信息始终只有二维极大的降低了buffer的计算以及存储开销如下列图图2indirectconvolution当然由于buffer中存的是地址信息因此不能直接以及filter做矩阵乘法所以就只能通过在buffer的行间进展循环根据该行的pointer找到对应的输入数据再将输入数据与kernel相乘并与之前循环的结果拼接起来进而间接的实现矩阵乘法因此叫做indirectionbuffer。对于不同的卷积步长只需要将不同步长对应的卷积patch位置确定即可。而对于padding策略将指向填充位置的pointer对应的输入pixel的向量值全部设置为0。间接卷积算法的缺点间接卷积算法作为GEMM-BASEDCNN算法的一种改良能极大的提升计算效率但是存在以下几个限制1.这个算法是为NHWClayout设计的也就是讲应用范围比拟窄不能以及目前的主流方法相比。2.算法适用于前向传播中的卷积操作而在反向传播中作用不大不及基于col2im以及row2im的算法。3.具有以及GEMM一样的缺点在深度小卷积核的卷积操作中效率并不好。实验测试结果EfficientDeepLearningforComputerVision主要聚焦于怎样将深度学习部署到挪动设备上因此本文的工作主要在挪动设备以及挪动芯片上进展测试结果如下可以看到一旦步长增加那么Indirectconvolution带来的性能提升就会明显下降这是因为步长越大在原始的GEMM算法中重复计算的量就会减小因此原始GEMM的性能本身就会提升而indirectconvolution并不受益于步长增加。延伸介绍EfficientDeepLearningforComputerVisionWorkshop目前CV方向主流的研究都着重于怎样提升算法以及模型性能并不是太注重模型速度运算时间内存消耗等与运算资源有关的性能指标这不利于将模型部署在类似于挪动设备等计算资源有限的平台上。CVPR的这个workshop主要关注评估模型的计算开销以及存储开销有关的指标和怎样将其应用到挪动设备上相关团队隶属于谷歌研究院详见4。参考资料 1s:/spatial-lang.org/gemm 2s:/en.wikipedia.org/wiki/Vector_processor 3s:/petewarden/2021/04/20/why-gemm-is-at-the-heart-of-deep-learning/ 4s:/sites.google/view/ecv2019/home原文链接s:/arxiv.org/abs/1907.02129*本文为AI科技大本营编译文章转载请联络1092722531精彩推荐 “只讲技术回绝空谈2019AI开发者大会将于9月6日-7日在北京举行这一届AI开发者大会有哪些亮点一线公司的大牛们都在关注什么AI行业的风向是什么2019AI开发者大会倾听大牛共享聚焦技术理论以及万千开发者共成长。目前大会盲订票限量出售中扫码购票领先一步推荐浏览码农们的血与泪新零售全渠道中台的前世今身腾讯拥抱开源首次公布开源道路图技术研发向分享、复用以及开源迈进你点的每个“在看我都认真当成了喜欢

    注意事项

    本文(基于GEMM实现的CNN底层算法被改?Google提出全新间接卷积算法.docx)为本站会员(安***)主动上传,淘文阁 - 分享文档赚钱的网站仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知淘文阁 - 分享文档赚钱的网站(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于淘文阁 - 版权申诉 - 用户使用规则 - 积分规则 - 联系我们

    本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

    工信部备案号:黑ICP备15003705号 © 2020-2023 www.taowenge.com 淘文阁 

    收起
    展开