使用tensoflow serving来部署模型推理节点
使用tensoflow serving来部署模型推理节点
这里使用的时docker来进行模型的部署,主要是docker更轻便和方便。
1.训练一个分类模型
分类模型一般很简单,这里我已经训练好一个(测试97.6准确率)的分类模型,因为是本地跑的,所以准确率先对低一点,毕竟受到设备的限制(显存才4G)。
2.模型导出格式
模型的导出必须要全格式,而非tensorflow的checkpoint(一些权重文件),应该是tensorflow提供的pb模型格式。
3.docker部署tensoflow serving
3.1下载tensorflow/serving镜像
docker pull tensorflow/serving:latest-devel
这里选择的是latest-devel版本的,下载前请设置好docker的下载源,我使用的是阿里云的docker仓库的源,所以下载很快。
3.2查看镜像
docker images
3.3启动容器
下载好后就要根据镜像启动容器啦,这里的-it表示交互(启动后将会直接进入到容器里面),-p为端口的映射。
docker run -it -p 8051:8051 tensorflow/serving:latest-devel
3.4上传模型到docker容器中
docker cp 本地路径 容器ID:路径
3.5部署模型
部署模型十分简单,tensorflow serving部署模型运行热更新(也就是说不用停掉服务,也可以更新模型),这里使用http端口的部署模式,tensorflow serving部署还提供其他几种部署模式。(如果当成后台计算节点来说http不是最好的)。
tensorflow_model_server \--rest_api_port=8501 \--model_name=VGG16 \--model_base_path="/home/.../.../saved" # 文件夹绝对地址根据自身情况填写,无需加入版本号
rest_api_port为端口号,model_name自定义(后面会用到),model_base_path你保存模型的路径。
3.6调用http接口
服务器 URI: http://服务器地址:端口号/v1/models/模型名:predict
解释一下,v1是版本号(v2,v3等等)
predict是模型调用的方法,一般的模型都是predict,除非你在模型里面自定义了方法,否则一般使用predict
import json
import numpy as np
import requests
#将图片封装到json里面,然后post到推断节点中
data= json.dumps({"instances":image}
)
headers = {"content-type": "application/json"}
json_response = requests.post('http://xxx.xxx.xxx.xxx:8051/v1/models/VGG16:predict',data=data, headers=headers)
result = json.loads(json_response.text)
其中result长这样
{'predictions': [[0.00384901767, 0.995562077, 0.000588864845]]}
其三个值分别对应分类类别的score。
使用tensoflow serving来部署模型推理节点相关推荐
- 【读点论文】EfficientFormer: Vision Transformers at MobileNet Speed,运用纯transformer架构对比卷积模型在终端上部署的推理速度
EfficientFormer: Vision Transformers at MobileNet Speed Abstract 视觉transformer(ViT)在计算机视觉任务中取得了快速的进展 ...
- nvidia-docker2完成tensorflow/serving深度学习模型在线部署
深度学习技术已经广泛应用在各个行业领域.实际应用,通过大量数据往往可以训练一个泛化能力好的模型,但如何将模型进行快捷.方便的远程部署,已成为好多企业考虑的问题.现阶段,常用的深度学习模型远程部署工具有 ...
- java lstm pb_在Tensorflow Serving上部署基于LSTM的文本分类模型
一些重要的概念 Servables Servables 是客户端请求执行计算的基础对象,大小和粒度是灵活的. Servables 不会管理自己的运行周期. 典型的Servables包括: a Tens ...
- 模型推理部署——基础概念篇
模型推理部署--基础概念篇 训练(training)vs推理(inference) 训练是通过从已有的数据中学习到某种能力,而推理是简化并使用该能力,使其能快速.高效地对未知的数据进行操作,以获得预期 ...
- ModelArts部署紫东太初大模型推理服务经验分享
零.项目背景 需要在ModelArts上部署微调后的下游任务推理服务. 主要踩坑点: 一.环境准备 MindSpore 1.6.1 Docker 20.10.17 紫东太初模型代码 omni-perc ...
- 一文掌握FastDeploy Serving服务化部署(打造线上证件照制作系统,含完整代码)
目录 一.概述 1.1 服务化部署 1.2 FastDeploy简介 二.搭建线上证件照制作系统 2.1 准备环境 2.1.1 安装Docker 2.1.2 安装NVIDIA Container To ...
- 浅析云原生模型推理服务框架KServe
简介 KServe 提供 一个 Kubernetes 自定义资源定义,用于在任意框架上提供机器学习 (ML) 模型服务. 它旨在通过为常见的 ML 框架(如:Tensorflow.XGBoost.Sc ...
- 【模型推理加速系列】05: 推理加速格式TorchScript简介及其应用
简介 本文紧接前文:模型推理加速系列|04:BERT模型推理加速 TorchScript vs. ONNX 实验结果:在动态文本长度且大batch size的场景下,TorchScript 格式的in ...
- 深度学习实战——模型推理优化(模型压缩与加速)
忆如完整项目/代码详见github:https://github.com/yiru1225(转载标明出处 勿白嫖 star for projects thanks) 目录 系列文章目录 一.实验思路综 ...
最新文章
- 求1 + 2 + 3...+ n的和
- 标准功能模块组件 -- 内部联络单组件,内部邮件组件,提高多人异地协同办公效率...
- R语言随机森林回归(randomforest)模型构建
- cisco 2811 安装HWIC-2FE卡 升级IOS 记录
- Debugging into .NET Core源代码的两种方式
- HDU Victor and World (最短路+状态压缩)
- 指针、引用以及const限定符、constexpr限定符
- html canvas直线进度条,js+HTML5 canvas 实现简单的加载条(进度条)功能示例
- matlab heaviside,Matlab编写的Lyapunov指数计算程序汇总.doc
- java的位置_Java中数据存放的位置
- cnn输入层_一文掌握CNN卷积神经网络
- 【报告分享】全面解码美妆消费者心智-阿里妈妈.pdf(附下载链接)
- Django相关配置(包括数据库、templates、static等)信息—Django2.0
- Vagrant 手册之 Provisioning - file 配置程序
- php foreach、while性能比较
- Eclipse快捷键的设置和使用(大小写快捷键等)
- 树莓派3B+无显示屏安装教程(一)
- 【深度学习】02-06-谈谈机器学习的原理(选修)-李宏毅老师2122深度学习课程笔记
- linux服务器定时关机重启,Ubuntu Server 10.10 每天定时开关机
- C++核心准则讨论:如果一个类是资源句柄,则它需要一个构造函数,一个析构函数以及复制和/或移动操作
热门文章
- 7z(p7zip)压缩软件在Linux下的安装和使用
- 快速开发平台网格部件合并单元格。
- postsharp初体验
- mybatis中LIKE模糊查询的几种写法以及注意点(亲测第三种CONCAT()函数的)
- Java 定时任务调度(8)--ElasticJob 入门实战(ElasticJob-Lite使用)
- MYSQL中常用的强制性操作(例如强制索引)
- 关于graphviz绘制的点(dot)图在显示时中文乱码问题的解决方法(亲测)
- MongoDB 聚合操作之$group使用
- Go的sync.Mutex(七):互斥锁锁定一个资源 只有一个协程操作其他等待
- php和openresty效率,openresty say_hello 性能测试