0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

Facebook新推出了一个深度学习工具包:PyTorch Hub

DPVg_AI_era 来源:lq 2019-06-15 09:58 次阅读

为了解决日益增长的论文可复现性需求,Facebook推出了PyTorch Hub,类似TensorFlow Hub的一个模型共享库,加载ResNet、BERT、GPT、VGG、PGAN还是MobileNet等经典模型只需一行代码。用户可以提交、浏览模型,极大的改善了论文的可复现性难题。

机器学习论文的可复现性一直是个难题。许多机器学习相关论文要么无法复现,要么难以重现。有时候论文读者经常为了调用各种经典机器学习模型,还要重复造轮子。

随着提交给arXiv以及各种会议上的论文数量开始暴涨,可复现性的重要性也越来越凸显。

很多论文选择随文附上代码和训练模型,在一定程度上对使用者起到了帮助作用,但成效并不明显。复现过程中,仍有大量工作需要论文读者自己摸索。

PyTorch Hub是什么?

近日,Facebook新推出了一个深度学习工具包:PyTorch Hub,这是一个简单的API和工作流,提供基本的构建模块从而可以改善机器学习研究的可重现性。

PyTorch Hub包含了一系列与图像分类、图像分割、生成以及转换相关的预训练模型库,例如ResNet、BERT、GPT、VGG、PGAN、MobileNet等经典模型,

PyTorch Hub试图以最傻瓜的方式,提高研究工作的复现性。有多简单呢?图灵奖得主Yann LeCun发推表示,只需要一行代码就可以调用所有仓库里的模型,通过一个pull请求来发布你自己的模型。

同时,PyTorch Hub整合了Google Colab,并集成了论文代码结合网站Papers With Code,可以直接找到论文的代码。

PyTorch Hub怎么用?

复现别人的成果是PyTorch Hub主打功能,那么具体怎么样用呢?PyTorch官方提出三步走策略:浏览可用模型;加载模型;探索已加载的模型。

浏览可用模型

直接用torch.hub.list() API列出所有可用的入口点即可。代码示例:

>>> torch.hub.list('pytorch/vision')>>>['alexnet','deeplabv3_resnet101','densenet121',...'vgg16','vgg16_bn','vgg19', 'vgg19_bn']

加载模型

使用PyTorch加载模型很简单,正如LeCun所说,只需要一行代码即可使用。比如从GitHub里加载一个模型:

mode = torch.hub.load(github, model, force_reload=False, *args, **kwargs)

加载一个PyTorch预训练的模型:

model=torch.hub.load('pytorch/vision','deeplabv3_resnet101',pretrained=True)

在此之外,我们还需要了解一些其它的相对比较复杂的事情,包括探索已加载的模型、复现别人成果的工作流,以及如何快速发布自己的模型。

探索已加载的模型

从PyTorch Hub加载模型后,可以使用dir(model)查看模型的所有可用方法,示例代码:

>>> dir(model)>>>['forward'...'to''state_dict',]

还可以用help(model.forward)对运行该模型所需参数有更深入的了解。

>>> help(model.forward)>>>Help on method forward in module pytorch_pretrained_bert.modeling:forward(input_ids, token_type_ids=None, attention_mask=None, masked_lm_labels=None)...我自己的模型也能发吗?

只需要在预训练模型(包括模型定义及预训练权重)加入一个hubconf.py文件,就可以通过PyTorch Hub将模型发布到GitHub仓库。以torchvision的hubconf.py文件为例:

# Optional list of dependencies required by the packagedependencies = ['torch']from torchvision.models.alexnet import alexnetfrom torchvision.models.densenet import densenet121, densenet169, densenet201, densenet161from torchvision.models.inception import inception_v3from torchvision.models.resnet import resnet18, resnet34, resnet50, resnet101, resnet152, esnext50_32x4d, resnext101_32x8dfrom torchvision.models.squeezenet import squeezenet1_0, squeezenet1_1from torchvision.models.vgg import vgg11, vgg13, vgg16, vgg19, vgg11_bn, vgg13_bn, vgg16_bn, vgg19_bnfrom torchvision.models.segmentation import fcn_resnet101, deeplabv3_resnet101from torchvision.models.googlenet import googlenetfrom torchvision.models.shufflenetv2 import shufflenet_v2_x0_5, shufflenet_v2_x1_0from torchvision.models.mobilenet import mobilenet_v2

