TensorFlow Serving,GPU版安装

本文详细介绍如何使用TensorFlow Serving部署GPU加速的模型。主要内容包括安装依赖、源码编译及配置GPU支持,并通过MNIST模型示例演示整个流程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

TensorFlow Serving,GPU

Tensorflow serving 是一个开源的工具,主要用来部署训练好的模型,进行Inference。
Tensorflow serving Github地址
本文主要介绍tensorflow serving的安装,支持GPU模型。

安装依赖

Bazel

TensorFlow Serving 要求0.4.5以上的Bazel。Bazel 的安装说明here

  1. 下载安装脚本here。以 bazel-0.4.5-installer-linux-x86_64.sh为例子,
chmod +x bazel-0.4.5-installer-linux-x86_64.sh
./bazel-0.4.5-installer-linux-x86_64.sh --user
  1. 列表内容

    加入环境变量到 ~/.bashrc中

export PATH="$PATH:$HOME/bin"

gRPC

使用 pip 安装,很方便。

sudo pip install grpcio

Packages

其他需要的依赖包

sudo apt-get update && sudo apt-get install -y \
        build-essential \
        curl \
        libcurl3-dev \
        git \
        libfreetype6-dev \
        libpng12-dev \
        libzmq3-dev \
        pkg-config \
        python-dev \
        python-numpy \
        python-pip \
        software-properties-common \
        swig \
        zip \
        zlib1g-dev

源码安装

git clone --recurse-submodules https://github.com/tensorflow/serving
cd serving

官网的例子没有使用GPU,所以部署自己的模型的时候,速度会比较慢(InceptionV3可能要10+s)。支持GPU版本的配置。compile_tensorflow_serving.sh
请根据自己的GPU和文件路径之类的做相应的替换。
执行以下命令,就会进行编译了 server了。

./compile_tensorflow_serving.sh

编译成功的话,model server在以下路径执行。
bazel-bin/tensorflow_serving/model_servers/tensorflow_model_server

如果external/nccl_archive/src/nccl.h: No such file or directory错误,需要另外安装nccl

git clone https://github.com/NVIDIA/nccl.git
cd nccl/
make CUDA_HOME=/usr/local/cuda

sudo make install
sudo mkdir -p /usr/local/include/external/nccl_archive/src
sudo ln -s /usr/local/include/nccl.h /usr/local/include/external/nccl_archive/src/nccl.h

部署mnist模型

训练一个简单的模型,然后保存。细节可以参考Basic Serving Tutorial

rm -rf /tmp/mnist_model
bazel build //tensorflow_serving/example:mnist_saved_model
bazel-bin/tensorflow_serving/example/mnist_saved_model /tmp/mnist_model
Training model...

...

Done training!
Exporting trained model to /tmp/mnist_model
Done exporting!

启动tensorflow model server,

bazel-bin/tensorflow_serving/model_servers/tensorflow_model_server --port=9000 --model_name=mnist --model_base_path=/tmp/mnist_model/

这时候使用nvidia-smi查看显存状态,可以看到server是否已经正常使用GPU。

测试mnist的效果

bazel build //tensorflow_serving/example:mnist_client
bazel-bin/tensorflow_serving/example/mnist_client --num_tests=1000 --server=localhost:9000
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值