使用python库tensorflow_serving通信调用tensorflow_serving

本文使用文心一言生成,其中的真实性本人没有检查,但是根据已有的代码,代码逻辑基本没问题。

1. python库tensorflow_serving的介绍

  • TensorFlow Serving是一个为TensorFlow模型提供服务的工具,可以用于将训练好的模型部署到生产环境中。以下是TensorFlow Serving库中的一些主要函数:
tensorflow_serving.apis.predict_pb2: 用于处理预测请求的protobuf消息定义。
tensorflow_serving.apis.predict_response_pb2: 用于处理预测响应的protobuf消息定义。
tensorflow_serving.client.Predictor: 用于与TensorFlow Serving服务进行通信的类。可以使用该类向服务发送预测请求并获取响应。
  • tensorflow_serving.apis.predict_pb2 是 TensorFlow Serving 中的一个模块,用于处理预测请求。这个模块中定义了一些协议缓冲区 (protobuf) 消息类型,用于表示预测请求和响应。以下是 tensorflow_serving.apis.predict_pb2 中一些主要的类和函数:
 PredictRequest: 这是一个 Protocol Buffers 消息类型,用于表示预测请求。它包含了用于指定模型和输入数据的字段。可以通过创建一个 PredictRequest 对象,并设置其字段来构建一个预测请求。
 PredictResponse: 这也是一个 Protocol Buffers 消息类型,用于表示预测响应。它包含了模型的输出数据。可以通过创建一个 PredictResponse 对象,并使用从服务接收到的数据进行填充。
 make_grpc_request: 这个函数可以用于向 TensorFlow Serving 服务发送 gRPC 请求。它接受一个 PredictRequest 对象作为参数,并将其发送到指定的服务地址。
  • TensorFlow Serving 的 apis.predict_response_pb2 模块是一个 Protocol Buffers 消息定义,用于处理来自 TensorFlow Serving 服务的预测响应。该模块中定义了一个名为 PredictResponse 的类,该类包含以下字段:
    model_spec: 包含模型规格信息的 ModelSpec 对象。
    outputs: 包含预测结果的输出张量列表。

以上内容可以大概参考一下,文心一言目前给出的有些是互相矛盾的信息

2. 代码实例,生成于文心一言

import grpc  
import tensorflow_serving.apis.predict_pb2  
import tensorflow_serving.apis.prediction_service_pb2_grpc  
import numpy as np  
import cv2  
  
# 设置服务器的地址和端口  
host = 'localhost'  
port = 8500  
  
# 读取待检测的图片  
image_path = 'path/to/image.jpg'  
image = cv2.imread(image_path)  
image = cv2.cvtColor(image, cv2.COLOR_BGR2RGB)  
image = cv2.resize(image, (224, 224))  
image = np.array(image, dtype=np.float32)  
image = image / 255.0  
  
# 构建预测请求  
request = tensorflow_serving.apis.predict_pb2.PredictRequest()  
request.model_spec.name = 'your_model_name'  # 替换为你的模型名称  
request.model_spec.signature_name = 'serving_default'  # 使用默认签名函数  
request.inputs['input'].CopyFrom(tf.make_tensor_proto(image))  # 将图片数据添加到输入张量中  
  
# 连接到 TensorFlow Serving 服务  
channel = grpc.insecure_channel(f'{host}:{port}')  
stub = tensorflow_serving.apis.prediction_service_pb2_grpc.PredictionServiceStub(channel)  
  
# 发送预测请求并接收结果  
response = stub.Predict(request)  
output = response.outputs['output'].float_val  # 获取输出结果,这里假设输出是一个浮点数列表  
print(output)

附带一下远程调用grpc的介绍和服务搭建参考博客:https://zhuanlan.zhihu.com/p/384953226

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值