上QQ阅读APP看书,第一时间看更新
3.1.4 三维数据的卷积运算
之前卷积运算的例子大多是以长、宽方向的二维数据为对象的,但是一般的图像都是以RGB组成的三维数据(包括宽、高以及通道数)。通道方向有多个卷积核的时候,会按通道进行输入特征图和卷积核的卷积运算,并将结果相加,从而得到输出结果(需要注意的是,在三维数据的卷积运算中,输入特征图和卷积核的通道数必须保持一致,即均为3,通道的卷积核尺寸可以设置为任意值,但是同一个通道内的卷积核尺寸必须保持一致),如图3-11所示。
图3-11 对三维数据进行卷积运算
我们将通道数设定为C(表示通道数)、高度为H(表示Height)、长度为W(表示Width),这样输入特征图的尺寸可以表示为(C,H,W)。卷积核也遵循同样的规则,可以表示为(C,FH,FW),其中F代表的是Filter(卷积核)。在图3-6所示的例子中,我们输出特征图的通道为1,可以表示为(1,OH,OW)。如果希望输出多个通道,该如何做呢?如图3-12所示。
通过应用FN个卷积核(本例为2个),输出特征图也生成了FN个。如果将FN个输出特征图汇集在一起,就得到了尺寸为(FN,OH,OW)的矩阵,将这个矩阵传给下一层网络就是CNN的处理流。
作为四维数据,卷积核的权重数据要按(output_channel,input_channel,height,width)的顺序书写。比如输入通道数为3,尺寸为(3,3)的卷积核有2个的时候,可以写成(2,3,3,3)。
每个通道只有一个偏置,这里偏置的尺寸是(FN,1,1),卷积核输出结果的尺寸是(FN,OH,OW),这两个方块相加的时候,要对卷积核的输出结果(FN,OH,OW)加上与通道数相同的偏置值,最后得到输出特征图(FN,OH,OW)。
图3-12 基于多个卷积核的卷积运算