服务张量流模型的推理因浮点输入而失败
Inference on served tensorflow model fails with float input
我正在尝试 运行 推断所服务的张量流模型。更具体地说,通过 REST 发送 JSON 请求以获得预测。
我实际上只是在做这里概述的基本示例:
https://www.tensorflow.org/serving/
一切正常,除了当我将 "instances" 输入更改为不以“.0”结尾的浮点数时,它失败了。
curl -d '{"instances": [1.1, 2.2, 5.3]}' \
-X POST http://localhost:8501/v1/models/half_plus_two:predict
{ "error": "Failed to process element: 0 of \'instances\' list. Error: Invalid argument: Cannot convert JSON value: 1.1 to float without loss of precision." }
尽管如此,对于我最终的模型,我将需要通过 JSON 请求传递浮点数。我还尝试使用 python 发送它,在发送请求时使用 simplejson 序列化 Decimal。
我假设它在尝试加载 JSON 时无法正确解析浮点数。这是必须在模型图中编码的东西吗? (请注意,我没有编写 graph/model 所以我不太熟悉它)
有什么想法吗?
我也刚遇到这个错误。它是 Tensorflow Serving 1.11
中的 bug,已经进行了修复,只是尚未发布。
要暂时解决此问题,您可以安装 Tensorflow Serving 映像的旧版本(标签 1.10.0
),而不是最新版本。
docker pull tensorflow/serving:1.10.0
只是,请确保已删除最新图像并且 运行 是正确的版本标记,如下所示。
➜ docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
tensorflow/serving 1.10.0 a7b9844ed1ae 2 months ago 215MB
您的有效负载包含 float
的 curl 请求现在应该可以工作了。
我正在尝试 运行 推断所服务的张量流模型。更具体地说,通过 REST 发送 JSON 请求以获得预测。
我实际上只是在做这里概述的基本示例: https://www.tensorflow.org/serving/
一切正常,除了当我将 "instances" 输入更改为不以“.0”结尾的浮点数时,它失败了。
curl -d '{"instances": [1.1, 2.2, 5.3]}' \
-X POST http://localhost:8501/v1/models/half_plus_two:predict
{ "error": "Failed to process element: 0 of \'instances\' list. Error: Invalid argument: Cannot convert JSON value: 1.1 to float without loss of precision." }
尽管如此,对于我最终的模型,我将需要通过 JSON 请求传递浮点数。我还尝试使用 python 发送它,在发送请求时使用 simplejson 序列化 Decimal。
我假设它在尝试加载 JSON 时无法正确解析浮点数。这是必须在模型图中编码的东西吗? (请注意,我没有编写 graph/model 所以我不太熟悉它)
有什么想法吗?
我也刚遇到这个错误。它是 Tensorflow Serving 1.11
中的 bug,已经进行了修复,只是尚未发布。
要暂时解决此问题,您可以安装 Tensorflow Serving 映像的旧版本(标签 1.10.0
),而不是最新版本。
docker pull tensorflow/serving:1.10.0
只是,请确保已删除最新图像并且 运行 是正确的版本标记,如下所示。
➜ docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
tensorflow/serving 1.10.0 a7b9844ed1ae 2 months ago 215MB
您的有效负载包含 float
的 curl 请求现在应该可以工作了。