我试图通过执行以下操作从BasicBlock类导入torchvision.models.resnet
from torchvision.models.resnet import *它没有出现错误,但是当我试图在代码中使用BasicBlock类(应该已经导入)时,我得到的错误是
NameError: name 'BasicBlock' is not defined
即使BasicBlock存在于torchvision.models.resnet中
但是当我像这样导入时,它不会出错。
from torchvision.models.resnet import BasicBlock
然后在我的代码中使用它
我为什么要犯这个错误?
发布于 2021-01-06 08:18:32
BasicBlock是在torchvision.models下导入的,但是不建议执行import *并导入所有内容,但是如果您想要这样做,那么使用from torchvision.models import *就不会得到错误。
import *导入__all__变量下的所有内容,而resnet中的这个变量具有['ResNet', 'resnet18', 'resnet34', 'resnet50', 'resnet101','resnet152', 'resnext50_32x4d', 'resnext101_32x8d','wide_resnet50_2', 'wide_resnet101_2'],这就是它为什么要为BasicBlock抛出错误NameError
https://stackoverflow.com/questions/65591623
复制相似问题