我正在tensorflow服务模型上运行一个预测,并将这个PredictResponse对象作为输出返回:
结果:
outputs {
key: "outputs"
value {
dtype: DT_FLOAT
tensor_shape {
dim {
size: 1
}
dim {
size: 20
}
}
float_val: 0.000343723397236
float_val: 0.999655127525
float_val: 3.96821117632e-11
float_val: 1.20521548297e-09
float_val: 2.09611101809e-08
float_val: 1.46216549979e-09
float_val: 3.87274603497e-08
float_val: 1.83520256769e-08
float_val: 1.47733780764e-08
float_val: 8.00914179422e-08
float_val: 2.29388191997e-07
float_val: 6.27798826258e-08
float_val: 1.08802950649e-07
float_val: 4.39628813353e-08
float_val: 7.87182985462e-10
float_val: 1.31638898893e-07
float_val: 1.42612295306e-08
float_val: 3.0768305237e-07
float_val: 1.12661648899e-08
float_val: 1.68554503688e-08
}
}我想把浮点数作为一个列表列出来。或者,返回argmax float_val的值/索引!
这是由以下方面产生的:
存根= prediction_service_pb2.beta_create_PredictionService_stub(channel)结果=stub.Predict(请求,200.0)
谢谢你提前帮忙。
发布于 2017-07-04 13:40:54
答案是:
floats = result.outputs['outputs'].float_val发布于 2019-06-01 10:15:23
您通常希望恢复一个张量,具有一个形状(而不仅仅是一个长的浮子列表)。下面是操作步骤:
outputs_tensor_proto = result.outputs["outputs"]
shape = tf.TensorShape(outputs_tensor_proto.tensor_shape)
outputs = tf.constant(outputs_tensor_proto.float_val, shape=shape)如果您希望得到一个NumPy数组,那么只需替换最后一行:
outputs = np.array(outputs_tensor_proto.float_val).reshape(shape.as_list())如果您根本不想依赖TensorFlow库,出于某种原因:
outputs_tensor_proto = result.outputs["outputs"]
shape = [dim.size for dim in outputs_tensor_proto.tensor_shape.dim]
outputs = np.array(outputs_tensor_proto.float_val).reshape(shape)发布于 2018-02-11 13:50:15
如果要将整个PredictResponse转换为numpy数组(包括其维度)
<script src="https://gist.github.com/eavidan/22ad044f909e5739ceca9ff9e6feaa43.js"></script>
https://stackoverflow.com/questions/44785847
复制相似问题