在之前的文章中(卷积神经网络中为什么会有矩阵乘法?),我们提到的情形是只有一个通道的输入数据,相应的,也就只有一个与之对应的Kernel。如果是多通道输入数据,是否依然存在矩阵乘法呢?我们看下面的例子。
在这个例子中,有3个输入通道(RGB),每个通道有与之对应的Kernel,此时的卷积运算并没有本质的变化,就每个通道而言,仍然是二维滤波器。将每个通道的输出结果对应元素相加即为多通道情形下的卷积结果。这里可以设置偏置(Bias)。图中的偏置值为1。此时,输入为多通道,输出为单通道。
进一步扩展,如果每个通道有多个与之对应的Kernel,会是什么情形呢?如下图所示。图中,每个通道有4个Kernel。从而,最终输出有4个通道。输出每个通道的计算方式与上图保持一致。
基于以上两图,我们不难得出如下结论:
输入通道与Kernel通道保持一致,例如上图中有3个输入通道和3个Kernel通道。
输出通道个数与每个Kernel通道内的滤波器个数一致,例如上图中每个Kernel通道内有4个滤波器,故输出通道个数为4。
每个输出通道所包含的元素个数与滑窗个数一致。这再次证明多通道本质上与单通道的卷积运算是一致的。
现在,我们对输入通道数据进行重组,如下图所示方式。取出每个通道滑窗内的数据,排成一列,最终构成一个矩阵。
紧接着,将每个通道对应的Kernel也进行重组,如下图所示方式。最终形成Kernel矩阵。与输入通道数据重组不同的是这里将Kernel系数按行排列,每个Kernel通道内滤波器的个数决定了行数。
至此,输入数据和Kernel系数都被重组为矩阵,重组的目的就是为了满足矩阵运算的需求,这样就可以按照矩阵乘法计算卷积运算了。
责任编辑:lq
-
滤波器
+关注
关注
160文章
7694浏览量
177392 -
神经网络
+关注
关注
42文章
4732浏览量
100395 -
矩阵
+关注
关注
0文章
418浏览量
34468
原文标题:再谈卷积神经网络中为什么会有矩阵乘法
文章出处:【微信号:Lauren_FPGA,微信公众号:FPGA技术驿站】欢迎添加关注!文章转载请注明出处。
发布评论请先 登录
相关推荐
评论