Tensorflow 项目部署的几种方式,落地使用是简单分为算法项目和应用项目;

项目部署方式描述

方式 1 : 算法项目使用 Serving 进行部署,为应用项目提供服务,这样就可以做到算法项目与应用项目最简分离。

方式 2 : 算法项目进行再次封装为服务型,为应用项目提供服务,这样需要进一步的封装算法项目,可以形成一套规范实现自动化封装。

方式 3 : 算法项目与应用项目,各自分离运行,但需要一定的约束和规范,以过程式进行运行;

GPU 服务器部署搭配

  • nvidia driver + nvidia cuda-docker + nvidia docker + docker application
  • nvidia dirver + 全局 nvidia cuda + tensorflow (-gpu) docker + docker applicaition
  • nvidia dirver + 全局 nvidia cuda + application package

当然还有集成式运行和部署方式,我这里仅仅列举我这里使用过的方式,下面我简单说下我以方式 2 的方式进行部署 和 ​​nvidia driver + nvidia cuda-docker + nvidia docker + docker application​​ 服务器部署搭配方式 ;

算法项目进行再次封装,使用 Docker 进行部署运行,应用项目调用封装的服务即可,适用于项目使用 Serving 还无法部署的项目;

1.安装 Nvidia 驱动

根据服务器自身的显卡进行驱动下载与安装,下载地址:

​https://www.nvidia.cn/Download/index.aspx?lang=cn​

2.安装 Docker

安装和升级最新版 Docker

​https://docs.docker-cn.com/​

安装 Nvidia-Docker

​https://github.com/NVIDIA/nvidia-docker​

注意指定 runtime 运行环境

docker run --runtime=nvidia --rm nvidia/cuda:9.0-base nvidia-smi

3.安装 Cuda Docker

根据算法自身使用的 Cuda 版本,选择 Cuda 基础镜像进行打包运行

​https://hub.docker.com/r/nvidia/cuda/​

如果不使用 Cuda Docker 的话,可以安装全局的 Cuda :

​https://tensorflow.google.cn/install/gpu​

4. 打包封装的 Docker 镜像

python3 安装与依赖 ,可以安装 python-pip3

​https://tensorflow.google.cn/install/pip​

当然,有时候会缺乏网络协议和 ​​opencv-python​​ 的依赖库

RUN apt-get update

# opencv python 的依赖的 so 库 , 可以安装 qt 和 opencv-python
RUN apt-get install -y python-qt4
RUN apt-get install -y python3-pip

# 缺乏 TCP 通信协议,安装 netbase
RUN apt-get install -y netbase

关于 tensorflow 的 docker 相关使用

​https://tensorflow.google.cn/install/docker​

5. 部署运行

运行时需要指定 ​​runtime​​​ ,即 ​​--runtime=nvidia​​ , 比如,指定后就可以使用 GPU 进行运行算法了;

docker run -p 8080:8080 --runtime=nvidia --name ai_ssrve \
-v $PWD/ssrve:/app/ ssrve --restart=always