首页 > 解决方案 > 在张量流服务中,模型名称的一般规则是什么

问题描述

我正在尝试为经过训练的 tensorflow 保存模型提供服务,并且我希望预测 url 是这样的:

localhost:8501/v1/models/<model_name>:predict, where model_name is like "something1/something2"

我所做的是将 model_name 参数设置为something1/something2 然后运行

docker run --rm -p 8501:8501 \
    -v "$LOCAL_MODEL_DIR:/models/${MODEL_NAME}" \
    -e MODEL_NAME=${MODEL_NAME} \
    -t tensorflow/serving

该命令似乎工作正常,但是当我将预测发布到localhost:8501/v1/models/something1/something2:predict

我收到了这个错误:

{ "error": "Malformed request: POST /v1/models/something1/something2:predict" }

标签: tensorflowtensorflow-serving

解决方案


您的观察 =>“当我将模型名称更改为不包含正斜杠时,一切正常”是非常好的一个。

因此,要准确回答您的问题,型号名称的一般规则是

  1. 不允许使用“*、#、/ 等”等特殊符号
  2. 不允许有空格。示例:“新模型”
  3. 我们计划保存模型的路径的文件夹结构中涉及的所有文件夹都不应该有空格。

通常,当您导出模型时,它会保存在一个路径中,例如,

“/usr/local/google/home/abc/Jupyter_Notebooks/export/1554294699”,其中 1554294699 是保存模型时的时间戳。

因此,在推理过程中,我们只需将模型名称指定为export就足够了。

在推理和预测期间,Tensorflow Serving 负责从该文件夹中选择模型的最新版本。


推荐阅读