尝试加载Pytoch模型时遇到问题:“在模块中找不到标识”

2024-06-28 09:49:45 发布

您现在位置:Python中文网/ 问答频道 /正文

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

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

AttributeError Traceback (most recent call last) in 1 arch = EfficientNet.from_pretrained('efficientnet-b2') 2 model = Net(arch=arch) ----> 3 torch.load('../input/melanoma-model/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 result = unpickler.load() 774 775 deserialized_storage_keys = pickle_module.load(f, **pickle_load_args)

AttributeError: Can't get attribute 'Identity' on <module 'efficientnet_pytorch.utils' from '/opt/conda/lib/python3.7/site-packages/efficientnet_pytorch/utils.py'>


Tags: inmapmodelargsloadlocationtorchpytorch
1条回答
网友
1楼 · 发布于 2024-06-28 09:49:45

首先,需要一个模型类将参数从.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()

好了,我希望这解决了你的问题

相关问题 更多 >