0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

Facebook新推出了一個(gè)深度學(xué)習(xí)工具包:PyTorch Hub

DPVg_AI_era ? 來(lái)源:lq ? 2019-06-15 09:58 ? 次閱讀

為了解決日益增長(zhǎng)的論文可復(fù)現(xiàn)性需求,F(xiàn)acebook推出了PyTorch Hub,類似TensorFlow Hub的一個(gè)模型共享庫(kù),加載ResNet、BERT、GPT、VGG、PGAN還是MobileNet等經(jīng)典模型只需一行代碼。用戶可以提交、瀏覽模型,極大的改善了論文的可復(fù)現(xiàn)性難題。

機(jī)器學(xué)習(xí)論文的可復(fù)現(xiàn)性一直是個(gè)難題。許多機(jī)器學(xué)習(xí)相關(guān)論文要么無(wú)法復(fù)現(xiàn),要么難以重現(xiàn)。有時(shí)候論文讀者經(jīng)常為了調(diào)用各種經(jīng)典機(jī)器學(xué)習(xí)模型,還要重復(fù)造輪子。

隨著提交給arXiv以及各種會(huì)議上的論文數(shù)量開(kāi)始暴漲,可復(fù)現(xiàn)性的重要性也越來(lái)越凸顯。

很多論文選擇隨文附上代碼和訓(xùn)練模型,在一定程度上對(duì)使用者起到了幫助作用,但成效并不明顯。復(fù)現(xiàn)過(guò)程中,仍有大量工作需要論文讀者自己摸索。

PyTorch Hub是什么?

近日,F(xiàn)acebook新推出了一個(gè)深度學(xué)習(xí)工具包:PyTorch Hub,這是一個(gè)簡(jiǎn)單的API和工作流,提供基本的構(gòu)建模塊從而可以改善機(jī)器學(xué)習(xí)研究的可重現(xiàn)性。

PyTorch Hub包含了一系列與圖像分類、圖像分割、生成以及轉(zhuǎn)換相關(guān)的預(yù)訓(xùn)練模型庫(kù),例如ResNet、BERT、GPT、VGG、PGAN、MobileNet等經(jīng)典模型,

PyTorch Hub試圖以最傻瓜的方式,提高研究工作的復(fù)現(xiàn)性。有多簡(jiǎn)單呢?圖靈獎(jiǎng)得主Yann LeCun發(fā)推表示,只需要一行代碼就可以調(diào)用所有倉(cāng)庫(kù)里的模型,通過(guò)一個(gè)pull請(qǐng)求來(lái)發(fā)布你自己的模型。

同時(shí),PyTorch Hub整合了Google Colab,并集成了論文代碼結(jié)合網(wǎng)站Papers With Code,可以直接找到論文的代碼。

PyTorch Hub怎么用?

復(fù)現(xiàn)別人的成果是PyTorch Hub主打功能,那么具體怎么樣用呢?PyTorch官方提出三步走策略:瀏覽可用模型;加載模型;探索已加載的模型。

瀏覽可用模型

直接用torch.hub.list() API列出所有可用的入口點(diǎn)即可。代碼示例:

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

加載模型

使用PyTorch加載模型很簡(jiǎn)單,正如LeCun所說(shuō),只需要一行代碼即可使用。比如從GitHub里加載一個(gè)模型:

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

加載一個(gè)PyTorch預(yù)訓(xùn)練的模型:

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

在此之外,我們還需要了解一些其它的相對(duì)比較復(fù)雜的事情,包括探索已加載的模型、復(fù)現(xiàn)別人成果的工作流,以及如何快速發(fā)布自己的模型。

探索已加載的模型

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

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

還可以用help(model.forward)對(duì)運(yùn)行該模型所需參數(shù)有更深入的了解。

>>> 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)...我自己的模型也能發(fā)嗎?

只需要在預(yù)訓(xùn)練模型(包括模型定義及預(yù)訓(xùn)練權(quán)重)加入一個(gè)hubconf.py文件,就可以通過(guò)PyTorch Hub將模型發(fā)布到GitHub倉(cāng)庫(kù)。以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個(gè)特性:

每個(gè)模型文件可以被獨(dú)立執(zhí)行或?qū)崿F(xiàn)某個(gè)功能

不需要除了PyTorch之外的任何軟件包(在hubconf.py中編碼為 dependencies[‘torch’])

他們不需要單獨(dú)的入口點(diǎn),因?yàn)槟P驮趧?chuàng)建時(shí)可以無(wú)縫地開(kāi)箱即用

最小化包依賴性可減少用戶加載模型時(shí)遇到的困難。以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有什么區(qū)別?

前Google Brain員工mat kelcey吐槽“Hub”這個(gè)詞簡(jiǎn)直是機(jī)器學(xué)習(xí)模型項(xiàng)目的共享單詞,TensorFlow Hub了,PyTorch也Hub了。

