在百度飞浆的文档/深度学习基础教程/数字识别中,有个图5.卷积层图片给出了一个卷积计算过程的示例图。我花费了一些时间,才搞明白这个图片。怕以后忘了,赶快做笔记。先把图5截图如下:
按照从上到下从左到右的顺序先解释符号:
输入图的相关符号
原始图像为5x5x3,对周围扩展了一圈(+pad 1)0后,形成7x7x3的输入图像。
输入图像的通道0数据,可视为红色通道的数据。
输入图像的通道1数据,可视为绿色通道的数据。
输入图像的通道2数据,可视为蓝色通道的数据。
卷积层的相关符号
第一组滤波器 W0,对应三个通道有三个不同的卷积核。
第一组滤波器应用于通道0的卷积核
第一组滤波器应用于通道1的卷积核
第一组滤波器应用于通道2的卷积核
第一组滤波器三个通道的共享偏置b0=1
第二组滤波器 W1,对应三个通道有三个不同的卷积核。
第二组滤波器应用于通道0的卷积核
第二组滤波器应用于通道1的卷积核
第二组滤波器应用于通道2的卷积核
第二组滤波器三个通道的共享偏置b1=0
特征图的相关符号
输出特征图
第一组卷积生成的特征图
第二组卷积生成的特征图
计算过程
W0的左上角对着输入图的左上角卷积:
o[0,0,0]=x[0,0,0]*w0[0,0,0]+x[0,1,0]*w0[0,1,0]+x[0,2,0]*w0[0,2,0]+x[1,0,0]*w0[1,0,0]+x[1,1,0]*w0[1,1,0]+x[1,2,0]*w0[1,2,0]+x[2,0,0]*w0[2,0,0]+x[2,1,0]*w0[2,1,0]+x[2,2,0]*w0[2,2,0]
+x[0,0,1]*w0[0,0,1]+x[0,1,1]*w0[0,1,1]+x[0,2,1]*w0[0,2,1]+x[1,0,1]*w0[1,0,1]+x[1,1,1]*w0[1,1,1]+x[1,2,1]*w0[1,2,1]+x[2,0,1]*w0[2,0,1]+x[2,1,1]*w0[2,1,1]+x[2,2,1]*w0[2,2,1]
+x[0,0,2]*w0[0,0,2]+x[0,1,2]*w0[0,1,2]+x[0,2,2]*w0[0,2,2]+x[1,0,2]*w0[1,0,2]+x[1,1,2]*w0[1,1,2]+x[1,2,2]*w0[1,2,2]+x[2,0,2]*w0[2,0,2]+x[2,1,2]*w0[2,1,2]+x[2,2,2]*w0[2,2,2]
+b0
=0*1+0*0+0*0+0*(-1)+1*0+0*0+0*0+0*(-1)+0*1
+0*(-1)+0*(-1)+0*0+0*(-1)+1*(-1)+0*1+0*1+0*0+0*0
+0*1+0*1+0*0+0*0+0*(-1)+2*1+0*1+0*1+0*1
+1
=0+(-1)+2+