首页 > 解决方案 > 使用浮点输入推断服务的张量流模型失败

问题描述

我正在尝试对服务的张量流模型进行推理。更具体地说,通过 REST 发送 JSON 请求以获取预测。

我实际上只是在做这里概述的基本示例: https ://www.tensorflow.org/serving/

一切正常,除非我将“实例”输入更改为不以“.0”结尾的浮点数,否则它会失败。

curl -d '{"instances": [1.1, 2.2, 5.3]}' \ -X POST http://localhost:8501/v1/models/half_plus_two:predict

{ "error": "无法处理元素:\'instances\' 列表中的 0。错误:无效参数:无法将 JSON 值:1.1 转换为浮点数而不损失精度。" }

不过,对于我的最终模型,我需要通过 JSON 请求传递浮点数。我还尝试使用python发送它,在发送请求时使用simplejson序列化Decimal。

我假设它在尝试加载 JSON 时无法正确解析浮点数。这是必须在模型图中编码的东西吗?(请注意,我没有对图形/模型进行编码,所以我不太熟悉它)

有任何想法吗?

标签: jsontensorflowtensorflow-serving

解决方案


我也遇到了这个错误。这是Tensorflow Serving 中的一个错误1.11,已经进行了修复,只是尚未发布。

要暂时解决此问题,您可以安装1.10.0Tensorflow Serving 映像的先前版本 tag ,而不是最新版本。

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

您的有效载荷包含floats 的 curl 请求现在应该可以工作了。


推荐阅读