【发布时间】:2020-05-19 11:27:25
【问题描述】:
使用 Tensorflow Serving 示例中的基本 gRPC 客户端从 docker 上运行的模型获取预测,我得到以下响应:
status = StatusCode.UNAVAILABLE
details = "OS Error"
debug_error_string = "{"created":"@1580748231.250387313",
"description":"Error received from peer",
"file":"src/core/lib/surface/call.cc",
"file_line":1017,"grpc_message":"OS Error","grpc_status":14}"
这是我的客户目前的样子:
import grpc
import tensorflow as tf
import cv2
from tensorflow_serving.apis import predict_pb2
from tensorflow_serving.apis import prediction_service_pb2_grpc
def main():
data = cv2.imread('/home/matt/Downloads/cat.jpg')
channel = grpc.insecure_channel('localhost:8500')
stub = prediction_service_pb2_grpc.PredictionServiceStub(channel)
request = predict_pb2.PredictRequest()
request.model_spec.name = 'model'
request.model_spec.signature_name = 'serving_default'
request.inputs['image_bytes'].CopyFrom(
tf.make_tensor_proto(data, shape=[1, data.size]))
result = stub.Predict(request, 10.0) # 10 secs timeout
print(result)
if __name__ == '__main__':
main()
提前感谢您的帮助:)
【问题讨论】:
-
你能分享命令(和支持文件,如果适用的话)来启动 docker 容器吗?是否将容器端口
8500映射到主机上的端口? -
问题就是这样!在 docker 命令中,我传递了 -p 8500:8501 (大脸!)。有了这个
OS Error,我假设我的客户已经连接了......很好发现。它还活着!非常感谢您的帮助:)
标签: docker tensorflow grpc tensorflow-serving grpc-python