json - 使用浮点输入推断服务的张量流模型失败
问题描述
我正在尝试对服务的张量流模型进行推理。更具体地说,通过 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 时无法正确解析浮点数。这是必须在模型图中编码的东西吗?(请注意,我没有对图形/模型进行编码,所以我不太熟悉它)
有任何想法吗?
解决方案
我也遇到了这个错误。这是Tensorflow Serving 中的一个错误1.11
,已经进行了修复,只是尚未发布。
要暂时解决此问题,您可以安装1.10.0
Tensorflow 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
您的有效载荷包含float
s 的 curl 请求现在应该可以工作了。