您当前的位置:首页 > IT编程 > 情感分类
| C语言 | Java | VB | VC | python | Android | TensorFlow | C++ | oracle | 学术与代码 | cnn卷积神经网络 | gnn | 图像修复 | Keras | 数据集 | Neo4j | 自然语言处理 | 深度学习 | 医学CAD | 医学影像 | 超参数 | pointnet | pytorch | 异常检测 | Transformers | 情感分类 |

自学教程:轻松搞定tensorflow模型部署到TF serving生产环境,提供在线实时预测服务

51自学网 2023-11-19 09:45:34
  情感分类
这篇教程轻松搞定tensorflow模型部署到TF serving生产环境,提供在线实时预测服务写得很实用,希望能帮到您。
TF Serving有Docker、APT(二进制安装)和源码编译三种方式,但考虑实际的生产环境项目部署和简单性,推荐使用Docker方式。我自己尝试过源码编译,但是linux下源码编译安装软件本来就容易出现各种错误,自己对tf serving使用还不太熟,就一直没有成功,最后放弃。不过,按照官方说法,源码编译安装的整体运行速度会优于其他方法。下面详细介绍使用docker方法安装tf serving。

一、模型转化
本案例中使用的模型是keras框架训练的,所有如果要进行tf serving部署,首先要将其转化为SavedModel格式。原始模型是这个样子



通过程序转化将其转化为下面这个样子,↓

。模型的名字是resnet,模型的版本是1,tf serving支持热更新,会加载模型最新的版本。其中 saved_model.pb包含使用 MetaGraphDef protobuf 对象定义的计算图;assets 包含附加文件;variables 目录包含 tf.train.Saver() 对象调用 save() API 生成的文件。

将h5模型[转化为SavedModel格式模型脚本在此。

如果你是CheckPoint或其他格式模型,就需要其他转化方式了。

二、docker镜像下载
  首先你需要安装docker,方法自行百度。安装好后,下载tfserving镜像。
docker pull tensorflow/serving:latest

这里使用的是非GPU版。如果需要GPU则下载tensorflow/serving:latest-gpu,如果使用GPU版本,则还需要下载nvidia-docker,启动时容器时执行 nvidia-docker xxxx。下载完成。
三、ModelServer制作
  制作ModelServer主要有两种方法,一是将模型拷贝到容器中进行模型服务。二是将模型挂载到容器中进行服务。如果你了解docker,本质上没有区别。这里讲一下将模型拷贝到容器中进行模型服务。
1、启动serving容器
docker run -d --name serving_base tensorflow/serving
2、将本地的模型文件复制到容器内部。/tmp/resnet改成你本地模型路径。serving_base:/models/是serving镜像启动后容器的一个文件夹,serving默认加载的是这个文件夹下的模型。所以,将模型拷贝到models文件夹。

docker cp /tmp/resnet serving_base:/models/

3、提交保存容器修改,将serving_base容器保存成镜像。

    这里的my_resnet_serving可以指定为任意你想要的名字。
    –change “ENV MODEL_NAME resnet”:提交server运行时的环境变量MODEL_NAME为resnet。serving默认服务的模型名字是model,所以,保存镜像时要改变这个环境变量为你的模型名字。


docker commit  --change "ENV MODEL_NAME resnet" serving_base  my_resnet_serving

你可能会遇到这个错误: Could not find base path /models/model for servable model,其实就是没有明确指定要服务的模型名字。

4、关闭并清除基础容器

docker kill serving_base
docker rm serving_base

5、运行docker images查看刚才生成的镜像。已经得到tensorflow model server了,接下来就是运行它。


四、开启服务
docker run -p 8501:8501   -t  my_resnet_serving  
输出如下,恭喜成功!
查看:curl http://localhost:8501/v1/models/resnet

五、执行本地request访问

client客户端脚本点击链接
这是在官方教程上更改的适合自己的,大家根据自己的情况修改









 
返回列表
keras h5模型转化tensorflow serving模型脚本和restful client访问脚本
51自学网自学EXCEL、自学PS、自学CAD、自学C语言、自学css3实例,是一个通过网络自主学习工作技能的自学平台,网友喜欢的软件自学网站。
京ICP备13026421号-1