4

我已准备好尝试基于已保存模型的 TensorFlow Serving REST API,并且想知道是否有一种简单的方法可以生成我需要随请求一起发送的 JSON 实例(基于行)或输入(列) 。

我的模型中有数千个特征,我不想手动输入 JSON。有没有一种方法可以使用现有数据来提供可以在预测 API 中抛出的序列化数据?

我在整个管道(包括 tf.Transform)中使用 TFX,所以我不确定 TFX 中是否有一种我可以使用的简洁方法。

的输出saved_model_cli是这样的:

The given SavedModel SignatureDef contains the following input(s):
  inputs['examples'] tensor_info:
      dtype: DT_STRING
      shape: (-1)
      name: input_example_tensor:0

这并没有告诉我太多。

4

2 回答 2

2

您可以使用 Python REST 客户端以编程方式进行调用,而不是手动编写请求。这是 tensorflow_serving github 中的示例代码:

https://github.com/tensorflow/serving/blob/master/tensorflow_serving/example/resnet_client.py

于 2019-04-18T14:51:13.203 回答
0

你可以试试下面的代码:

examples = []
for _, row in Inputs.iterrows():
  example = tf.train.Example()
  for col, value in row.iteritems():
    example.features.feature[col].float_list.value.append(value)
  examples.append(example)
print(examples)

它的输出将是一个 json,如下所示:

[features {
  feature {
    key: "PetalLength"
    value {
      float_list {
        value: 5.900000095367432
      }
    }
  }
  feature {
    key: "PetalWidth"
    value {
      float_list {
        value: 2.0999999046325684
      }
    }
  }
  feature {
    key: "SepalLength"
    value {
      float_list {
        value: 7.099999904632568
      }
    }
  }
  feature {
    key: "SepalWidth"
    value {
      float_list {
        value: 3.0
      }
    }
  }
}
]

然后您可以使用以下命令执行推理:

curl -d '{"inputs":examples}' \
  -X POST http://localhost:8501/v1/models/1554294699:predict
于 2019-05-20T14:36:56.887 回答