tensorflow 在Docker上的TF服务模型缺少模型信息,如果请求则返回404

rkkpypqq  于 2023-10-23  发布在  Docker
关注(0)|答案(1)|浏览(127)

我有一个经过训练的模型,我试图通过Docker容器中的tensorflow服务部署一个图像分类器。当我运行Python代码通过REST请求时,我得到了一个404响应。请求看起来是这样的:

json_response = requests.post('http://localhost:8501/models/model_name:predict', data=data)
json_response.raise_for_status()

prediction = json_response.json()['predictions'][0]
print(prediction)

在使用curl检查模型信息时,我得到以下响应:

<HTML><HEAD>
<TITLE>404 Not Found</TITLE>
</HEAD><BODY>
<H1>Not Found</H1>
</BODY></HTML>

我遵循了tensorflow网站上关于使用docker的说明,在安装过程中没有出现任何错误。
我相信这可能与我保存模型的方式有关,因为tf_serving指南中的示例可以工作,但我使用了tensorflow上概述的SavedModel格式,其代码如下:

tmpdir = tempfile.mkdtemp()
save_path = os.path.join(tmpdir, "model_name/1/")

print(list(model.signatures.keys()))  # ["serving_default"]

infer = model.signatures["serving_default"] # 5 classes
print(infer.structured_outputs)

tf.saved_model.save(model, save_path)

前面代码的print语句:

['serving_default']
{'dense_2': TensorSpec(shape=(None, 5), dtype=tf.float32, name='dense_2')}

在tensorflow SavedModel指南中,它显示了名为“predictions”的结构化输出,这可能是问题的一部分。
作为参考,我正在使用来自冻结的MobileNetV2的迁移学习,并添加了一些层。
我对Tensorflow和Tensorflow Serving都很陌生,所以如果这是我可能错过的一个简单问题,请原谅我。

0md85ypi

0md85ypi1#

你是如何开始你的服务的?确保你的帖子请求中的模型名称与模型配置中的名称相同。

相关问题