我正在用这种形状的数据输入数据训练一个模型
input_data.shape
Out[51]: (3145, 11)
这个output_data
output_data.shape
Out[53]: (3145,)
然后我用这段代码创建一个拟合模型
model = tf.keras.models.Sequential()
model.add(tf.keras.layers.Input(shape=(11,)))
model.add(tf.keras.layers.Dense(1, activation='sigmoid'))
model.compile(loss = 'binary_crossentropy', optimizer='rmsprop', metrics=['accuracy'])
model.fit(x = input_data, y = output_data, epochs=10, verbose=1)
model.save(tensor_model)
这和预期的一样,适合和运行。然而,当我试图用这个形状的数据做预测时
to_be_prdicted.shape
Out[57]: (11,)
使用此代码
output = model.predict(x=to_be_prdicted)
我得到这个错误
ValueError: Exception encountered when calling layer 'sequential_18' (type Sequential).
Input 0 of layer "dense_17" is incompatible with the layer: expected min_ndim=2, found ndim=1. Full shape received: (None,)
Call arguments received by layer 'sequential_18' (type Sequential):
• inputs=tf.Tensor(shape=(None,), dtype=float32)
• training=False
• mask=None
它出错并给予我一个值错误消息,内容是“min_ndim=2,found ndim=1 Full shape received:(无)"。
这里也是我的模型的总结,如果它有帮助的话
model.summary()
Model: "sequential_18"
_________________________________________________________________
Layer (type) Output Shape Param #
=================================================================
dense_17 (Dense) (None, 1) 12
=================================================================
Total params: 12
Trainable params: 12
Non-trainable params: 0
_________________________________________________________________
我已经尝试将输入添加到模型中
model.add(tf.keras.layers.Input(shape=(11,)))
正如你可以看到上面,但代码错误的方式与相同的错误
1条答案
按热度按时间vcudknz31#
为了避免这个错误,您需要提供与用于定义和训练模型的
input_data.shape
维度相同的预测数据集的形状维度(to_be_predicted
)。这里,
input_data
形状具有二维-(3145,11)同样,
to_be_predicted.shape
应该在相同的维度上。例如:
输出:
或者,您可以使用以下代码扩展
to_be_predicted
数据集维度以与input_shape
匹配:输出: