我在尝试加载 Pytorch 模型时遇到问题:“无法在模块中找到身份”
Posted
技术标签:
【中文标题】我在尝试加载 Pytorch 模型时遇到问题:“无法在模块中找到身份”【英文标题】:I'm having a problem trying to load a Pytoch model: "Can't find Identity in module" 【发布时间】:2020-12-16 07:07:43 【问题描述】:当尝试加载 pytorch 模型时,它会给出以下属性错误
model = torch.load('../input/melanoma-model/melanoma_model_0.pth')
model = model.to(device)
model.eval()
AttributeError Traceback(最近调用 最后)在 1 拱 = EfficientNet.from_pretrained('efficientnet-b2') 2模型=网络(拱=拱) ----> 3 torch.load('../input/melanoma-model/melanoma_model_0.pth') 4 模型 = 模型.to(设备) 5 model.eval()
/opt/conda/lib/python3.7/site-packages/torch/serialization.py 在 加载(f,map_location,pickle_module,**pickle_load_args) 第591章 第592章 --> 593 返回 _legacy_load(opened_file, map_location, pickle_module, **pickle_load_args) 594 595
/opt/conda/lib/python3.7/site-packages/torch/serialization.py 在 _legacy_load(f, map_location, pickle_module, **pickle_load_args) 第771章 第772章 --> 773 结果 = unpickler.load() 774 第775章
AttributeError: 无法在
【问题讨论】:
你使用的是什么版本的 pytorch?你是如何保存模型的? 如果可能,也发布完整的堆栈跟踪。 版本是 1.5.1 我使用 torch.save(model, '../input/melanoma-model/melanoma_model_0.pth') 将模型保存在另一个笔记本中, 完整的堆栈跟踪完成 【参考方案1】:首先,您需要一个模型类来将参数从 .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()
好了,希望能解决你的问题!
【讨论】:
arch = EfficientNet.from_pretrained('efficientnet-b2') model = Net(arch=arch) model.load_state_dict(torch.load('../input/melanoma-model/melanoma_model_0.pth')) model = model.to(device) model.eval()
它仍然给出同样的错误以上是关于我在尝试加载 Pytorch 模型时遇到问题:“无法在模块中找到身份”的主要内容,如果未能解决你的问题,请参考以下文章
[深度学习] Pytorch—— 多/单GPUCPU,训练保存加载模型参数问题