tensorflow模型部署:采用flask+docker+tensorflow_serving,提供模型线上预测服务.
安装flask, uwsgi, nginx, docker, tensorflow_serving
flask : 轻量级的web框架,使用简单.
nginx :高并发处理的好.
apache:稳定
安装:
sudo pip3 install flask
sudo apt-get install nginx
sudo pip3 install uwsgi
docker : 模型部署方便,不影响其他环境
tensorflow_serving : 官方提供的模型部署
(能够直接使用tensorflow_serving来配置API,但还是用的flask)
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
sudo apt-get update
sudo apt-get install docker-ce
docker ps #查看docker是否安装成功
sudo su #切换到root 用户下, 如果已是root用户则忽略
docker pull tensorflow/serving
#此处的ubuntu为博主的用户名,请更改为自己的用户名,或者可以跳过下面两个步骤
mkdir /home/ubuntu/tensorflow_serving
cd /home/ubuntu/tensorflow_serving
#clone tensorflow/serving
git clone https://github.com/tensorflow/serving
#这里是将一个tensorflow自带的模型 跑起来, 如果能成功,就说明你的环境已经部署成功了.
docker run -d -p 8500:8500 --mount \
type=bind,\
source=/home/ubuntu/serving/tensorflow_serving/servables/tensorflow/testdata/saved_model_half_plus_two_cpu,\
target=/models/half_plus_two -t --name ner tensorflow/serving
#如果不报错, 会出现类似下面的编码
003ec8a7b0b4fbf53159d0e1fe46162f35b2ab4707ec8782b331fbb33f39dc57
#运行docker ps
docker ps
#就会出现下面这样的结果.
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
003ec8a7b0b4 tensorflow/serving "/usr/bin/tf_serving…" 3 minutes ago Up 3 minutes 0.0.0.0:8500->8500/tcp, 8501/tcp ner
如果成功执行到这一步, 则你的环境已经配置好了,下一篇, 开始编写flask代码, 及pb模型的转换, 最终完成模型的部署上线.