使用Docker容器中的TensorFlow Serving,我无法使用Postman向运行一定距离的模型发送正确的预测POST请求。
该模型响应GET请求,因此我知道它可以工作并且正在响应。该算法需要将3个int ID值作为类别进行处理才能起作用,但SignatureDef要求输入字符串,如下所示:
The given SavedModel SignatureDef contains the following input(s):
inputs['inputs'] tensor_info:
dtype: DT_STRING
shape: (-1)
name: input_example_tensor:0
The given SavedModel SignatureDef contains the following output(s):
outputs['classes'] tensor_info:
dtype: DT_STRING
shape: (-1, 2166)
name: linear/head/Tile:0
outputs['scores'] tensor_info:
dtype: DT_FLOAT
shape: (-1, 2166)
name: linear/head/predictions/probabilities:0
Method name is: tensorflow/serving/classify
我已经尝试遵循RESTful API教程中显示的JSON格式:https://www.tensorflow.org/tfx/serving/api_rest#example 但是除了错误响应对我了解正确的语法没有多大帮助外,我什么也回不了。无论如何,都需要像这样:
{
"inputs": ['int1': 1, 'int2': 2, 'int3': 3]
}
我希望它能将我发送回本教程中显示的内容:
"predictions": [3.5, 4.0, 5.5]
相反,我收到“错误”消息:我这次发送的消息不满意。任何帮助将不胜感激
答案 0 :(得分:1)
在咨询了其他几个人之后,我们设法找到了解决方案。当时希望有一个字符串列表,每个字符串包含相关的字典项,并在标记需要的地方转义引号。
{
"instances":
["\"int1\": [1] , \"int2\" : [2], \"int3\":[3]"]
}