首页 飞桨领航团 帖子详情
百度AI达人创造营8.5笔记
收藏
快速回复
飞桨领航团 文章AI达人创造营 340 0
百度AI达人创造营8.5笔记
收藏
快速回复
飞桨领航团 文章AI达人创造营 340 0

训练模型转Hub模型
内容根据PaddleHub文档 教程>如何创建自己的Module 改编。文档基于情感分类(NLP)模型,本文基于(CV),开发者可根据需要相互参考。
1. 创建必要的目录和文件
在 /home/aistudio/work 目录下创建 mnist_predict 文件夹,并在该目录下分别创建 module.py __init__.py ,其中 module.py 作为 Module 的入口,用来实现逻辑预测功能。

2. 修改 module.py 文件
hub模型的抓换基于我们在此之前写过的代码。在转换模型之前,我们假设你已经通过PaddlePaddle2.x代码构建了一个网络并且能够实现预测功能,为了方便理解,这里使用PaddlePaddle2.1文档中的 通过极简方案构建手写数字识别模型 作为基础代码。通过对其进行包装修饰得到所需的 module.py 文件。

2.1 引入必要的头文件
编写 module.py 的第一步就是导入依赖库。这里有一些库不太常见,比如 BytesIO、argparse 和 paddlehub.module.module 里的内容。

2-2 定义类
我们原先的网络可能基于一个类去定义,并且该类继承 paddle.nn.Layer 。在模型转换的时候,我们需要 新建 一个类,把原来的网络放到全局去实例化,然后在需要的时候从新建的类中调用。

如果希望Module可以支持命令行调用,则需要提供一个经过runnable修饰的接口,接口负责解析传入数据并进行预测,将结果返回。如果不需要提供命令行预测功能,则可以不实现该接口,PaddleHub在用命令行执行时,会自动发现该Module不支持命令行方式,并给出提示。

如果希望Module可以支持PaddleHub Serving部署预测服务,则需要提供一个经过serving修饰的接口,接口负责解析传入数据并进行预测,将结果返回。如果不需要提供PaddleHub Serving部署预测服务,则可以不需要加上serving修饰。

3. 预测
在 module.py 中编写好代码后,就可以通过 hub install xxx 的方式来安装模型了!在 终端-1 运行命令 hub serving start -m mnist_predict 。通过POST请求实现预测

0
收藏
回复
在@后输入用户全名并按空格结束,可艾特全站任一用户