我准备基于已保存的模型尝试使用TensorFlow Serving REST API,并想知道是否存在一种简便的方法来生成需要与之一起发送的JSON实例(基于行)或输入(列)我的request。
我的模型中有数千个功能,我不希望手动输入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
没有告诉我太多。
答案 0 :(得分:0)
您可以使用Python REST客户端以编程方式进行调用,而无需手动编写请求。这是tensorflow_serving github中的示例代码:
https://github.com/tensorflow/serving/blob/master/tensorflow_serving/example/resnet_client.py
答案 1 :(得分: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