Machine learning 带有argprse的pytorch传递体系结构类型

Machine learning 带有argprse的pytorch传递体系结构类型,machine-learning,neural-network,computer-vision,argparse,pytorch,Machine Learning,Neural Network,Computer Vision,Argparse,Pytorch,使用Pytork。使用以下代码传递架构类型时: parser.add_argument('-arch', action='store', dest='arch', default= str('vgg16')) model = models.__dict__['{!r}'.format(results.arch)](pretrained=True) 将体系结构的名称与以下代码一起使用时: parser.add_ar

使用Pytork。使用以下代码传递架构类型时:

parser.add_argument('-arch', action='store',
                    dest='arch',
                    default= str('vgg16'))
model = models.__dict__['{!r}'.format(results.arch)](pretrained=True)
将体系结构的名称与以下代码一起使用时:

parser.add_argument('-arch', action='store',
                    dest='arch',
                    default= str('vgg16'))
model = models.__dict__['{!r}'.format(results.arch)](pretrained=True)
我得到以下错误:

model=models.dict'{!r}'。格式(results.arch) KeyError:“'vgg16'”

我做错了什么?

你明白了,你导入的
模型不包括
'vgg16'
作为已知模型之一。
通过打印检查您有哪些型号

print(models.__dict__.keys())
这应该可以让您知道导入了哪些模型以及哪些模型丢失了,然后您可以查看导入的内容并查看
'vgg16'
丢失的地方

model = models.__dict__[results.arch](pretrained=True)

解决方案。

vgg16确实存在于列表中。我认为问题在于我传递的是“vgg16”,而不是
vgg16
。额外的quotes@DarioFederici它是否以
'vgg16'
“'vgg16'”
的形式存在(请注意额外的引号)。这就是
的内容!r
正在执行格式化字符串,您可能需要将其删除。