tensorflow - 在张量流服务中,模型名称的一般规则是什么
问题描述
我正在尝试为经过训练的 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" }
- 该模型看起来由 tf serving docker image 正确服务,我想我发布了错误的 URL?
- 当我将模型名称更改为不包含正斜杠时,一切正常
解决方案
您的观察 =>“当我将模型名称更改为不包含正斜杠时,一切正常”是非常好的一个。
因此,要准确回答您的问题,型号名称的一般规则是
- 不允许使用“*、#、/ 等”等特殊符号
- 不允许有空格。示例:“新模型”
- 我们计划保存模型的路径的文件夹结构中涉及的所有文件夹都不应该有空格。
通常,当您导出模型时,它会保存在一个路径中,例如,
“/usr/local/google/home/abc/Jupyter_Notebooks/export/1554294699”,其中 1554294699 是保存模型时的时间戳。
因此,在推理过程中,我们只需将模型名称指定为export就足够了。
在推理和预测期间,Tensorflow Serving 负责从该文件夹中选择模型的最新版本。
推荐阅读
- node.js - 使用角度 8 输入值后自动将光标移动到下一个输入字段
- ssl - ZeroSSL 证书不匹配
- c++ - 由于图像文件导致的分割错误
- android - 如何从android中的意图获取高分辨率图片?
- python - 以 UTF-8 将字符写入文件然后转换回错误(Python)
- javascript - TypeError:无法读取未定义的属性“on” - App.componentWillMount
- python - 当 requests.get(url) 不起作用时我该怎么办?
- javascript - Javascript require 方法没有找到 axios 模块
- css - 缩小后标题背景图像重复/平铺
- vba - 如果关联名称包含字符串,如何从 Outlook VBA 中的全局地址列表中提取电子邮件地址