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

时间:2019-05-03 12:33:42

标签: tensorflow tensorflow-serving

我正在尝试提供训练有素的tensorflow保存的模型,并且我希望预测网址是这样的:

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" }

  • 该模型似乎可以由tf服务的docker映像正确地服务,我想我发布了错误的URL?
  • 当我将模型名称更改为不包含正斜杠时,一切正常

1 个答案:

答案 0 :(得分:0)

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

因此,为准确回答您的问题,型号名称的通用规则为

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

通常,导出模型时,模型将保存在路径中,例如

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

因此,在推断过程中,仅将模型名称指定为 export 就足够了。

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