【问题标题】:Difficulty formatting tf.example for making requests to Tensorflow serving难以格式化 tf.example 以向 Tensorflow 服务发出请求
【发布时间】:2018-11-30 22:04:29
【问题描述】:
关于向 TensorFlow Serving 发出请求的最佳方式,我有两个广泛的问题:
当稳定性比吞吐量更受关注时,使用 gRPC 而不是 REST 是否有任何好处,这既更易于交互,也更易于对数据输入进行编码?
使用 gRPC 时,从 python 客户端创建 tf.examples 的推荐方法是什么。我们已经看到它用梁模式覆盖它,并且还通过繁琐的 JSON 递归和沿途构造单个对象来完成。对于如此重要的服务组件,这些方法似乎都不是稳健、高效或简单的。
提前致谢...
【问题讨论】:
标签:
python
tensorflow
tensorflow-serving
【解决方案1】:
关于你的第二个问题:我自己不是专家,但我过去就是这样做的。
假设您有多个输入的数据,这些输入位于 request_dict 中,将张量名称映射到 numpy 数组,您可以按如下方式填充请求对象:
from tensorflow_serving.apis import predict_pb2
from tensorflow.contrib.util import make_tensor_proto
request = predict_pb2.PredictRequest()
request.model_spec.name = 'tf_serving'
request.model_spec.signature_name =
tf.saved_model.signature_constants.DEFAULT_SERVING_SIGNATURE_DEF_KEY
for k, v in request_dict.items(): # keys are tensor names, values are np arrays
request.inputs[k].CopyFrom(make_tensor_proto(v, shape=v.shape))
我同意这很乏味,并且 python 用户缺少这部分的文档。使用 REST 确实更容易,但我无法评论您关于 gRPC 与 REST 的第一个问题。