Bellow是Keras文档中的一段示例代码。看起来第一个卷积接受具有3个颜色通道的256x256图像。它有64个输出过滤器(我认为这些与我在其他地方读过的功能图相同,有人可以为我确认这个)。令我困惑的是输出大小是(None,64,256,256)。我希望它是(无,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)
答案 0 :(得分:6)
尺寸为3 * 3且具有3个输入通道的滤波器由3 * 3 * 3个参数组成,因此每个通道的卷积核的权重是不同的。
它总结了每个通道的卷积结果(可能与偏置项一起)以获得输出。所以输出形状与输入通道的数量无关,例如(无,64,256,256),而不是(无,64 * 3,256,256)。
我不是100%肯定,但我认为功能图是指将一个这样的过滤器应用于输入的输出(例如256 * 256矩阵)。