Керас: выход конкатенации не имеет параметров? - PullRequest
0 голосов
/ 23 января 2020

Я столкнулся со странной проблемой с методом tf.keras.Concatenate () . Я пытался выполнить групповую свертку. Вот код.

# C2: (None, 27, 27, 96) -> (None, 27, 27, 256).

# Split (None, 27, 27, 96) into x2 (None, 27, 27, 48)
pool1_1 = Lambda(lambda x: x[:, :, :, :48])(pool1)
pool1_2 = Lambda(lambda x: x[:, :, :, 48:])(pool1)  

#####################
# Grouped convolution.
#####################
conv2_1 =  Conv2D(filters=128,
                     kernel_size=(5,5),
                     activation='relu',
                     padding='same',
                     name='conv2_1')(pool1_1)

conv2_2 =  Conv2D(filters=128,
                     kernel_size=(5,5),
                     activation='relu',
                     padding='same',
                     name='conv2_2')(pool1_2)

conv2 = Concatenate(name='conv2', axis=-1)([conv2_1, conv2_2])

Вот выход .

Как видите, после объединения у получающегося слоя есть 0 параметр. Я ожидал, что он будет иметь 153728 * 2 параметра. Почему это?

1 Ответ

0 голосов
/ 23 января 2020

Concatenate слои не имеют параметров, а потому, что они не имеют изучаемых весов, операция является просто конкатенацией, обучение в этом слое вообще не выполняется.

Итак, вы предполагаете, что слой должен иметь параметры просто неправильно.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...