前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >CNN 的计算是如何进行优化的?

CNN 的计算是如何进行优化的?

作者头像
caoqi95
发布2019-07-28 14:10:25
1K0
发布2019-07-28 14:10:25
举报

传统的卷积计算方式如上图所示(上半部分),是提取一个个与 Kernel 大小一致的图像区域,然后分别和 Kernel 进行计算得到输出结果。

传统的计算方法复杂且耗费时间。然后就提出了 im2col 的方法对 CNN 的计算过程进行了优化(上图中的下半部分)。简单说就是将输入图像转换成一个大矩阵,kernel 也转换成一个大矩阵,然后将这两个矩阵进行相乘计算就可以。这样做的优点是逻辑简单,实现也简单。缺点就是消耗内存。

再来一幅图,展示计算过程:

这两幅图均来自参考 [1] 的论文,更具体的内容可以查阅论文。

im2col 算法实现过程可以参考 [2] 中的代码,感兴趣的话也可以自己从头跟着实现 CNN 的前向传播和反向传播,收获会很大。

参考:

[1]. High Performance Convolutional Neural Networks for Document Processing

[2]. 手把手带你用Numpy实现CNN <零>

[3]. 在 Caffe 中如何计算卷积?

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2019.07.27 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档