- tenorflow-gpu 1.10.0
- tenorflow-сервер 1.10.0
Я развернул сервер tenorflow, который обслуживает несколько моделей.Код клиента похож на client.py
this, и я вызываю функцию прогнозирования.
channel = implementations.insecure_channel(host, port)
stub = prediction_service_pb2.beta_create_PredictionService_stub(channel)
request = predict_pb2.PredictRequest()
def predict(data, shape, model_name, signature_name="predict"):
request.model_spec.name = model_name
request.model_spec.signature_name = signature_name
request.inputs['image'].CopyFrom(tf.contrib.util.make_tensor_proto(data, shape=shape))
result = stub.Predict(request, 10.0)
return result.outputs['prediction'].float_val[0]
У меня около 100 клиентов с одинаковой конфигурацией.И вот пример кода для вызова функции predict
:
from client import predict
while True:
print(predict(data, shape, model_name))
# time.sleep some while
Сначала, когда я запускаю код клиента, я могу получить ответ правильно .Но через несколько часов произошел сбой клиента с ошибкой
_Rendezvous of RPC that terminated with (StatusCode.UNAVAILABLE, Socket closed)
Я пытаюсь изменить свой код клиента на
def predict(data, shape, model_name, signature_name="predict"):
channel = implementations.insecure_channel(host, port)
stub = prediction_service_pb2.beta_create_PredictionService_stub(channel)
request = predict_pb2.PredictRequest()
request.model_spec.name = model_name
request.model_spec.signature_name = signature_name
request.inputs['image'].CopyFrom(tf.contrib.util.make_tensor_proto(data, shape=shape))
result = stub.Predict(request, 10.0)
return result.outputs['prediction'].float_val[0]
, что означает, что я пытаюсь установить соединение с сервером tfsкаждый раз, когда вызывается функция predict
.Но этот код также не удался, как и раньше.
Так что же мне делать, чтобы справиться с этой ситуацией?