gpt4 book ai didi

docker - 用于自定义模型的 TensorFlow Serving

转载 作者:行者123 更新时间:2023-12-04 23:15:23 24 4
gpt4 key购买 nike

我想将 TensorFlow Serving 用于自定义模型(没有预先训练的起点)。

我使用 Docker 完成了 TensorFlow Serving 教程的预 Kubernetes 部分,使用 Docker:http://tensorflow.github.io/serving/serving_inception

我(大致)了解 Bazel 编译是一切工作的核心。但我试图了解如何生成 predict_pb2来自 tensorflow_serving.apis工作,这样我就可以换入我自己的自定义模型。

需要明确的是,这就是 maininception_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

我很难解包和调试 predict_pb2.PredictRequest()正在做,因为它是 Bazel 生成的。但我想将其重新指向一个完全不同的已保存模型,具有自己的 .pb 文件等。

如何引用不同的已保存模型?

最佳答案

预测服务,定义 here , 是 gRPC API 服务定义,它声明服务器将响应哪些 RPC 函数。从这个 proto 中,bazel/protoc 可以生成将在服务器和客户端中链接的代码(您提到的 predict_pb2)。

服务器扩展自动生成的服务here并为每个功能提供一个实现。

Python 客户端使用提供的 predict_pb2 并使用它来构建请求并使用正确的 API 发送 RPC。
predict_pb2.PredictRequest()是一个 PredictRequest 原型(prototype)定义 here这是 Predict() API 调用的请求类型(参见上面链接的 PredictService Proto 定义)。这部分代码只是构建一个请求和result = stub.Predict(request, 10.0)是实际发送请求的位置。

为了使用不同的模型,您只需要将 ModelSpec 的模型名称更改为您的模型。在上面的示例中,服务器加载了名为“inception”的 iception 模型,因此客户端使用 request.model_spec.name = 'inception' 对其进行查询。 .要改用您的模型,您只需要将名称更改为您的模型名称。请注意,您可能还需要将 signature_name 更改为您的自定义名称或将其完全删除以使用默认签名(假设已定义)。

关于docker - 用于自定义模型的 TensorFlow Serving,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43402648/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com