Keras 卷积层对颜色通道有什么作用?

What do Keras convolution layers do with color channels?

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 矩阵)。