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
运行环境
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
的依赖库
关于 tensorflow 的 docker 相关使用
https://tensorflow.google.cn/install/docker
5. 部署运行
运行时需要指定 runtime
,即 --runtime=nvidia
, 比如,指定后就可以使用 GPU 进行运行算法了;