卷积神经网络cnn中,卷积核大小一般取1、3、5…,其通道数是与输入通道数相等的,卷积核大小加上通道数成为一个卷积核 C i n ∗ s i z e ∗ s i z e C_{in}*size*size Cin∗size∗size。卷积核数与输出通道数是相等的,且可以自定义,取决于自己的实验设置。
如果一个卷积核会有三个通道,每个卷积核对三个通道的图片卷积然后相加得到一个feature map(此时为一个二维矩阵)。
有一个动态图展示了其中的运算过程。注意:动态图中的卷积步长stride为2。原图出处
图中卷积核Fileter的个数与输出通道数Outout是对应的,每一个输出由多通道卷积累加并加上偏执Bias得到,一个卷积核只有一个偏执值。PyTorch框架对卷积运算Conv2d的描述亦是如此。
特地以PyTorch代码验证一下动图中的运算。关键函数conv2d()参见官方文档
import torch
import torch.nn.functional as F
import numpy
input = torch.FloatTensor([ [[[0, 1, 1, 2, 2], [0, 1, 1,