一个典型的卷积神经网络(Convolution Neural Network, CNN)的结构如下图所示。
此处CNN的结构是LeNet-5:输入图像为32x32的灰度图像,其中为字母内容;Raw图像经过两层卷积层操作之后,接入一个全连接神经网络,最终通过One-hot编码的标签,对图像进行分类。
由于之前是通过LeNet-5网络和MNIST数据集入门的卷积神经网络,所以,对于卷积层的操作存在有一个非常大的误区:认为对于灰度图时,卷积核的个数,对应于卷基层输出的Feature map的个数;而对于多通道彩色图像,卷积层输出的Feature map应该为$Feature_map_num=卷积核的个数 X 图像的通道数$。
然而实际上,不论输入图像的通道个数,卷积核的个数总是对应于卷积层输出的Feature map的个数,唯一的区别在于单通道图像的卷积核的“通道”为一,而多通道图像的卷积核的“通道”与图像的通道数相同。下面附图一张,以作说明。
由此,解除了此疑惑,在使用tensorflow的conv2d创建卷积神经网络时,就不不必再纠结与如何创建卷积层计算权值向量的维度和在向全连接网络输入时,确定神经元的个数了。
Bingo!!!