欢迎访问 生活随笔!

凯发k8官方网

当前位置: 凯发k8官方网 > 人工智能 > caffe >内容正文

caffe

caffe中的卷积实现 -凯发k8官方网

发布时间:2024/7/23 caffe 24 豆豆
凯发k8官方网 收集整理的这篇文章主要介绍了 caffe中的卷积实现 小编觉得挺不错的,现在分享给大家,帮大家做个参考.

https://www.zhihu.com/question/28385679

https://github.com/yangqing/caffe/wiki/convolution-in-caffe:-a-memo

作者贾扬清亲自解释了这个问题。caffe框架是他在研究生毕业毕业前两个月的时间写的,自然有一些缺点(占用内存方面)。其实卷积是很难优化的,因为我们一般是在单通道的图像和单个滤波器之间进行卷积,但是深度学习中是多核多通道卷积。

对通道为c,高和宽分别为h、w的图像,在每一个位置上,划分一个kxk大小的patch,算上通道数,那就是cxkxk大小的patch,一共有hxw个patch:

这样就完成了由图像到矩阵的转化,这种操作在matlab中叫做im2col。需要注意的是,因为每一个像素点都对应一个patch,可以看成patch区域在图像上滑动,滑动的过程是有重叠的,转化所得的矩阵大小大于原图像。

与此同时,我们也要将滤波器转化成矩阵形式。


这样,卷积就可以转化为矩阵乘法(gemm in blas)问题,调用gemm(generalized matrix multiplication)对两矩阵内积。blas有许多性能优良的库,而且由分销商intel和nvidia针对所有平台进行优化。

以上,就是作者上学期间采用的一种讨巧的方法,将问题转换成更加简单的,已经可以解决的问题。在当时取得了很好的效果,直到alex krizhevsky基于对gpu的深刻理解,在cuda-convert中又取得了巨幅的提升,这种方法被碾压,这就是另外一个故事了。https://code.google.com/p/cuda-convnet2/

总结

以上是凯发k8官方网为你收集整理的caffe中的卷积实现的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得凯发k8官方网网站内容还不错,欢迎将凯发k8官方网推荐给好友。

  • 上一篇:
  • 下一篇:
网站地图