【发布时间】:2018-03-01 13:02:43
【问题描述】:
我想编写一个简单的函数来从 json 加载 keras 模型并运行预测。但是每次我运行它时都会出现以下错误:
ValueError: Error when checking : expected input_2 to have shape (28,) but got array with shape (1,)
下面的代码显示我已经打印出 numpy 数组的形状并返回 (28,),如果我将它保留为 python 列表,这仍然会发生。
def doit():
# load json and create model
json_file = open('model.json', 'r')
loaded_model_json = json_file.read()
json_file.close()
loaded_model = model_from_json(loaded_model_json)
# load weights into new model
loaded_model.load_weights("model.h5")
x = [1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
z = np.array(x)
print(z.shape)
prediction = loaded_model.predict(z)
return prediction
【问题讨论】:
-
z = z[:, np.newaxis].T -
多么奇特的修复!转置如何解决问题?确定它会将输入转换为 (1,28) 吗?