Bellow是Keras文档中的一部分示例代码。看起来第一个卷积接受具有3个颜色通道的256x256图像。它有64个输出过滤器(我认为这些与我在其他地方阅读过的功能图相同,有人可以为我确认这一点)。令我困惑的是输出大小为(None,64,256,256)。我希望它是(None,64 * 3,256,256),因为它将需要对每个颜色通道进行卷积。我想知道的是Keras如何处理色彩通道。在通过卷积之前,这些值是否一起取平均值(转换为灰度)?
# apply a 3x3 convolution with 64 output filters on a 256x256 image:
model = Sequential()
model.add(Convolution2D(64, 3, 3, border_mode='same', input_shape=(3, 256, 256)))
# now model.output_shape == (None, 64, 256, 256)
# add a 3x3 convolution on top, with 32 output filters:
model.add(Convolution2D(32, 3, 3, border_mode='same'))
# now model.output_shape == (None, 32, 256, 256)
具有3个输入通道的大小为3 * 3的滤波器由3 * 3 * 3个参数组成,因此每个通道的卷积核的权重是不同的。
它总结了每个通道的卷积结果(可能与一个偏差项一起)以获得输出。因此输出形状与输入通道的数量无关,例如(None,64,256,256),而不是(None,64 * 3,256,256)。
我不确定100%,但是我认为功能映射是指将一个这样的过滤器应用于输入(例如256 * 256矩阵)的输出。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句