Google Cloud ML Engine 无法创建类型 'encoded_image_string_tensor' 的模型版本

Google Cloud ML Engine fails to create model version of type 'encoded_image_string_tensor'

我在 ML Engine 上训练了一个对象检测模型并通过调用将其导出:

python object_detection/export_inference_graph.py \ --input_type encoded_image_string_tensor ....

然后我通过调用在本地成功测试了预测:

gcloud ml-engine local predict --model-dir ../saved_model --json-instances=inputs.json --runtime-version=1.2

其中 inputs.json 包含:

{"b64": "base64 encoded png image"}

当我尝试使用以下命令在 ML Engine 上创建模型版本时:

gcloud ml-engine versions create ${YOUR_VERSION} --model ${YOUR_MODEL} --origin=${YOUR_GCS_BUCKET}/saved_model --runtime-version=1.2

失败并显示以下消息:

ERROR: (gcloud.ml-engine.versions.create) Bad model detected with error: "Error loading the model: Could not load model. "

ML Engine 不支持 input_type=encoded_image_string_tensor 的模型版本吗?我如何获得有关该错误的更多详细信息?

使用带 input_type=image_tensor 的导出模型在 ml-engine 上创建模型版本工作正常。

您能否确认您正在使用 tensorflow 1.2 导出模型?

gcloud ml-engine local predict 没有 --runtime-version 标志,所以如果你安装了 TF 1.3 并用它导出你的模型,那么 local predict 可以使用 TF 1.3,但可能有尝试在服务上使用 TF 1.2 时模型不兼容。