前提条件:
tensorflow
包)。方法一:使用 Docker 安装 TensorFlow Serving (推荐)
Docker 提供了最简单、最便捷的方式来安装和运行 TensorFlow Serving。
安装 Docker (如果尚未安装)
如果您的系统上还没有安装 Docker,请按照 Docker 官方文档进行安装:
以下是在 Ubuntu 上安装 Docker 的基本步骤:
sudo apt update
sudo apt install docker.io
sudo systemctl start docker
sudo systemctl enable docker
安装完成后,建议将当前用户添加到 docker
用户组,这样您就可以在不使用 sudo
的情况下运行 Docker 命令:
sudo usermod -aG docker $USER
newgrp docker
注销并重新登录以使组更改生效。
拉取 TensorFlow Serving Docker 镜像
从 Docker Hub 拉取 TensorFlow Serving 的官方镜像。您可以选择 CPU 版本或 GPU 版本,具体取决于您的硬件配置:
CPU 版本:
docker pull tensorflow/serving:latest
GPU 版本 (如果您的服务器有 NVIDIA GPU):
docker pull tensorflow/serving:latest-gpu
latest
标签表示拉取最新版本的 TensorFlow Serving。您也可以指定特定的版本号,例如 tensorflow/serving:2.9.1
。
运行 TensorFlow Serving Docker 容器
运行 Docker 容器,并将您的 TensorFlow 模型目录挂载到容器中。
docker run -t --rm -p 8501:8501 \
-v /path/to/your/model:/models/your_model \
-e MODEL_NAME=your_model \
tensorflow/serving:latest &
说明:
-t
:分配一个伪终端。--rm
:容器停止后自动删除。-p 8501:8501
:将容器的 8501 端口映射到主机的 8501 端口(TensorFlow Serving 的默认端口)。-v /path/to/your/model:/models/your_model
:将主机上的模型目录 /path/to/your/model
挂载到容器的 /models/your_model
目录。-e MODEL_NAME=your_model
:设置模型名称为 your_model
。tensorflow/serving:latest
:使用的 TensorFlow Serving 镜像。&
:在后台运行容器。重要提示:
/path/to/your/model
替换为您的 TensorFlow 模型目录的实际路径。your_model
替换为您想要使用的模型名称。模型名称必须与模型目录的名称相匹配。验证 TensorFlow Serving 是否正在运行
使用 curl
命令向 TensorFlow Serving 发送一个请求,以验证它是否正在运行:
curl -X POST -T test.json http://localhost:8501/v1/models/your_model:predict
说明:
test.json
是一个包含测试数据的 JSON 文件。您需要根据您的模型输入格式创建该文件。your_model
是您在运行 Docker 容器时设置的模型名称。如果 TensorFlow Serving 正在运行,您应该会收到一个包含预测结果的 JSON 响应。
方法二:从源码构建 TensorFlow Serving (不推荐,除非您需要自定义构建)
如果您需要自定义构建 TensorFlow Serving,或者无法使用 Docker,您可以选择从源码构建。
安装 Bazel
TensorFlow Serving 使用 Bazel 作为构建工具。您需要安装 Bazel 才能从源码构建 TensorFlow Serving。
请按照 Bazel 官方文档进行安装:
通常,您需要下载 Bazel 的二进制安装包,并将其添加到您的 PATH
环境变量中。
克隆 TensorFlow Serving 代码仓库
从 GitHub 克隆 TensorFlow Serving 代码仓库:
git clone https://github.com/tensorflow/serving.git
cd serving
配置 TensorFlow Serving
运行 configure
脚本来配置 TensorFlow Serving:
./configure
该脚本会提示您输入 TensorFlow 的安装路径、CUDA 版本等信息。
构建 TensorFlow Serving
使用 Bazel 构建 TensorFlow Serving:
bazel build tensorflow_serving/...
构建过程可能需要一段时间。
运行 TensorFlow Serving
构建完成后,您可以在 bazel-bin
目录下找到 TensorFlow Serving 的可执行文件。
运行 TensorFlow Serving:
bazel-bin/tensorflow_serving/model_servers/tensorflow_model_server \
--port=8501 \
--model_name=your_model \
--model_base_path=/path/to/your/model
说明:
--port=8501
:指定 TensorFlow Serving 监听的端口。--model_name=your_model
:设置模型名称。--model_base_path=/path/to/your/model
:指定模型目录。重要提示:
/path/to/your/model
替换为您的 TensorFlow 模型目录的实际路径。your_model
替换为您想要使用的模型名称。可用镜像
如下是国内可用的镜像地址:
$ cat /etc/docker/daemon.json
{
"registry-mirrors": ["https://docker.xuanyuan.me"]
}
修改完后重启docker:
sudo systemctl daemon-reload
sudo systemctl restart docker
总结
推荐使用 Docker 安装 TensorFlow Serving,因为它更简单、更便捷。如果您需要自定义构建,可以选择从源码构建。请根据您的实际情况选择合适的方法。
额外提示:
希望这些详细的步骤能够帮助您成功安装 TensorFlow Serving!