开发 | PyTorch好助手:PyTorch Hub一键复现各路模型

2019 年 6 月 11 日 AI科技评论

无论 ResNet、BERT、GPT、VGG、PGAN,还是 MobileNet,只需一行代码轻松复现!

AI 科技评论按:6 月 11 日,Facebook 宣布推出 PyTorch Hub。这是一个简单的 API 和工作流程,包含计算机视觉、自然语言处理领域的诸多经典模型的聚合中心,为机器学习研究的复现提供了基础的构建模块。无论是 ResNet、BERT、GPT、VGG、PGAN,还是 MobileNet 等经典模型,只需输入一行代码,就能实现一键调用。

图灵奖得主 Yann LeCun 强烈推荐

· 关于 PyTorch Hub ·

可复现性是许多研究领域的基本要求,包括基于机器学习技术的研究领域。然而,许多机器学习出版物要么不可复现,要么难以复现。随着研究出版物数量的持续增长,包括目前在 arXiv 上的数万份论文以及历史大会投稿,研究的可复现性比以往重要得多。虽然其中很多出版物都附上了有用的代码以及训练有素的模型,但仍为用户留下了一些需要自行解决的步骤。

所以 PyTorch 团队推出了 PyTorch Hub:一个简单的 API 和工作流程,为机器学习研究的复现提供了基础的构建模块。它由一个经过预先训练的模型存储库组成,专门设计用于协助研究的可复现性并实现新的研究。它还内置了支持 Colab,集成 Papers With Code 网站,目前已有一组预训练模型,包括 Classification、Segmentation、Generative 和 Transformer 等等。

· [所有者] 发布模型 ·

PyTorch Hub 可通过添加一个简单的 hubconf.py 文件,实现将预训练模型 (模型定义和预训练权重) 发布到 GitHub 存储库。这提供了所支持模型的枚举以及运行模型所需的依赖项列表。用户可以在 torchvision,huggingface-bert 和 gan-model-zoo 存储库中找到示例。

最简单的案例:torchvision's hubconf.py:

在 torchvision,模型具有以下属性:

  • 每个模型文件都可以独立正常执行

  • 无需要除 PyTorch 以外的任何包(在 hubconf.py 中:dependencies['torch'])

  • 无需单独模型入口,因为模型一旦创建,即可无缝提取使用

将包依赖最小化,可减少用户导入模型后需要立即进行实验时出现的各类问题。一个更直观的案例是 HuggingFace's BERT 模型,其 hubconf.py 文件如下:

每个模型都需要创建一个模型入口,下面是一个代码段,指定了 bertForMaskedLM 模型入口,并返回预先训练的模型权重。

这些模型入口可以作为复杂模型的包装器,它们可以提供注释文档或其他帮助函数,具有支持下载预训练权重的功能 (例如通过 pretrained=True),或者具有其他特定功能,如可视化。

有了 hubconf.py,研究者就可以去 PyTorch Hub 的 GitHub 页发送拉取请求。若该模型符合高质量、易复现、最有益的要求,Facebook 官方将会与你合作;若模型质量较低,也有被拒绝发布的可能。但拉取请求一旦被接受,该模型将很快出现在 PyTorch Hub 官方网页上,供所有用户浏览。

· [用户] 流程 ·

PyTorch Hub 允许用户对已发布的模型执行以下操作:

1、查看可用的模型

用户可以使用 torch.hub.list() API 查看存储库内所有可用的模型入口。

PyTorch Hub 还允许使用除预训练模型的其它辅助模型,例如在 BERT 模型中进行预处理时加入 bertTokenizer,这会使工作流更顺畅。

2、加载模型

已知了其中提供的模型,用户可以使用 torch.hub.load()API 加载模型入口。这只需要一个命令,而不需要安装其它的 wheel。此外,torch.hub.help()API 可以提供有关如何使用预训练模型演示的有用信息。

模型发布者通常后续也会不断添加错误修复和性能改进,用户通过调用也可以非常简单地获取更新,确保自己用到的是最新版本:

这将有助于减轻模型发布者重复发布包的负担,从而使他们更加专注于研究。同时它还可确保,作为用户获得的是最新的可用模型。

而另一方面如果用户更在意稳定性,模型发布者则会提供一些特定的分支或标记 (而不是主分支),以确保代码的稳定性。例如 pytorch_GAN_zoo 的 hub 分支:

3、了解模型可用方法

加载了模型后,可以使用 dir(model) 找出该模型所支持的可用方法,以 bertForMaskedLM 模型为例:

help(model.forward) 则可提供运行该方法所需的参数,帮助用户进行更深入的了解。