那么和PyTorch Hub相比,更早推出的TensorFlow Hub有什么區(qū)別呢?

TensorFlow Hub是一個(gè)共享可重用的機(jī)器學(xué)習(xí)平臺(tái),主要面向開(kāi)發(fā)者,谷歌希望TensorFlow Hub能夠?yàn)檠芯咳藛T和開(kāi)發(fā)人員提供一種便利的方式,能夠更方便的在社區(qū)中共享模型。從某種意義上來(lái)講,除了架構(gòu)本身,共享預(yù)訓(xùn)練模型的同時(shí),也共享了開(kāi)發(fā)模型的計(jì)算時(shí)間和數(shù)據(jù)集。示例代碼:

!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還有一個(gè)非常關(guān)鍵的特性是它的Web端體驗(yàn)。開(kāi)發(fā)人員可以針對(duì)開(kāi)發(fā)用例來(lái)瀏覽TF模塊,通過(guò)TensorFlow Hub推出新的Web體驗(yàn)可以更容易的進(jìn)行搜索和瀏覽,同時(shí)為multi-publisher平臺(tái)奠定了基礎(chǔ)。

網(wǎng)址:

https://tfhub.dev/

從官方的介紹來(lái)看,TF Hub的出發(fā)點(diǎn)是開(kāi)發(fā)用例,而PyTorch Hub的出發(fā)點(diǎn)是論文復(fù)現(xiàn)。目前看來(lái)TF Hub的內(nèi)置模型更多一點(diǎn);此外,TF Hub提供的web方式瀏覽模型的體驗(yàn)更好,搜索模型更加方便。

相關(guān)資源,方便大家快速上手:

PyTorch Hub API手冊(cè):

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

模型提交地址:

https://github.com/pytorch/hub

瀏覽可用模型:

https://pytorch.org/hub

在 Paper with Code 上瀏覽更多模型:

https://paperswithcode.com/

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • Facebook
    +關(guān)注

    關(guān)注

    3

    文章

    1429

    瀏覽量

    54582
  • 深度學(xué)習(xí)
    +關(guān)注

    關(guān)注

    73

    文章

    5437

    瀏覽量

    120791
  • pytorch
    +關(guān)注

    關(guān)注

    2

    文章

    795

    瀏覽量

    13080

原文標(biāo)題:一行代碼即可調(diào)用18款主流模型!PyTorch Hub輕松解決論文可復(fù)現(xiàn)性

