如何使用Google Cloud上的Tensorflow Training中的model.ckpt文件进行预测?

问题描述

我正在使用Tensorflow 1.15和Python 3.7,我是一个初学者。 我在谷歌云上使用自己的数据集训练了一个张量流模型,如下所示: https://github.com/tensorflow/models/blob/master/research/object_detection/g3doc/tf1_training_and_evaluation.md

训练后,我的Google云存储桶列出了model.ckpt文件。我按以下说明保存了模型:https://github.com/tensorflow/models/blob/master/research/object_detection/g3doc/exporting_models.md。这样做会生成一些文件:checkpoint,frozen_inference_graph.pb,model.ckpt.data-00000-of-00001,model.ckpt.index,model.ckpt.Meta,pipeline.config和包含文件save_model的文件夹“ saved_model” .pb和一个空的变量文件夹。到现在为止还挺好。现在,我想使用这些文件在此笔记本上进行预测:https://colab.research.google.com/github/tensorflow/models/blob/master/research/object_detection/colab_tutorials/object_detection_tutorial.ipynb,但是我停留在“加载对象检测模型”部分,我总是得到这个

OSError: SavedModel file does not exist at: home/user/models/research/exported_graphs/saved_model/{saved_model.pbtxt|saved_model.pb}

我在做什么错?我尝试了所有可能,并阅读了数十篇stackoverflow文章,但找不到任何可用的解决方案。还可以使用通过培训生成的.h5 /进行预测生成的model.ckpt文件吗?

非常感谢您!

解决方法

首先在 Google_cloud 上上传 saved_model,然后使用以下代码片段加载 saved_model

def load_model(model_name):
  #path to model directory
  model_dir = "model_directory"

  model_dir = pathlib.Path(model_dir)/"saved_model"

  model = tf.saved_model.load(str(model_dir))

  return model