torchvision中,模型有3个特性:

每个模型文件可以被独立执行或实现某个功能

不需要除了PyTorch之外的任何软件包(在hubconf.py中编码为 dependencies[‘torch’])

他们不需要单独的入口点,因为模型在创建时可以无缝地开箱即用

最小化包依赖性可减少用户加载模型时遇到的困难。以HuggingFace’s BERT为例:

dependencies = ['torch', 'tqdm', 'boto3', 'requests', 'regex']from hubconfs.bert_hubconf import (bertTokenizer,bertModel,bertForNextSentencePrediction,bertForPreTraining,bertForMaskedLM,bertForSequenceClassification,bertForMultipleChoice,bertForQuestionAnswering,bertForTokenClassification和TensorFlow Hub有什么区别?

前Google Brain员工mat kelcey吐槽“Hub”这个词简直是机器学习模型项目的共享单词,TensorFlow Hub了,PyTorch也Hub了。

那么和PyTorch Hub相比,更早推出的TensorFlow Hub有什么区别呢?

TensorFlow Hub是一个共享可重用的机器学习平台,主要面向开发者,谷歌希望TensorFlow Hub能够为研究人员和开发人员提供一种便利的方式,能够更方便的在社区中共享模型。从某种意义上来讲,除了架构本身,共享预训练模型的同时,也共享了开发模型的计算时间和数据集。示例代码:

!pip install "tensorflow_hub==0.4.0"!pip install "tf-nightly"import tensorflow as tfimporttensorflow_hubashubtf.enable_eager_execution()module_url = "https://tfhub.dev/google/tf2-preview/nnlm-en-dim128/1"embed = hub.KerasLayer(module_url)embeddings = embed(["A long sentence.", "single-word","http://example.com"])print(embeddings.shape)#(3,128)

TensorFlow Hub还有一个非常关键的特性是它的Web端体验。开发人员可以针对开发用例来浏览TF模块,通过TensorFlow Hub推出新的Web体验可以更容易的进行搜索和浏览,同时为multi-publisher平台奠定了基础。

网址:

https://tfhub.dev/

从官方的介绍来看,TF Hub的出发点是开发用例,而PyTorch Hub的出发点是论文复现。目前看来TF Hub的内置模型更多一点;此外,TF Hub提供的web方式浏览模型的体验更好,搜索模型更加方便。

相关资源,方便大家快速上手:

PyTorch Hub API手册:

https://pytorch.org/docs/stable/hub.html

模型提交地址:

https://github.com/pytorch/hub

浏览可用模型:

https://pytorch.org/hub

在 Paper with Code 上浏览更多模型:

https://paperswithcode.com/

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • Facebook
    +关注

    关注

    3

    文章

    1429

    浏览量

    54741
  • 深度学习
    +关注

    关注

    73

    文章

    5503

    浏览量

    121152
  • pytorch
    +关注

    关注

    2

    文章

    808

    浏览量

    13221

原文标题:一行代码即可调用18款主流模型!PyTorch Hub轻松解决论文可复现性

文章出处:【微信号:AI_era,微信公众号:新智元】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    PyTorch 数据加载与处理方法

    PyTorch流行的开源机器学习库,它提供了强大的工具来构建和训练深度
    的头像 发表于 11-05 17:37 400次阅读

    Pytorch深度学习训练的方法

    掌握这 17 种方法,用最省力的方式,加速你的 Pytorch 深度学习训练。
    的头像 发表于 10-28 14:05 206次阅读
    <b class='flag-5'>Pytorch</b><b class='flag-5'>深度</b><b class='flag-5'>学习</b>训练的方法

    FPGA仿真工具包软件EasyGo Vs Addon介绍

    EasyGo Vs Addon是款领先的FPGA仿真工具包软件,它强大地连接了VeriStand软件与Matlab/Simulink,为实时测试和验证领域带来了前所未有的便利和效率,特别适用于汽车、航空航天和能源电力等实时测试和验证至关重要的行业。
    的头像 发表于 10-24 15:55 364次阅读
    FPGA仿真<b class='flag-5'>工具包</b>软件EasyGo Vs Addon介绍

    采用德州仪器 (TI) 工具包进行模拟前端设计应用说明

    电子发烧友网站提供《采用德州仪器 (TI) 工具包进行模拟前端设计应用说明.pdf》资料免费下载
    发表于 09-09 11:21 0次下载
    采用德州仪器 (TI) <b class='flag-5'>工具包</b>进行模拟前端设计应用说明

    pytorch环境搭建详细步骤

    PyTorch作为广泛使用的深度学习框架,其环境搭建对于从事机器学习
    的头像 发表于 08-01 15:38 818次阅读

    PyTorch深度学习开发环境搭建指南

    PyTorch作为种流行的深度学习框架,其开发环境的搭建对于深度学习研究者和开发者来说至关重要
    的头像 发表于 07-16 18:29 1037次阅读

    pytorch中有神经网络模型吗

    处理、语音识别等领域取得了显著的成果。PyTorch开源的深度学习框架,由Facebook
    的头像 发表于 07-11 09:59 700次阅读

    PyTorch的介绍与使用案例

    PyTorch基于Python的开源机器学习库,它主要面向深度学习和科学计算领域。
    的头像 发表于 07-10 14:19 397次阅读

    tensorflow和pytorch哪个更简单?

    : TensorFlow和PyTorch都是用于深度学习和机器学习的开源框架。TensorFlow由Google Brain团队开发,而PyTorc
    的头像 发表于 07-05 09:45 862次阅读

    PyTorch的特性和使用方法

    PyTorch开源的Python机器学习库,由Meta Platforms(前身为Facebook)的人工智能研究团队开发,并于201
    的头像 发表于 07-02 14:27 559次阅读

    TensorFlow与PyTorch深度学习框架的比较与选择

    深度学习作为人工智能领域的重要分支,在过去十年中取得了显著的进展。在构建和训练深度学习模型的
    的头像 发表于 07-02 14:04 970次阅读

    新加坡推出Project Moonshot -- 这是款生成式人工智能测试工具包,用于应对LLM安全和安保挑战

    新加坡2024年6月3日 /美通社/ -- 新加坡通讯及新闻部部长Josephine Teo 女士推出了AI Verify- Project Moonshot,这是易于使用的测试工具包
    的头像 发表于 06-03 19:59 233次阅读
    新加坡<b class='flag-5'>推出</b>Project Moonshot -- 这是<b class='flag-5'>一</b>款生成式人工智能测试<b class='flag-5'>工具包</b>,用于应对LLM安全和安保挑战

    QE for Motor V1.3.0:汽车开发辅助工具解决方案工具包

    电子发烧友网站提供《QE for Motor V1.3.0:汽车开发辅助工具解决方案工具包.pdf》资料免费下载
    发表于 02-19 10:44 0次下载
    QE for Motor V1.3.0:汽车开发辅助<b class='flag-5'>工具</b>解决方案<b class='flag-5'>工具包</b>

    利用ProfiShark 构建便携式网络取证工具包

    网络安全领域日益重视便携式取证工具的灵活应用。本文介绍了如何构建以ProfiShark1G为核心的便携式网络取证工具包,以提高网络取证的效率和实效性
    的头像 发表于 01-13 08:04 1593次阅读
    利用ProfiShark 构建便携式网络取证<b class='flag-5'>工具包</b>

    Torch TensorRT是优化PyTorch模型推理性能的工具

    那么,什么是Torch TensorRT呢?Torch是我们大家聚在起的原因,它是端到端的机器学习框架。而TensorRT则是NVIDIA的高性能
    的头像 发表于 01-09 16:41 1734次阅读
    Torch TensorRT是<b class='flag-5'>一</b><b class='flag-5'>个</b>优化<b class='flag-5'>PyTorch</b>模型推理性能的<b class='flag-5'>工具</b>