上海网站建设过程,英特尔网站开发框架,go 网站开发,网络大型游戏排行https://www.zhihu.com/question/28385679
https://github.com/Yangqing/caffe/wiki/Convolution-in-Caffe:-a-memo
作者贾扬清亲自解释了这个问题。Caffe框架是他在研究生毕业毕业前两个月的时间写的#xff0c;自然有一些缺点#xff08;占用内存方面#xff09;。其实卷积…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问题调用GEMMGEneralized Matrix Multiplication对两矩阵内积。BLAS有许多性能优良的库而且由分销商Intel和Nvidia针对所有平台进行优化。
以上就是作者上学期间采用的一种讨巧的方法将问题转换成更加简单的已经可以解决的问题。在当时取得了很好的效果直到Alex Krizhevsky基于对GPU的深刻理解在cuda-convert中又取得了巨幅的提升这种方法被碾压这就是另外一个故事了。https://code.google.com/p/cuda-convnet2/