我要求对经过训练的模型(使用线性学习器算法创建的模型)进行在线预测,并收到“错误”:“预测失败:未知错误。”
这是我在Google AI平台上的第一个ML模型。模型训练成功,训练数据,验证数据和测试数据在输出文件夹中看起来都不错。但是,当我尝试通过传递输入JSON来测试模型时,出现此错误。我也在寻找其他类似的帖子,但找不到找到成功预测的解决方案。
工件文件夹中的metadata.json看起来像
{
"feature_columns": {
"col_0": {
"mapping": {
"0": 0,
"1": 1,
"10": 10,
"2": 2,
"3": 3,
"4": 4,
"5": 5,
"6": 6,
"7": 7,
"8": 8,
"9": 9
},
"mode": "0",
"num_category": 11,
"treatment": "identity",
"type": "categorical"
},
"col_1": {
"mapping": {
"0": 0,
"1": 1,
"10": 10,
"2": 2,
"3": 3,
"4": 4,
"5": 5,
"6": 6,
"7": 7,
"8": 8,
"9": 9
},
"mode": "4",
"num_category": 11,
"treatment": "identity",
"type": "categorical"
}
},
"target_algorithm": "TensorFlow",
"target_column": {
"type": "regression"
}
}
我通过的用于测试预测的输入JSON是 {“ instances :: [5,5]}
该模型应将2个输入要素相加并得出10的结果
您能告诉我错误在哪里吗?
答案 0 :(得分:0)
如果您正在使用gcloud发送文件,请执行以下操作:
{"col_0": "5", "col_1": "5" }
如果要通过其他客户端发送一堆实例,请执行以下操作:
{
"instances": [
{"col_0": "5", "col_1": "5" },
{"col_0": "3", "col_1": "2" }
]
}
答案 1 :(得分:0)
Lak 的回答很好,而且很有效。
尽管我的输入数据不同,但我得到了同样的错误,尽管本地预测成功。还有两件事对我有帮助。
运行 !gcloud ai-platform predict --help
以了解有关如何格式化输入以及在进行调用时使用哪个标志的更多信息。
使用 !saved_model_cli show --dir ${YOUR_LOCAL_MODEL_PATH} --all
检查模型以检查输入的名称。验证它们实际上是(就您而言)inputs[col_0]
和 inputs[col_1]
。
使用您上面提到的“测试和使用”界面(以及在此 SO answer 中)实际上可以加快实验速度。