多通道卷积过程如下,每个kernel都应用于前一层的输入通道,以生成一个输出通道。我们对所有kernel重复这个过程以生成多个通道。然后将这些通道汇总在一起,形成一个单独的输出通道。
这里的输入层是一个5×5×3的矩阵,有3个通道。filter是一个3×3×3矩阵。首先,filter中的每个kernel分别应用于输入层中的三个通道。执行三个卷积,得到3个通道,大小为3 x 3。
在5*5矩阵上执行遍历的就是每一个kernel。然后这三个输出的通道相加(元素相加)形成一个单独的通道(3 x 3 x 1)。这个最终的单通道是使用filter(3 x 3 x 3矩阵)对输入层(5 x 5 x 3矩阵)进行卷积的结果。
{% hint style="info" %} 输入层的通道数和filter的kernel数量是相等的 {% endhint %}
等效地,我们可以认为此过程是将3Dfilter矩阵滑过输入层。请注意,输入层和filter的深度相同(通道号=内核号)。3D filter 只能在图像的2个方向,高度和宽度上移动(这就是为什么这种操作被称为2D卷积的原因,尽管3D filter 用于处理3D体积数据)。在每个滑动位置,我们执行逐元素的乘法和加法运算,结果为单个数字。在以下示例中,滑动在水平5个位置和垂直5个位置进行。总的来说,我们得到一个输出通道。
思考2D卷积的另一种方法:将过程视为将3D filter 矩阵滑过输入层。请注意,输入层和过滤器的深度相同(通道号=内核号)。3D filter 只能在图像的2个方向,高度和宽度上移动(这就是为什么这种操作被称为2D卷积的原因,尽管3D滤镜用于处理3D体积数据)。输出是一层矩阵。
现在我们可以看到如何在不同深度的图层之间进行变换。假设输入层具有Din通道,而我们希望输出层具有Dout通道。我们需要做的只是将Dout 个filter应用于输入层。每个filter都有Din个kernel。每个filter提供一个输出通道。应用Dout滤镜后,我们将拥有Dout通道,然后可以将它们堆叠在一起以形成输出层。