文章出處:【微信號(hào):AI_era,微信公眾號(hào):新智元】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    采用德州儀器 (TI) 工具包進(jìn)行模擬前端設(shè)計(jì)應(yīng)用說(shuō)明

    電子發(fā)燒友網(wǎng)站提供《采用德州儀器 (TI) 工具包進(jìn)行模擬前端設(shè)計(jì)應(yīng)用說(shuō)明.pdf》資料免費(fèi)下載
    發(fā)表于 09-09 11:21 ?0次下載
    采用德州儀器 (TI) <b class='flag-5'>工具包</b>進(jìn)行模擬前端設(shè)計(jì)應(yīng)用說(shuō)明

    pytorch環(huán)境搭建詳細(xì)步驟

    PyTorch作為個(gè)廣泛使用的深度學(xué)習(xí)框架,其環(huán)境搭建對(duì)于從事機(jī)器學(xué)習(xí)
    的頭像 發(fā)表于 08-01 15:38 ?544次閱讀

    PyTorch深度學(xué)習(xí)開(kāi)發(fā)環(huán)境搭建指南

    PyTorch作為種流行的深度學(xué)習(xí)框架,其開(kāi)發(fā)環(huán)境的搭建對(duì)于深度學(xué)習(xí)研究者和開(kāi)發(fā)者來(lái)說(shuō)至關(guān)重要
    的頭像 發(fā)表于 07-16 18:29 ?612次閱讀

    pytorch中有神經(jīng)網(wǎng)絡(luò)模型嗎

    處理、語(yǔ)音識(shí)別等領(lǐng)域取得了顯著的成果。PyTorch個(gè)開(kāi)源的深度學(xué)習(xí)框架,由Facebook
    的頭像 發(fā)表于 07-11 09:59 ?578次閱讀

    PyTorch的介紹與使用案例

    PyTorch個(gè)基于Python的開(kāi)源機(jī)器學(xué)習(xí)庫(kù),它主要面向深度學(xué)習(xí)和科學(xué)計(jì)算領(lǐng)域。
    的頭像 發(fā)表于 07-10 14:19 ?301次閱讀

    tensorflow和pytorch哪個(gè)更簡(jiǎn)單?

    : TensorFlow和PyTorch都是用于深度學(xué)習(xí)和機(jī)器學(xué)習(xí)的開(kāi)源框架。TensorFlow由Google Brain團(tuán)隊(duì)開(kāi)發(fā),而PyTorc
    的頭像 發(fā)表于 07-05 09:45 ?609次閱讀

    tensorflow和pytorch哪個(gè)好

    tensorflow和pytorch都是非常不錯(cuò)的強(qiáng)大的框架,TensorFlow還是PyTorch哪個(gè)更好取決于您的具體需求,以下是關(guān)于這兩個(gè)框架的些關(guān)鍵點(diǎn): TensorFlow
    的頭像 發(fā)表于 07-05 09:42 ?562次閱讀

    PyTorch的特性和使用方法

    PyTorch個(gè)開(kāi)源的Python機(jī)器學(xué)習(xí)庫(kù),由Meta Platforms(前身為Facebook)的人工智能研究團(tuán)隊(duì)開(kāi)發(fā),并于201
    的頭像 發(fā)表于 07-02 14:27 ?409次閱讀

    TensorFlow與PyTorch深度學(xué)習(xí)框架的比較與選擇

    深度學(xué)習(xí)作為人工智能領(lǐng)域的個(gè)重要分支,在過(guò)去十年中取得了顯著的進(jìn)展。在構(gòu)建和訓(xùn)練深度學(xué)習(xí)模型的
    的頭像 發(fā)表于 07-02 14:04 ?739次閱讀

    新加坡推出Project Moonshot -- 這是款生成式人工智能測(cè)試工具包,用于應(yīng)對(duì)LLM安全和安保挑戰(zhàn)

    新加坡2024年6月3日?/美通社/ -- 新加坡通訊及新聞部部長(zhǎng)Josephine Teo 女士推出了AI Verify- Project Moonshot,這是個(gè)易于使用的測(cè)試工具包
    的頭像 發(fā)表于 06-03 19:59 ?185次閱讀
    新加坡<b class='flag-5'>推出</b>Project Moonshot -- 這是<b class='flag-5'>一</b>款生成式人工智能測(cè)試<b class='flag-5'>工具包</b>,用于應(yīng)對(duì)LLM安全和安保挑戰(zhàn)

    QE for Motor V1.3.0:汽車開(kāi)發(fā)輔助工具解決方案工具包

    電子發(fā)燒友網(wǎng)站提供《QE for Motor V1.3.0:汽車開(kāi)發(fā)輔助工具解決方案工具包.pdf》資料免費(fèi)下載
    發(fā)表于 02-19 10:44 ?0次下載
    QE for Motor V1.3.0:汽車開(kāi)發(fā)輔助<b class='flag-5'>工具</b>解決方案<b class='flag-5'>工具包</b>

    利用ProfiShark 構(gòu)建便攜式網(wǎng)絡(luò)取證工具包

    網(wǎng)絡(luò)安全領(lǐng)域日益重視便攜式取證工具的靈活應(yīng)用。本文介紹了如何構(gòu)建個(gè)以ProfiShark1G為核心的便攜式網(wǎng)絡(luò)取證工具包,以提高網(wǎng)絡(luò)取證的效率和實(shí)效性
    的頭像 發(fā)表于 01-13 08:04 ?1506次閱讀
    利用ProfiShark 構(gòu)建便攜式網(wǎng)絡(luò)取證<b class='flag-5'>工具包</b>

    Torch TensorRT是個(gè)優(yōu)化PyTorch模型推理性能的工具

    那么,什么是Torch TensorRT呢?Torch是我們大家聚在起的原因,它是個(gè)端到端的機(jī)器學(xué)習(xí)框架。而TensorRT則是NVIDIA的高性能
    的頭像 發(fā)表于 01-09 16:41 ?1278次閱讀
    Torch TensorRT是<b class='flag-5'>一</b><b class='flag-5'>個(gè)</b>優(yōu)化<b class='flag-5'>PyTorch</b>模型推理性能的<b class='flag-5'>工具</b>

    NPOI WEG報(bào)表工具包簡(jiǎn)介

    很久以前就知道有NPOI這個(gè)報(bào)表工具包,因?yàn)橛蠳I自帶的工具包就沒(méi)有詳細(xì)研究過(guò)。當(dāng)前工作中幾臺(tái)電腦因?yàn)榘惭bOFFICE版本問(wèn)題,或其它原因?qū)е伦詭?bào)表無(wú)法使用,就找來(lái)了個(gè)群友共享的的
    的頭像 發(fā)表于 11-06 10:05 ?898次閱讀
    NPOI WEG報(bào)表<b class='flag-5'>工具包</b>簡(jiǎn)介

    Intel智能邊緣開(kāi)放開(kāi)發(fā)者經(jīng)驗(yàn)工具包

    Intel智能邊緣開(kāi)放開(kāi)發(fā)者經(jīng)驗(yàn)工具包
    的頭像 發(fā)表于 10-27 16:21 ?366次閱讀
    Intel智能邊緣開(kāi)放開(kāi)發(fā)者經(jīng)驗(yàn)<b class='flag-5'>工具包</b>