PyTorch Hub發佈!一行代碼調用所有模型:torch.hub

Facebook官方博客表示,PyTorch Hub是一個簡易API和工作流程,爲復現研究提供了基本構建模塊,包含預訓練模型庫。並且,PyTorch Hub還支持Colab,能與論文代碼結合網站Papers With Code集成,用於更廣泛的研究。發佈首日已有18個模型“入駐”,獲得英偉達官方力挺。而且Facebook還鼓勵論文發佈者把自己的模型發佈到這裏來,讓PyTorch Hub越來越強大。

torch.hub

PyTorch Hub中提供的模型也支持Colab。進入每個模型的介紹頁面後,你不僅可以看到GitHub代碼頁的入口,甚至可以一鍵進入Colab運行模型Demo。

爲了調用各種經典機器學習模型,今後你不必重複造輪子了。

剛剛,Facebook宣佈推出PyTorch Hub,一個包含計算機視覺、自然語言處理領域的諸多經典模型的聚合中心,讓你調用起來更方便。

有多方便?

圖靈獎得主Yann LeCun強烈推薦,無論是ResNet、BERT、GPT、VGG、PGAN還是MobileNet等經典模型,只需輸入一行代碼,就能實現一鍵調用。

PyTorch Hub的使用簡單到不能再簡單,不需要下載模型,只用了一個torch.hub.load()就完成了對圖像分類模型AlexNet的調用。

import torch
model = torch.hub.load('pytorch/vision', 'alexnet', pretrained=True)
model.eval()

PyTorch Hub允許用戶對已發佈的模型執行以下操作:
1、查詢可用的模型;
2、加載模型;
3、查詢模型中可用的方法。

下面讓我們來看看每個應用的實例。

1、查詢可用的模型

用戶可以使用torch.hub.list()這個API列出repo中所有可用的入口點。比如你想知道PyTorch Hub中有哪些可用的計算機視覺模型:

torch.hub.list('pytorch/vision')

['alexnet',
'deeplabv3_resnet101',
'densenet121',
...
'vgg16',
'vgg16_bn',
'vgg19',
 'vgg19_bn']

2、加載模型

在上一步中能看到所有可用的計算機視覺模型,如果想調用其中的一個,也不必安裝,只需一句話就能加載模型。

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

至於如何獲得此模型的詳細幫助信息,可以使用下面的API:

print(torch.hub.help('pytorch/vision', 'deeplabv3_resnet101'))

如果模型的發佈者後續加入錯誤修復和性能改進,用戶也可以非常簡單地獲取更新,確保自己用到的是最新版本:

model = torch.hub.load(..., force_reload=True)

對於另外一部分用戶來說,穩定性更加重要,他們有時候需要調用特定分支的代碼。例如pytorch_GAN_zoo的hub分支:

model = torch.hub.load('facebookresearch/pytorch_GAN_zoo:hub', 'DCGAN', pretrained=True)

3、查看模型可用方法

從PyTorch Hub加載模型後,你可以用dir(model)查看模型的所有可用方法。以bertForMaskedLM模型爲例:

dir(model)

['forward'
...
'to'
'state_dict',
]

如果你對forward方法感興趣,使用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)

參考:PyTorch Hub發佈!一行代碼調用最潮模型,圖靈獎得主強

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章