首页 飞桨领航团 帖子详情
第6课笔记
收藏
快速回复
飞桨领航团 AI达人创造营文章 314 2
第6课笔记
收藏
快速回复
飞桨领航团 AI达人创造营文章 314 2

训练模型转Hub模型

1. 创建必要的目录和文件

2. 修改 module.py 文件

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

BytesIO 用于把二进制图片转换成 Image.open 可以读取的格式
argparse 用来解析命令行参数
paddlehub 中的库用于装饰器,可以轻松添加命令行预测、服务部署功能

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

我们训练的模型保存在 /home/aistudio/work/mnist.pdparams 当中。接下来我们编写一个 PaddleHub Module,并定义一个 新的类 。这个类用来实现Hub的预测功能,包括Python调用、命令行调用和服务部署。

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

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

3. 预测
在 module.py 中编写好代码后,就可以通过 hub install xxx 的方式来安装模型了!

0
收藏
回复
全部评论(2)
时间顺序
SuperAI*
#2 回复于2021-08

666

1
回复
程序员小勇
#3 回复于2021-08
666

哈哈

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