· 其他 ·

PyTorch Hub 中提供的模型也支持 Colab,并直接链接在 Papers With Code 中,用户可以一键进入 Colab 运行模型 Demo。

原文链接:

https://pytorch.org/blog/towards-reproducible-research-with-pytorch-hub/

2019 全球人工智能与机器人峰会

由中国计算机学会主办、雷锋网和香港中文大学(深圳)联合承办的 2019 全球人工智能与机器人峰会( CCF-GAIR 2019),将于 2019 年 7 月 12 日至 14 日在深圳举行。

届时,诺贝尔奖得主JamesJ. Heckman、中外院士、世界顶会主席、知名Fellow,多位重磅嘉宾将亲自坐阵,一起探讨人工智能和机器人领域学、产、投等复杂的生存态势。

今日限量赠送3张1000元门票优惠码,门票原价1999元,打开以下任一链接领券优惠850元,现价仅1149元,限量3张,送完即止。(打开以下任意一条链接即可兑换,先到先得)

https://gair.leiphone.com/gair/coupon/s/5cff23c18bcf3

https://gair.leiphone.com/gair/coupon/s/5cff23c18ba10

https://gair.leiphone.com/gair/coupon/s/5cff23c18b6ea

 点击阅读原文,查看更多PyTorch项目推荐

登录查看更多
0

相关内容

Transformer文本分类代码
专知会员服务
116+阅读 · 2020年2月3日
49篇ICLR2020高分「图机器学习GML」接受论文及代码
专知会员服务
60+阅读 · 2020年1月18日
一网打尽!100+深度学习模型TensorFlow与Pytorch代码实现集合
【干货】用BRET进行多标签文本分类(附代码)
专知会员服务
84+阅读 · 2019年12月27日
【书籍】深度学习框架:PyTorch入门与实践(附代码)
专知会员服务
160+阅读 · 2019年10月28日
2019年机器学习框架回顾
专知会员服务
35+阅读 · 2019年10月11日
基于PyTorch/TorchText的自然语言处理库
专知
27+阅读 · 2019年4月22日
PyTorch使用总览
极市平台
5+阅读 · 2019年3月25日
比DGL快14倍:PyTorch图神经网络库PyG上线了
机器之心
7+阅读 · 2019年3月9日
最新翻译的官方 PyTorch 简易入门教程
人工智能头条
10+阅读 · 2019年1月10日
用PyTorch做物体检测和追踪
AI研习社
12+阅读 · 2019年1月6日
PyTorch 1.0 稳定版正式发布!
新智元
3+阅读 · 2018年12月8日
快讯 | Facebook将推出PyTorch 1.0,整合Caffe2 + PyTorch
大数据文摘
3+阅读 · 2018年5月3日
手把手教 | 深度学习库PyTorch(附代码)
数据分析
7+阅读 · 2018年3月20日
Arxiv
5+阅读 · 2019年8月22日
Arxiv
5+阅读 · 2019年4月21日
Arxiv
8+阅读 · 2018年11月21日
A General and Adaptive Robust Loss Function
Arxiv
7+阅读 · 2018年11月5日
Arxiv
4+阅读 · 2018年5月10日
Arxiv
3+阅读 · 2018年3月2日
VIP会员
相关资讯
基于PyTorch/TorchText的自然语言处理库
专知
27+阅读 · 2019年4月22日
PyTorch使用总览
极市平台
5+阅读 · 2019年3月25日
比DGL快14倍:PyTorch图神经网络库PyG上线了
机器之心
7+阅读 · 2019年3月9日
最新翻译的官方 PyTorch 简易入门教程
人工智能头条
10+阅读 · 2019年1月10日
用PyTorch做物体检测和追踪
AI研习社
12+阅读 · 2019年1月6日
PyTorch 1.0 稳定版正式发布!
新智元
3+阅读 · 2018年12月8日
快讯 | Facebook将推出PyTorch 1.0,整合Caffe2 + PyTorch
大数据文摘
3+阅读 · 2018年5月3日
手把手教 | 深度学习库PyTorch(附代码)
数据分析
7+阅读 · 2018年3月20日
相关论文
Arxiv
5+阅读 · 2019年8月22日
Arxiv
5+阅读 · 2019年4月21日
Arxiv
8+阅读 · 2018年11月21日
A General and Adaptive Robust Loss Function
Arxiv
7+阅读 · 2018年11月5日
Arxiv
4+阅读 · 2018年5月10日
Arxiv
3+阅读 · 2018年3月2日
Top
微信扫码咨询专知VIP会员