三通道编译通过但无法训练

报错


InvalidArgumentError (see above for traceback): Incompatible shapes: [128] vs. [384]。其中384= 128×3
报错原因

    本文为三通道2DCNN,在model的中间通过代码:

outputs = keras.layers.concatenate([inputs_1, inputs_2, inputs_3], axis = 0)

将三个通道的输出结合了在一起,注意是在axis = 0的维度上,这是导致报错的原因所在。下面解释为什么。

    首先,我们假设我们的数据形状为(128,8,8),我们的batch_size = 128,那么model在fit编译的时候,就会根据数据形状的样本数128去编译。但是我们在通道concatenate()之后数据形状变为了(128×3,8,8),这时候就会出现我们看到的这个报错。
修改建议

    outputs = keras.layers.concatenate([inputs_1, inputs_2, inputs_3], axis = 1)

    即把在axis = 0 改为axis = 1,数据形状为:(128,8×3,8)模型搭建。

如果你有问题,欢迎给我留言。

05-28 03:57