TensorFlow Serving 安装 和 部署模型

本文详细介绍了如何在TensorFlow 1.9.0环境下,通过export model、docker运行tensorflow serving来部署模型。讲解了docker镜像的选择、端口映射、模型路径挂载、RESTful API和gRPC API的使用,以及遇到的问题和解决方法,包括PyFunc不支持和端口冲突问题。
摘要由CSDN通过智能技术生成

由于是tensorflow 1.9.0,tensorflow 2.0的那套简便的方法就用不了

大体思路:

  1. 首先export model,准备计算图的代码,将保存的参数restore进入计算图;
  2. 然后调用export model的方法,导出模型
  3. 模型导出之后就直接拉取tensorflow serving的镜像然后创建,这里注意如果是tensorflow-serving-1.x.0的镜像,docker run之后就直接可以访问容器服务,tensorflow-serving-1.x.0-devel的镜像需要docker run之后,再进入容器运行tensorflow_model_server指定容器映射的端口,model_name等等,如果计算图没有其他依赖,直接拉取tensorflow-serving-1.x.0就行
  4. 创建tensorflow serving镜像时需要指定端口映射,然后你可以通过这个端口访问serving服务,还需要将宿主机自身模型的path挂载到容器的/models
  5. 如何使用运行好的容器服务?可以通过RESTful API访问,也可以通过gRPC API访问
  6. 最后模型部分已经全部交给了tensorflow-server,再去写一个web服务包装一下就可以快速部署了

 

首先要安装docker,参见其他教程

安装一些包

pip install -U grpcio
pip install -U grpcio-tools

pip install -U protobuf

tensorflow-serving要和TensorFlow版本配合使用,否则后期调用会有一些问题

pip install tensorflow-serving-api==1.14.0

 

检查tensorflow serving是否安装成功,注意路径

Serve a Tensorflow model in 60 seconds

# Download the TensorFlow Serving Docker image and repo
docker pull tensorflow/serving

git clone https://github.com/tensorflow/serving
# Location of demo models
TESTDATA="$(pwd)/serving/tensorflow_serving/servables/tensorflow/testdata"

# 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 &

# 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] }

-p 8501:8501 将端口映射到8501,也可以改端口,例 -p 8000:8501  -p 9000:8501 ,后面的端口不能变(应该是TensorFlow serving封装好的,目前不是很懂)

-v "$TESTDATA/saved_model_half_plus_two_cpu:/models/half_plus_two" \

这句是将本地 $TESTDATA/saved_model_half_plus_two_cpu 挂载到docker 的这个位置  /models/half_plus_two

 

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

这句是传入测试实例   {"instances": [1.0, 2.0, 5.0]} ,请求docker上面部署好的模型 http://localhost:8501/v1/models/half_plus_two:predict  ,注意端口要统一,上面是9000,则 curl -d '{"instances": [1.0, 2.0, 5.0]}' \  -X POST http://localhost:9000/v1/models/half_plus_two:predict

curl -d ' \  -X POST

 

有两种写法

第一种

docker run -p 8500:8500 \
    --mount type=bind,source=/Absolute/path/to/local/saved_model/,target=/models/model_name \
    -t tensorflow/serving \
    -e MODEL_NAME=

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值