如何获取最新的torchvision.models(例如ViT)?

How to access latest torchvision.models (e.g. ViT)?

我在 official torchvision docs 中看到,最近 vision transformers 和 ConvNeXt 模型系列已添加到 PyTorch 模型动物园中。但是,即使升级到最新的 torchvision 版本 0.11.3(通过 pip),这些新模型也不可用:

>>> import torchvision; torchvision.__version__
'0.11.3+cu102'
>>> import torchvision.models as models
>>> model = models.resnext50_32x4d()  # previous models work fine
>>> model = models.vit_b_16()  # vision transformers don't work
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
AttributeError: module 'torchvision.models' has no attribute 'vit_b_16'

我知道如何在 PyTorch 中访问这些最新添加的模型吗?

除了torchvision之外,还有其他获取pytorch模型的方法。 您应该查看 torch.hub 以从特定的 github 存储库获取模型,这些存储库允许通过此界面进行共享。

此外,您还有 timm -- 许多 pytorch 视觉模型的存储库。

例如:

# list all ViT models
timm.list_models('vit_*')
# list all convNext models
timm.list_models('convnext*')

# load ViT-B/16
vit_b_16 = timm.create_model('vit_base_patch16_224', pretrained=True)
# load conv next
convnext = timm.create_model('convnext_base', pretrained=True)

尽管@Shai 的回答是一个很好的补充,但我最初的问题是如何访问 torchvision.models 中的官方 ViT 和 ConvNeXt 模型。事实证明,答案只是等待。所以记录一下:在升级到 0.12 版的最新 torchvision pip 包后,我也得到了这些新模型。