官网教程地址:
https://github.com/tensorflow/serving
安装官方参考地址:
https://docs.docker.com/install/linux/docker-ce/ubuntu/
注:若安装过程中出现如下报错信息
”Got permission denied while trying to connect to the Docker daemon socket at unix:///var/run/docker.sock: Get http://%2Fvar%2Frun%2Fdocker.sock/v1.26/images/json: dial unix /var/run/docker.sock: connect: permission denied“
解决办法:
docker进程使用Unix Socket而不是TCP端口。而默认情况下,Unix socket属于root用户,需要root权限才能访问。
docker守护进程启动的时候,会默认赋予名字为docker的用户组读写Unix socket的权限,因此只要创建docker用户组,并将当前用户加入到docker用户组中,那么当前用户就有权限访问Unix socket了,进而也就可以执行docker相关命令
sudo groupadd docker #添加docker用户组
sudo gpasswd -a $USER docker #将登陆用户加入到docker用户组中
newgrp docker #更新用户组
docker ps #测试docker命令是否可以使用sudo正常使用
1、准备tensorflow serving的Docker环境
docker pull tensorflow/serving
2、下载官方示例代码
git clone https://github.com/tensorflow/serving
3、运行tensorflow serving
docker run -p 8501:8501 --mount type=bind,source=/home/jinyan/serving/tensorflow_serving/servables/tensorflow/testdata/saved_model_half_plus_two_cpu,\
target=/models/half_plus_two -e MODEL_NAME=half_plus_two -t tensorflow/serving &
这里需要注意的是,较早的docker版本没有“–mount”选项,比如Ubuntu16.04默认安装的docker就没有
4、客户端验证(在服务器本机测试模型是否正常工作)
curl -d '{"instances": [1.0, 2.0, 5.0]}' \
-X POST http://localhost:8501/v1/models/half_plus_two:predict
返回结果若为{ "predictions": [2.5, 3.0, 4.5] }
说明模型部署成功。
注:这里需要注意,源码中half_plus_two的模型版本是00000123,但在访问时也必须输入v1而不是v000000123
3、模型编译
python tensorflow_serving/example/mnist_saved_model.py models/mnist
4、运行tensorflow serving
docker run -p 8500:8500 \
--mount type=bind,source=$(pwd)/models/mnist,target=/models/mnist \
-e MODEL_NAME=mnist -t tensorflow/serving
5、客户端验证
python tensorflow_serving/example/mnist_client.py --num_tests=1000 --server=127.0.0.1:8500
返回结果若为Inference error rate: 11.13%
则说明模型部署成功。
注:直接运行mnist_client.py会出现找不到“tensorflow_serving”的问题,需要手动安装:
pip install tensorflow-serving-api
git地址:https://github.com/tobegit3hub/simple_tensorflow_serving
1、安装
pip install simple_tensorflow_serving
2、下载源代码
git clone https://github.com/tobegit3hub/simple_tensorflow_serving
3、启动serving
simple_tensorflow_serving --model_base_path="./models/tensorflow_template_application_model"