我有完全this问题:
在对tensorflow服务模型运行预测之后,我将这个PredictResponse对象作为输出返回:
outputs {
key: "scores"
value {
dtype: DT_FLOAT
tensor_shape {
dim {
size: 1
}
dim {
size: 2
}
}
float_val: 0.407728463411
float_val: 0.592271506786
}
}
正如该问题中所建议的,我尝试使用:result.outputs ['outputs']。float_val
但然后它返回类型<type google.protobuf.pyext._message.RepeatedScalarContainer>
它是由这段代码生成的,受到inception_client.py示例的启发:
channel = implementations.insecure_channel(host, int(port))
stub = prediction_service_pb2.beta_create_PredictionService_stub(channel)
result = stub.Predict(request, 10.0) # 10 secs timeout
提前致谢!
result.outputs['scores'].float_val[0]
和result.outputs['scores'].float_val[1]
是此响应中的浮点值。
为了将来参考,documentation for the python bindings to protocol buffers解释了这个问题和其他问题。
如果您有多个输出,其名称存储在output_names
列表中,您可以执行以下操作,以创建一个输出名称为键的字典和一个包含模型返回值的列表。
results = dict()
for output in output_names:
results[output] = response.outputs[output].float_val