输入密集与图层无效形状不兼容

问题描述

我的模型有这个简单的层

states = Input(shape=(len(inputFinal),))

这应该生成(328,None)但不知道为什么当我检查倒置时

model.inputs
[<tf.Tensor 'input_1:0' shape=(None,328) dtype=float32>]

当我尝试将数据传递给模型时,层不正确

value.shape
(328,)

model.predict(value)

Input 0 of layer dense is incompatible with the layer: expected axis -1 of input shape to have value 328 but received input with shape [None,1]

我找不到问题了,有什么主意吗?

解决方法

指定输入形状时,只需指定特征数量。 Keras不想知道样本数量,因为它可以接受任何大小。因此,当您这样做时:

states = Input(shape=(len(inputFinal),))

您要告诉Keras,您的输入有328列,事实并非如此。当您输入输入时,Keras会意识到这一点,然后崩溃。

如果inputFinal是2D NumPy数组,请尝试:

Input(shape=inputFinal.shape[1:])