Tensorflow Serving error serving tensorflow version 1.5 模型

Tensorflow Serving error serviing tensorflow version 1.5 model

在 docker 容器

中 运行 Tensorflow Serving 时收到以下错误消息
2019-12-12 03:25:13.947401: I tensorflow_serving/model_servers/server.cc:85] Building single TensorFlow model file config:  model_name: mymodel model_base_path: /models/mymodel 
2019-12-12 03:25:13.947870: I tensorflow_serving/model_servers/server_core.cc:462] Adding/updating models.
2019-12-12 03:25:13.947891: I tensorflow_serving/model_servers/server_core.cc:573]  (Re-)adding model: mymodel
2019-12-12 03:25:14.058166: I tensorflow_serving/core/basic_manager.cc:739] Successfully reserved resources to load servable {name: mymodel version: 1}
2019-12-12 03:25:14.058430: I tensorflow_serving/core/loader_harness.cc:66] Approving load for servable version {name: mymodel version: 1}
2019-12-12 03:25:14.059106: I tensorflow_serving/core/loader_harness.cc:74] Loading servable version {name: mymodel version: 1}
2019-12-12 03:25:14.064459: E tensorflow_serving/util/retrier.cc:37] Loading servable: {name: mymodel  version: 1} failed: Not found: Specified file path does not appear to contain a SavedModel bundle (should have a file called `saved_model.pb`)
Specified file path: /models/mymodel/1

模型是使用tensorflow v1.5构建的,没有*.pb文件。 运行这个版本的tensorflow模型可以吗?任何想法表示赞赏。提前致谢。

是的,您可以在 tfserving 上部署在 Tensorflow v1.5 上训练的模型。

TfServing 需要 SavedModel 格式。

您的训练脚本可能存在一些配置问题。 (但很难确定,因为您没有提供代码,请始终尝试将代码包含在您的问题中,以便其他人更好地理解)


回答你的问题,

要获得 SavedModel 格式,请通过 official script 训练您的模型。

训练完成后,您将在指定的模型目录中得到以下目录结构。

<model_dir>
|
|----- variables
|         |------- variables.data-00000-of-00001
|         |------- variables.index
|
|----- saved_model.pb

然后你可以直接指定 <model_dir> 到 tfserving 的路径,它将使用这个模型。

您不能将 h5 用于 tf 服务,但您可以使用以下代码轻松地将 h5 模型转换为 SavedModel:

import tensorflow as tf

model = tf.keras.models.load_model('./model/best-model.h5')
export_path = './model/1'

tf.saved_model.save(model, export_path)

以后再用。