torchvision.models.resnet 和 torch.hub.load 有什么不同?

What is the different for torchvision.models.resnet and torch.hub.load?

pytorch的resnet有两种使用方法

方法一:

import torch
model = torch.hub.load('pytorch/vision:v0.10.0', 'resnet50', pretrained=True)
model.eval()

方法二:

import torch    
net = models.resnet50(pretrained=True)

他们加载的是同一个模型吗?如果不是有什么区别?

如果您以这种方式加载模型,那么它们之间的唯一区别是层数,因为您使用 Torch Hub 加载 resnet18resnet50Models(因此,也是预训练的权重)。它们的行为不同,您可以在 this paper.

中看到更多相关信息

Torch Hub 还允许您在存储库中发布预训练模型,但由于您是从 'pytorch/vision:v0.10.0'(与 Models 正在加载神经网络),应该没有区别:

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

model = models.resnet18(pretrained=True)