本文主要是介绍卷积实现之im2col算法,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
卷积详解之im2col算法
这篇文章是需要和卷积的实现原理一起来看的,两篇文章一个比较宏观,一个比较微观,在卷积的实现原理中我多次提到了im2col算法,这个算法顾名思义,就是把图像转化为列向量,但是这个转换不是整张图的转换,事实上转换出来的图像还是二维的,只是把卷积在特征图的感受野区域给转换成一维的向量。
我们熟悉卷积都知道,感受野区域是个二维的区域,这二维的区域从存储上不是连续的,这样就不便于计算。im2col算法完成的就是通过矩阵乘法来完成卷积核和感受野的对应相乘,这样计算起来就方便多了。
我们可以看到上图中的滑动窗口原理。卷积核在特征图上滑过的一个个窗口,我们称之为感受野,卷积核与感受野发生的运算是对应相乘再相加。比如我们第一次得到的结果就是 1 ∗ 1 + 1 ∗ 0 + 1 ∗ 1 + 0 ∗ 0 + 1 ∗ 1 + 1 ∗ 0 + 0 ∗ 1 + 0 ∗ 0 + 1 ∗ 1 = 4 1*1+1*0+1*1+0*0+1*1+1*0+0*1+0*0+1*1=4 1∗1+1∗0+1∗1+0∗0+1∗1+1∗0+0∗1+0∗0+1∗1=4,这个公式我们可以将它想象成 α 1 w T , α 1 = [ 1 , 1 , 1 , 0 , 1 , 1 , 0 , 0 , 1 ] , w = [ 1 , 0 , 1 , 0 , 1 , 0 , 1 , 0 , 1 ] \alpha_1w^T, \alpha_1=[1,1,1,0,1,1,0,0,1],w=[1,0,1,0,1,0,1,0,1] α1wT,α1=[1,1,1,0,1,1,0,0
这篇关于卷积实现之im2col算法的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!