tensorflow serving部署模型

tensorflow serving部署模型

1.安装相关依赖包

安装grpc

pip install grpcio

安装tensorflow-serving 依赖关系

sudo yum install -y \
        build-essential \
        curl \
        libcurl3-dev \
        git \
        libfreetype6-dev \
        libpng12-dev \
        libzmq3-dev \
        pkg-config \
        python-dev \
        python-numpy \
        python-pip \
        software-properties-common \
        swig \
        zip \
        zlib1g-dev

准备tensorflow-serving的docker环境

docker pull tensorflow/serving

安装TensorFlow Serving Python API PIP package

pip install tensorflow-serving-api

2.根据tensorflow-serving的要求生成相应结构的模型

代码:
在这里插入图片描述
生成模型:
在这里插入图片描述
注意,这里将模型保存在了"demo_model/版本号"文件夹中,而不是直接保存在了"demo_model"文件夹中,这是因为TensorFlow Serving要求在模型目录下加一层版本目录,来进行版本维护、热更新等。

3.启动tensorflow-serving docker容器

有两种方式:Restful方式和gRPC方式。
(1)Restful方式
端口:8501
部署流程:
①根据生成模型目录,将模型挂载到docker中,运行启动命令
②服务启动
③Rest api调用,模型预测

(2)gRPC方式
端口:8500
部署流程:
①根据生成模型目录,将模型挂载到docker中,运行启动命令
②服务启动
③编写测试py
④运行测试命令,模型预测。如:

python tensorflow_serving/example/mnist_client.py --num_tests=1000 --server=127.0.0.1:8500

下面以Restful方式为例:
根据生成模型目录,将模型挂载到docker中,运行启动命令:

docker run -p 8501:8501 \
 -v /tmp/tfserving/serving/models/demo_model:/models/demo_model: \
 -e MODEL_NAME=demo_model \
 -t tensorflow/serving &

服务启动:
在这里插入图片描述
注意,这里的模型所在路径是刚才"demo_model"目录的路径,而不是"demo_model/版本号"目录的路径,因为TensorFlow Serving认为用户的模型所在路径中包含了多个版本的模型。预测时,默认加载路径下版本号最大的模型(认为其最新),进行预测。

4.Rest api调用,模型预测

单样本预测,运行命令:

curl -d '{"instances": [[2]]}' -X POST http://localhost:8501/v1/models/demo_model:predict

结果:
在这里插入图片描述

多样本预测,运行命令:

curl -d '{"instances": [[2], [3], [5]]}' -X POST http://localhost:8501/v1/models/demo_model:predict

结果:
在这里插入图片描述
注意,instances是一个list,list中每个元素是一个待预测实例,每个实例里面是所有参数的值, 所以参数按照这种方式构造就可以了。

5.Rest api调用,查看指定模型信息

运行命令:

curl http://localhost:8501/v1/models/demo_model

在这里插入图片描述

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值