从Tensorflow模型生成SavedModel以在Google Cloud ML上提供它

问题描述 投票:2回答:1

我使用TF Hub重新训练模型进行图像分类。现在我想在云中服务它。为此,我需要一个SavedModel。来自TF Hub的retrain.py脚本在训练完成后使用tf.saved_model.simple_save生成SavedModel

令我困惑的是,我从该方法获得的SavedModel文件夹中的.pb文件比训练后保存的最终.pb要小得多。

simple_save现在也被弃用了,我试图在训练完成之后获得我的SavedModel这个SO issue

但我的variables folder是空的。如何在SavedModel中加入retrain.py构建来替换simple_save方法?提示将不胜感激。

tensorflow tensorflow-serving google-cloud-ml
1个回答
0
投票

要将模型部署到Google Cloud ML,您需要一个可以从tf.saved_model api生成的SavedModel。

以下是使用Cloud ML Engine在云中托管训练模型的步骤。

  1. 通过使用BUCKET_NAME="your_bucket_name"设置云存储桶,将您保存的模型上传到云存储桶
  2. 选择存储桶的区域并设置REGION环境变量。 EGION=us-central1
  3. 创建一个新的桶gsutil mb -l $REGION gs://$BUCKET_NAME
  4. 使用SAVED_MODEL_DIR=$(ls ./your-export-dir-base | tail -1) gsutil cp -r $SAVED_MODEL_DIR gs://your-bucket上传
  5. 创建Cloud ML Engine模型资源和模型版本。

另外,关于将savedmodel合并到retrain.py中的问题,您需要将保存的模型作为参数传递给tfhub_module行,如下所示。

python retrain.py --image_dir C: ...\\code\\give the path here --tfhub_module C:

...给出保存的模型目录的路径

© www.soinside.com 2019 - 2024. All rights reserved.