首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >有一种方法可以通过字符串加载火炬视觉模型吗?

有一种方法可以通过字符串加载火炬视觉模型吗?
EN

Stack Overflow用户
提问于 2021-05-09 06:28:12
回答 2查看 434关注 0票数 3

目前,我使用以下代码加载预培训的火炬视觉模型:

代码语言:javascript
复制
import torchvision
torchvision.models.resnet101(pretrained=True)

但是,我希望使用模型名作为字符串参数,然后使用该字符串加载经过预先训练的模型。这样做的伪代码如下所示:

代码语言:javascript
复制
model_name = 'resnet101'
torchvision.models.get(model_name)(pretrained=True)

有什么方法可以用一种相当简单的方式实现这一点吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2021-05-09 06:49:32

您可以使用getattr

getattr(torchvision.models, 'resnet101')(pretrained=True)

票数 3
EN

Stack Overflow用户

发布于 2021-05-09 06:53:50

您可以使用torch.hub

代码语言:javascript
复制
model_str = 'resnet50'
model = torch.hub.load('pytorch/vision', model_str, pretrained=True)

所有可用的字符串模型都可以通过以下方式找到:

代码语言:javascript
复制
torch.hub.list('pytorch/vision', force_reload=True)

产出:

代码语言:javascript
复制
['alexnet',
 'deeplabv3_mobilenet_v3_large',
 'deeplabv3_resnet101',
 'deeplabv3_resnet50',
 'densenet121',
 'densenet161',
 'densenet169',
 'densenet201',
 'fcn_resnet101',
 'fcn_resnet50',
 'googlenet',
 'inception_v3',
 'lraspp_mobilenet_v3_large',
 'mnasnet0_5',
 'mnasnet0_75',
 'mnasnet1_0',
 'mnasnet1_3',
 'mobilenet_v2',
 'mobilenet_v3_large',
 'mobilenet_v3_small',
 'resnet101',
 'resnet152',
 'resnet18',
 'resnet34',
 'resnet50',
 'resnext101_32x8d',
 'resnext50_32x4d',
 'shufflenet_v2_x0_5',
 'shufflenet_v2_x1_0',
 'squeezenet1_0',
 'squeezenet1_1',
 'vgg11',
 'vgg11_bn',
 'vgg13',
 'vgg13_bn',
 'vgg16',
 'vgg16_bn',
 'vgg19',
 'vgg19_bn',
 'wide_resnet101_2',
 'wide_resnet50_2']
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67454884

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档