多通道卷积简明讲解
单输入多输出通道
假设输入为单通道的灰度图像,输出为3通道的卷积操作,则kernel有3个,假设kernel大小为3*3,则Pytorch对应代码为:
conv1 = nn.Conv2d(in_channels=1, out_channels=3, kernel_size=3)
多输入单输出通道
假设输入为2通道(X1, X2),输出为单通道,则kernel有2个(W1, W2),假设大小为3*3,输出为W1 * X2+W2 * X2,Pytorch对应代码为:
conv2 = nn.Conv2d(in_channels=2, out_channels=1, kernel_size=3)
多输入多输出通道
假设输入为2通道,输出为3通道,则kernel有6个,假设大小为3*3,相应的运算如上图所示,这里就不再赘述了,对应的Pytorch代码为:
conv3 = nn.Conv2d(in_channels=2, out_channels=3, kernel_size=3)
总结
从上面的例子中我们可以看出,卷积时kernel的个数由in_channels和out_channels相乘得到。