python - 我在尝试加载 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'>
解决方案
首先,您需要一个模型类来将 .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()
好了,希望能解决你的问题!
推荐阅读
- android - Edittext:maxLength,限制为 3 个输入数字
- function - 如何在 Rust 中找到函数调用者的类型?
- powershell - 从 TeamCity 构建步骤更新环境变量
- c# - 异步任务
() 不使用 await 时不会立即返回 - php - Twitter webhook 注册错误 | {"errors":[{"code":32,"message":"无法验证您的身份。"}]}
- symfony - symfony2 无法读取未定义的属性“fnIsDatatable”
- javascript - 用于传递变量的脏 HTML 或脏 jQuery?
- jquery - 如何简化具有多个导航菜单的网站的 jQuery 脚本?
- flask - 带有 Flask 服务器的 Vue.js ... 直接在浏览器中输入 url 不会使用 vue.js 进行渲染。
- windows-10 - 在 Windows 10 中连接 USB 时自动打开记事本