【问题标题】:Tensorflow Serving: Rest API returns "Malformed request" errorTensorflow Serving:Rest API 返回“格式错误的请求”错误
【发布时间】:2019-03-11 06:53:32
【问题描述】:

Tensorflow Serving 服务器(使用 docker 运行)响应我的 GET(和 POST)请求:

{ "error": "Malformed request: POST /v1/models/saved_model/" }

同样的问题已经报告但从未解决(据说这是 StackOverflow 类型的问题,而不是 GitHub 问题):

https://github.com/tensorflow/serving/issues/1085

https://github.com/tensorflow/serving/issues/1095

有什么想法吗?非常感谢。

【问题讨论】:

    标签: rest tensorflow machine-learning tensorflow-serving


    【解决方案1】:

    取决于你的模型,但这是我的身体的样子:

    {“输入”:{“文本”:[“你好”]}}

    我使用 Postman 来帮助我,让它知道这是一个 JSON。

    这是用于预测 API,所以 url 以 ":predict" 结尾 同样,这取决于您尝试使用的 API。

    【讨论】:

    • 你是对的,但我的问题是别的(见上文),不过谢谢。
    【解决方案2】:

    我的方法有两个问题:

    1) 我的 Tensorflow_model_server 不支持状态检查请求(详见https://github.com/tensorflow/serving/issues/1085

    2) 更重要的是,在使用 Windows 时,您必须在 JSON 中转义引号。所以而不是:

    curl -XPOST http://localhost:8501/v1/models/saved_model:predict -d "{"instances":[{"features":[1,1,1,1,1,1,1,1,1,1]}]}"
    

    我应该用这个:

    curl -XPOST http://localhost:8501/v1/models/saved_model:predict -d "{\"instances\":[{\"features\":[1,1,1,1,1,1,1,1,1,1]}]}"
    

    【讨论】:

      【解决方案3】:

      模型状态 API 仅在 master 分支中支持。目前还没有支持它的 TF 服务版本(该 API 计划用于即将发布的 1.12 版本)。您可以使用 nightly docker 镜像 (tensorflow/serving:nightly) 来测试主分支构建。

      此解决方案由 netf 在issue:1128 in tensorflow/serving 中提供。 我已经尝试过这个解决方案,它已经完成,我可以得到模型状态。Getting Model status img(这是模型状态演示的img)。

      希望我能帮到你。

      如果没有清除master分支构建,可以联系我。

      我可以给你指导。

      邮箱:mizeshuang@gmail.com

      【讨论】:

        【解决方案4】:

        我证实这在 v12 之前不起作用,在 v12 之后确实有效。

        > docker run -it -p 127.0.0.1:9000:8500 -p 127.0.0.1:9009:8501 -v /models/55:/models/55 -e MODEL_NAME=55 --rm tensorflow/serving
        > curl http://localhost:9009/v1/models/55
           { "error": "Malformed request: GET /v1/models/55" }
        

        现在试试 v12:

        > docker run -it -p 127.0.0.1:9000:8500 -p 127.0.0.1:9009:8501 -v /models/55:/models/55 -e MODEL_NAME=55 --rm tensorflow/serving:1.12.0
        > curl http://localhost:9009/v1/models/55
        {
         "model_version_status": [
          {
           "version": "1541703514",
           "state": "AVAILABLE",
           "status": {
            "error_code": "OK",
            "error_message": ""
           }
          }
         ]
        }
        

        【讨论】:

          猜你喜欢
          • 2016-10-29
          • 1970-01-01
          • 2015-07-11
          • 2019-03-11
          • 1970-01-01
          • 2022-01-18
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多