在张量流服务中,模型名称的一般规则是什么

In tensorflow serving, what are general rules for model name

我正在尝试为经过训练的 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

该命令似乎运行良好, 但是当我 post 预测到 localhost:8501/v1/models/something1/something2:predict

我遇到了这个错误:

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

你的观察=> "When I changed to model name to NOT contain forward slash, everything is working fine"很不错。

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

  1. 不允许使用“*、#、/ 等..”等特殊符号
  2. 不允许有空格。示例:"New Model"
  3. None个Folders,我们计划保存Model的Path的Folder Structure中涉及到的,应该有空格。

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

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

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

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