使用docker创建tensorflow serving

一、Docker介绍

Docker包含Image(镜像)、Container(容器)、Repository(仓库)。镜像是 Docker 运行容器的前提,Docker 的核心,是只读的;仓库是存放镜像的场所;容器与镜像的唯一区别在于容器的最上面那一层是可读可写的。容器 = 镜像 + 读写层。

二、拉取tensorflow serving镜像

假设已经安装好Docker。

1、获取tensorflow/serving镜像

(1)直接使用docker pull拉取

docker pull tensorflow/serving

(2)从本地拉取镜像,在导入到服务器上
因公司服务器不能连外网,无法拉取tensorflow/serving镜像,采用本地拉取后倒入的方式。
直接 pull报错:Error response from daemon: Get https://registry-1.docker.io/v2/: net/http: request canceled while waiting for connection (Client.Timeout exceeded while awaiting headers)

  • 在有公网环境下使用 docker pull 命令下载相应的镜像,使用docker images 列出所有镜像:
[ailab0]$ docker pull tensorflow/serving
[ailab0]$ docker images
REPOSITORY                         TAG                 IMAGE ID            CREATED             SIZE
tensorflow/serving                latest                                   1 weeks ago         2.18GB
  • 使用docker save命令对镜像进行打包:
[ailab0]$ docker save -o tmp_tf_serving.tar tensorflow/serving :latest
#将.tar保存到本地
[ailab0]$ sz tmp_tf_serving.tar
  • 将打包好的镜像传送至内网环境的机器,使用docker load 命令将镜像加载:
#将本地.tar上传到[ailab1]
[ailab1]$ rz tmp_tf_serving.tar
[ailab1]$ docker load -i tmp_tf_serving .tar
Loaded image: tensorflow/serving :latest
  • 现在使用docker images 就可以查出刚才加载的镜像了。
[ailab1]$ docker images
REPOSITORY           TAG                 IMAGE ID            CREATED             SIZE
tensorflow/serving   latest                      			12 months ago       220MB
horovod_ailab        base                        			14 months ago       8.75GB
tensorflow/serving   1.12.0-gpu                  			20 months ago       2.18GB

三、TensorFlow Serving部署模型

使用docker run的方式部署服务

# Location of demo models
#在docker 容器里自己的目录下载上传tensorflow_serving源码
TESTDATA="$(pwd)/serving/tensorflow_serving/servables/tensorflow/testdata"
#-v "用于绑定目录映射。模型实际目录:tensorflow/serving容器里的模型映射目录(定义后自动生成关联实际目录内容)"
#-e MODEL_NAME=wdl_model指定TFS加载模型名字,和目录tensorflow-serving/model下的模型名字保持一致
#--enable_batching=true 设置TFS开启batch功能。
#--batching_parameters_file=/models/batching_parameters.txt 绑定批量参数。
# Start TensorFlow Serving container and open the REST API port
docker run -t --rm -p 8501:8501 \
    -v "$TESTDATA/saved_model_half_plus_two_cpu:/models/half_plus_two" \
    -e MODEL_NAME=half_plus_two tensorflow/serving
    --enable_batching=true 
    --batching_parameters_file=/models/batching_parameters.txt &

# Query the model using the predict API
curl -d '{"instances": [1.0, 2.0, 5.0]}' \
    -X POST http://localhost:8501/v1/models/half_plus_two:predict

# Returns => { "predictions": [2.5, 3.0, 4.5] }

参考文献:离线获取docker镜像

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值