PyTorch加载状态字典报错:TypeError问题求助
解决方法
问题根源
你混淆了模型参数生成器和模型状态字典(state_dict):
model_fg.parameters()返回的是生成器对象,仅用于给优化器提供参数迭代,不是可加载的dict-like结构model.load_state_dict()要求传入的必须是模型的state_dict,也就是键值对形式的字典(键为参数名,值为参数张量)
正确操作步骤
训练后正确保存模型参数
不要保存model_fg.parameters(),而是保存模型的state_dict:# 训练完成后保存 torch.save(model_fg.state_dict(), 'trained_model_weights.pth')评估阶段加载参数
从保存的文件中加载state_dict,再传入load_state_dict():# 加载参数 trained_params = torch.load('trained_model_weights.pth') model_fg.load_state_dict(trained_params)
额外说明
如果是需要保存/加载优化器的状态(比如断点续训),要使用优化器的state_dict():
# 保存优化器状态 torch.save(optimizer.state_dict(), 'optimizer_state.pth') # 加载优化器状态 optimizer.load_state_dict(torch.load('optimizer_state.pth'))
内容的提问来源于stack exchange,提问作者akhil
相关产品推荐
相关产品推荐

