美文网首页
CNN 的计算是如何进行优化的?

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

作者: 捡个七 | 来源:发表于2019-07-27 13:27 被阅读0次

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

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

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

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

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

参考:

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

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

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

相关文章

网友评论

      本文标题:CNN 的计算是如何进行优化的?

      本文链接:https://www.haomeiwen.com/subject/mlterctx.html