Что делают слои свертки Keras с цветными каналами?

Bellow – часть примера кода из документации в Keras. Похоже, что первая свертка принимает изображение 256×256 с тремя цветными каналами. Он имеет 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 матрица).