Keras:串联输出没有参数?

Keras: output of concatenation has no parameters?

我在使用 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])

这里是 output.

如您所见,拼接后的图层参数为0。我预计它有 153728 * 2 个参数。这是为什么?

Concatenate 层没有参数,因为它们没有任何可学习的权重,操作只是连接,根本没有在该层进行任何学习。

所以你假设层必须有参数是错误的。