TensorFlow训练好的PB格式的模型文件可以部署成Docker,提供HTTP接口访问,目前是主流的使用模式的做法。
步骤如下
1.准备模型
该模型为训练好的PB格式模型文件,这里使用github开源的一个模型进行部署。
git clone https://github.com/tensorflow/serving
客户下的文件,在serving\tensorflow_serving\servables\tensorflow\testdata下有个saved_model_half_plus_two_cpu文件夹,里面就是训练好的模型。
这个模型是将预测数据除以2再加上2,例如:预测数据为3,那预测结果为3/2+2=3.5
2.拉去基础镜像
这里需要安装docker环境,启动docker服务,centos直接yum install docker,并启动服务即可,不再详细介绍。
拉去镜像:
docker pull tensorflow/serving
3.创建容器
把saved_model_half_plus_two_cpu模型文件夹放到/root/docker/目录下
创建容器:
docker run -t --rm -p 8501:8501 -v "/root/docker/saved_model_half_plus_two_cpu:/models/half_plus_two" -e MODEL_NAME=half_plus_two --name half_plus_two tensorflow/serving &
其中:
1./docker/saved_model_half_plus_two_cpu:模型文件夹目录
2.-p表示端口号,8500是grpc通信端口,8501是restful_api通信端口
3./models/half_plus_two:模型存放在docker容器的位置
4.–name half_plus_two:容器名称为half_plus_two
如下界面表示启动成功:
4.测试docker服务
使用postman或者curl均可
cur指令如下:
curl -d '{"instances": [1.0, 2.0, 3.0]}' -X POST http://localhost:8501/v1/models/half_plus_two:predict
预测样本是“instances”: [1.0, 2.0, 3.0],预测结果如下,结果是正确的,每个输入值都被除以2再加上2:
结果如下:
“predictions”: [2.5, 3.0, 3.5]
postman如下: