问题描述
我正在使用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