首页 > 解决方案 > 我在尝试加载 Pytoch 模型时遇到问题:“在模块中找不到身份”

问题描述

尝试加载 pytorch 模型时,会出现以下属性错误

model = torch.load('../input/melanoma-model/melanoma_model_0.pth')
model = model.to(device)
model.eval()

1 arch = EfficientNet.from_pretrained('efficientnet-b2') 2 model = Net(arch=arch) ----> 3 torch.load('../input/melanoma-model 中的 AttributeError Traceback (最近一次调用最后一次) /melanoma_model_0.pth') 4 model = model.to(device) 5 model.eval()

/opt/conda/lib/python3.7/site-packages/torch/serialization.py in load(f, map_location, pickle_module, **pickle_load_args) 591 return torch.jit.load(f) 592 return _load(opened_zipfile, map_location , pickle_module, **pickle_load_args) --> 593 return _legacy_load(opened_file, map_location, pickle_module, **pickle_load_args) 594 595

/opt/conda/lib/python3.7/site-packages/torch/serialization.py in _legacy_load(f,map_location,pickle_module,**pickle_load_args)771 unpickler = pickle_module.Unpickler(f,**pickle_load_args)772 unpickler.persistent_load = persistent_load --> 773 结果 = unpickler.load() 774 775 deserialized_storage_keys = pickle_module.load(f, **pickle_load_args)

AttributeError:无法从 '/opt/conda/lib/python3.7/site-packages/efficientnet_pytorch/utils.py'> 获取 <module 'efficientnet_pytorch.utils' 上的属性 'Identity'>

标签: pythonmodelpytorch

解决方案


首先,您需要一个模型类来将 .pth 中的参数加载到其中。你错过了一步:

model = Model()   # the model class (yours has probably another name)
model.load_state_dict(torch.load('../input/melanoma-model/melanoma_model_0.pth'))
model = model.to(device)
model.eval()

好了,希望能解决你的问题!


推荐阅读