Keras 输入形状错误

数据挖掘 喀拉斯 张量流 重塑
2022-03-11 05:42:40

我正在尝试加载 Keras 模型并使用它进行预测并遇到一个奇怪的错误。一个最小的例子如下:

from keras import models
import numpy as np

model = models.load_model('model_4hiddenLayers_16unitsPerLayer_relu_learningRate0p0001.h5')
x = np.ones(36, dtype=float)
prediction = model.predict(x )

该模型期望输入形状为 (36,),它应该是 x 的形状,我对此进行了验证:

print('x.shape={}'.format(x.shape) )

给出:

x.shape=(36,)

但是,在运行此代码时,我收到以下错误消息:

ValueError:检查时出错:预期 batch_normalization_1_input 的形状为 (36,) 但得到的数组的形状为 (1,)

我在这里想念什么?谢谢您的帮助。

一些附加信息:我使用 keras 版本 2.1.4 和 TensorFlow 作为后端。

1个回答

我弄清楚了这个问题。“预测”函数需要一批输入数组,因此它希望 x 具有形状 (n, 36),其中 n 是示例数。添加后:

x = x.reshape( (1,36) )

代码工作正常