使用 Google 云机器学习引擎导出预训练模型

Exporting a pretrained model using Google Cloud Machine Learning Engine

我发现了很多关于训练对象检测模型并使用 Google 云机器学习引擎部署它的示例,但是如果我想部署来自 Tensorflow 检测模型动物园的现有模型怎么办?

我下载了 ssd_mobilenet_v2_coco 并使用 saved_model_cli 检查了模型。从这个输出中我了解到这个模型只有一个允许的输入,一个 image_tensor.

ML 引擎似乎需要 3 个输入:

模型动物园 repo 还表明冻结图是使用 v1.12.0 发布版本的 Tensorflow 生成的,如果您想使用更高版本,您可以重新 运行 导出器。因此,在部署到 ML Engine 之前,您可能想要重新导出其中一个冻结模型似乎有几个原因。

所以我的问题是,我可以使用 'gcloud ml-engine jobs submit training' 来做到这一点吗?如果是这样,如果我只从从动物园下载的预训练模型开始,该命令的适当参数是什么?

好吧,我认为由于我自己的无知,我问错了问题。看来我需要 1) 在本地安装对象检测 api,2) 运行 export_inference_graph.py 并将 input_type 更改为 'encoded_image_string_tensor,最后 3)将这个重新导出的模型版本部署到 ml-engine。

出口:

python object_detection/export_inference_graph.py --input_type encoded_image_string_tensor --pipeline_config_path TensorFlow/models/research/object_detection/samples/configs/ssd_mobilenet_v1_coco.config --trained_checkpoint_prefix ssd_mobilenet_v1_coco_2018_01_28/model.ckpt --output_directory for_mlengine

部署:

$ gsutil cp -r for_mlengine/saved_model/ gs://my_project/my_model

$ gcloud ml-engine models create my_model --regions us-central1

$ gcloud ml-engine versions create v1 --model my_model --origin=gs://my_project/my_model/saved_model --framework tensorflow --runtime-version=1.13