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

时间:2019-02-28 16:56:35

标签: tensorflow tensorflow-serving google-cloud-ml

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

让我感到困惑的是,从该方法获取的SavedModel文件夹中的.pb文件比培训后保存的最终.pb小得多。

simple_save现在也已被弃用,在完成此SO issue之后的培训之后,我尝试获取我的SavedModel

但是我的variables folder是空的。如何将SavedModel的该建筑物合并到retrain.py中以替换simple_save方法?提示将不胜感激。

1 个答案:

答案 0 :(得分:-1)

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

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

  1. 使用BUCKET_NAME="your_bucket_name"

  2. 设置云存储分区,将保存的模型上传到Cloud Storage存储分区
  3. 为存储桶选择一个区域,并设置一个REGION环境变量。 EGION=us-central1

  4. 创建一个新存储桶gsutil mb -l $REGION gs://$BUCKET_NAME

  5. 使用上传 SAVED_MODEL_DIR=$(ls ./your-export-dir-base | tail -1) gsutil cp -r $SAVED_MODEL_DIR gs://your-bucket

  6. 创建Cloud ML Engine模型资源和模型版本。

对于在retrain.py中合并保存的模型的问题,还需要将保存的模型作为参数传递给tfhub_module行,如下所示。

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

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