【发布时间】:2019-05-03 22:54:52
【问题描述】:
我正在尝试提供经过训练的 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 有误?
- 当我将模型名称更改为不包含正斜杠时,一切正常
【问题讨论】:
-
我在对 REST API 使用斜杠时也做了同样的观察,主要问题显然是
/是那里的保留字符。请注意,当我改用 gRPC 接口时,它对我有用,因此它不是一般的“TF Serving 不支持模块名称中的斜杠”的事情。然而,在 HTTP 请求中转义斜杠的明显解决方法(使用%2F代替)并没有为我解决这个问题,因为 TFS 显然没有解码这些。
标签: tensorflow tensorflow-serving