TensorFlow:如何为SavedModel设置JSON格式(字符串形式为3个整数)?

时间:2019-07-12 15:35:10

标签: python tensorflow tensorflow-serving tensorflow-estimator

使用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]

相反,我收到“错误”消息:我这次发送的消息不满意。任何帮助将不胜感激

1 个答案:

答案 0 :(得分:1)

在咨询了其他几个人之后,我们设法找到了解决方案。当时希望有一个字符串列表,每个字符串包含相关的字典项,并在标记需要的地方转义引号。

{
    "instances": 
        ["\"int1\": [1] , \"int2\" : [2], \"int3\":[3]"]

}