• Jobs
  • About Us
  • professionals
    • Home
    • Jobs
    • Courses and challenges
  • business
    • Home
    • Post vacancy
    • Our process
    • Pricing
    • Assessments
    • Payroll
    • Blog
    • Sales
    • Salary Calculator

0

195
Views
TensorFlow Sirviendo para un modelo personalizado

Quiero usar TensorFlow Serving para un modelo personalizado (sin punto de partida preentrenado).

Superé la parte previa a Kubernetes del tutorial de TensorFlow Serving para Inception, usando Docker: http://tensorflow.github.io/serving/serving_inception

Entiendo (más o menos) que la compilación de Bazel es fundamental para el funcionamiento de todo. Pero estoy tratando de entender cómo funciona el predict_pb2 generado de tensorflow_serving.apis , para poder intercambiar mi propio modelo personalizado.

Para ser claros, así es como se ve actualmente la main en inception_client.py :

 def main(_): host, port = FLAGS.server.split(':') channel = implementations.insecure_channel(host, int(port)) stub = prediction_service_pb2.beta_create_PredictionService_stub(channel) # Send request with open(FLAGS.image, 'rb') as f: # See prediction_service.proto for gRPC request/response details. data = f.read() request = predict_pb2.PredictRequest() request.model_spec.name = 'inception' request.model_spec.signature_name = 'predict_images' request.inputs['images'].CopyFrom( tf.contrib.util.make_tensor_proto(data, shape=[1])) result = stub.Predict(request, 10.0) # 10 secs timeout print(result)

https://github.com/tensorflow/serving/blob/65f50621a192004ab5ae68e75818e94930a6778b/tensorflow_serving/example/inception_client.py#L38-L52

Es difícil para mí desempaquetar y depurar lo que predict_pb2.PredictRequest() ya que es generado por Bazel. Pero me gustaría volver a señalar esto a un modelo guardado totalmente diferente, con su propio archivo .pb, etc.

¿Cómo puedo hacer referencia a un modelo guardado diferente?

about 3 years ago · Santiago Trujillo
1 answers
Answer question

0

PredictionService, definido aquí , es la definición de servicio de la API de gRPC que declara a qué funciones de RPC responderá el servidor. A partir de este proto, bazel/protoc puede generar código que se vinculará en el servidor y en el cliente (predict_pb2 que mencionaste).

El servidor extiende aquí el servicio generado automáticamente y proporciona una implementación para cada función.

Los clientes de Python usan el predict_pb2 provisto y lo usan para crear una solicitud y enviar un RPC usando la API correcta.

predict_pb2.PredictRequest() es un prototipo de PredictRequest definido aquí, que es el tipo de solicitud para la llamada a la API de Predict() (consulte la definición de Proto de PredictService vinculada anteriormente). Esa parte del código simplemente genera una solicitud y result = stub.Predict(request, 10.0) es donde se envía realmente la solicitud.

Para usar un modelo diferente, solo necesita cambiar el nombre del modelo de ModelSpec a su modelo. En el ejemplo anterior, el servidor cargó el modelo iception con el nombre "inception", por lo que el cliente lo consulta con request.model_spec.name = 'inception' . Para usar su modelo en su lugar, solo necesita cambiar el nombre a su nombre de modelo. Tenga en cuenta que probablemente también deba cambiar el nombre de la firma a su nombre personalizado o eliminarlo por completo para usar la firma predeterminada (suponiendo que esté definida).

about 3 years ago · Santiago Trujillo Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Our process Sales
Legal
Terms and conditions Privacy policy
© 2025 PeakU Inc. All Rights Reserved.

Andres GPT

Recommend me some offers
I have an error