返回

TensorFlow Serving:轻松部署您的机器学习模型

人工智能

引言

TensorFlow Serving 是一个开源库,可让您轻松部署训练有素的 TensorFlow 模型并提供 gRPC 或 REST API 以进行推理。它简化了机器学习模型的部署过程,让您专注于构建和训练模型,而不是处理底层基础设施。

TensorFlow Serving 的好处

  • 快速部署: 使用 TensorFlow Serving,您可以快速部署您的模型,只需几行代码即可提供预测。
  • 可扩展性: TensorFlow Serving 非常适合可扩展部署,使您可以在多个服务器上部署模型以处理高吞吐量。
  • 多模型支持: TensorFlow Serving 支持部署多个模型,使您可以在单个端点提供多种预测。
  • 版本控制: TensorFlow Serving 提供版本控制,使您可以轻松管理模型的不同版本。
  • 易于监视: TensorFlow Serving 提供指标和可视化工具,使您可以监视模型的性能和健康状况。

如何使用 TensorFlow Serving

使用 TensorFlow Serving 部署模型的过程涉及以下步骤:

  1. 将模型导出为 SavedModel 格式。
  2. 使用 TensorFlow Serving 创建模型服务器。
  3. 使用 gRPC 或 REST API 客户端向模型发送请求。

步骤 1:导出模型

要将模型导出到 SavedModel 格式,请使用以下代码:

import tensorflow as tf

# 导出模型
model = tf.keras.models.load_model("my_model.h5")
model.save("saved_model")

步骤 2:创建模型服务器

要使用 TensorFlow Serving 创建模型服务器,请使用以下命令:

tensorflow_model_server --model_base_path=saved_model --port=8500

这将创建一个在端口 8500 上运行的模型服务器。

步骤 3:发送预测请求

您可以使用 gRPC 或 REST API 客户端向模型发送预测请求。 gRPC 提供了更快的性能,而 REST API 更易于使用。

示例 gRPC 客户端请求:

import tensorflow as tf
from tensorflow_serving.apis import predict_pb2
from tensorflow_serving.apis import prediction_service_pb2_grpc

# 创建 gRPC 客户端
channel = grpc.insecure_channel("localhost:8500")
stub = prediction_service_pb2_grpc.PredictionServiceStub(channel)

# 创建预测请求
request = predict_pb2.PredictRequest()
request.model_spec.name = "my_model"
request.inputs["input"].CopyFrom(tf.make_tensor_proto([1, 2]))

# 发送请求
result = stub.Predict(request)

# 打印预测
print(result.outputs["output"].float_val)

示例 REST API 客户端请求:

curl -X POST http://localhost:8500/v1/models/my_model:predict -d '{"instances": [[1, 2]]}' -H "Content-Type: application/json"

结论

TensorFlow Serving 是部署和提供 TensorFlow 模型的强大工具。它简化了部署过程,使您可以专注于构建和训练模型,而不是基础设施。通过使用 TensorFlow Serving,您可以快速、轻松地将机器学习模型投入生产。