如何使用多个model_spec创建单个PredictRequest()?

Sne*_*hal 5 tensorflow tensorflow-serving

我正在尝试将多个model_spec及其受尊敬的输入添加为单个 predict_pb2.PredictRequest(),如下所示:

tmp = predict_pb2.PredictRequest()

tmp.model_spec.name = '1'
tmp.inputs['tokens'].CopyFrom(make_tensor_proto([1,2,3]))


tmp.model_spec.name = '2'
tmp.inputs['tokens'].CopyFrom(make_tensor_proto([4,5,6]))
Run Code Online (Sandbox Code Playgroud)

但是我只得到2的信息:

>> tmp

model_spec {
  name: "2"
}
inputs {
  key: "tokens"
  value {
    dtype: DT_INT32
    tensor_shape {
      dim {
        size: 3
      }
    }
    tensor_content: "\004\000\000\000\005\000\000\000\006\000\000\000"
  }
}
Run Code Online (Sandbox Code Playgroud)

如何为具有各自输入的多个模型获得单个PredictRequest()?

我的目的是创建一个请求并将其发送到为两个模型提供服务的tensorflow服务。还有其他解决方法吗?为两个模型创建两个单独的请求,并从tf_serving一个接一个的工作中获得结果,但是我想知道是否可以将两个请求合并为一个。

小智 0

恐怕这是不可能的。在tensorflow_serving/api/predict.proto中,每个PredictRequest只有一个ModelSpec。您可以尝试添加一些代码来执行此操作。