Модель Tensorflow, не работающая при использовании внутри вызова GRPC - PullRequest
0 голосов
/ 14 февраля 2019

Создал службу rpc, используя grpc.когда я пытаюсь вызвать функцию предсказания тензорного потока внутри вызова grpc (предиката). Я получаю ошибку, связанную с тензорным потоком, и обнаруживаю, что tf.global_variables () становится пустым.Вот код

class ModelServiceServicer(modelService_pb2_grpc.ModelServiceServicer):
"""Provides methods that implement functionality of route guide 
   server."""

def __init__(self, model_dir_path, metrics_enabled, metrics_service):
    self.metrics_enabled = metrics_enabled
    self.metrics_service = metrics_service
    self.serialized_model = TfContainer(model_dir_path)
    self.input = ["""#input"""]        
    **#this works**
    print(self.serialized_model.handle_predict(self.input))        
    print("intialized")
    print(tf.global_variables())


def predict(self, request, context):
    print("request is ")
    #print(request)
    print(context)
    start_time = datetime.now()
    print(self.input)
    print(self.serialized_model)
    try:
        **#this becomes empty**
        print(tf.global_variables())
        **#this does not work.**
        print(self.serialized_model.handle_predict(self.input))
    except:
        traceback.print_stack()
        print('------')
        traceback.print_exc()      **
    print(self.serialized_model.handle_predict(self.input))        
    print("intialized")
    print(tf.global_variables())  

Помощь будет очень признателен!

1 Ответ

0 голосов
/ 22 февраля 2019

Фактический вызов метода Servicer действительно происходит в другом потоке, особенно в ThreadPool, который вы указали при инициализации сервера.Согласно документу TensorFlow tf.global_variables кажется, что он не связан напрямую с потоками, а не tf.local_variables.Можете ли вы предоставить больше информации относительно ожидаемого значения tf.global_variables?Или минимальный воспроизводимый фрагмент кода еще лучше!

...