繁体   English   中英

Pytorch 问题:在关闭并重新打开 Spyder IDE 后,torch.load() 无法从文件中正确加载保存的模型

[英]Pytorch issue: torch.load() does not correctly load a saved model from file after closing and reopening Spyder IDE

我遵循了保存和加载神经网络模型参数的最基本的代码过程,它工作得非常好。 训练完网络后,使用标准的torch.save(model.state_dict(), file)方法将其保存到包中指定文件夹中的指定文件中; 当我需要重新运行程序来评估而不是训练时,它使用标准 model.load_state_dict(torch.load(file)) 方法加载。 但是,只要我关闭 Spyder IDE 应用程序并重新打开 IDE 和项目,torch.load 就不会生成所需的保存模型。 请注意,我正在通过提供输入和检查输出来测试模型的“正确性”。 我不确定这是否是 Spyder 或 Pytorch 的问题,尽管我正在学习 Spyder,因为加载确实有效。

简而言之,如果我在 Spyder 打开时连续运行该程序,该程序就可以工作,但是一旦 Spyder 关闭并重新打开,它就会停止正常工作。 有人有线索吗?

这可能是因为在运行 IDE 时程序的状态是已知的,但是当关闭它时状态丢失导致无法知道如何加载模型(因为 IDE 不知道您正在使用什么模型) . 要解决这个问题,请尝试定义一个新模型并通过load将参数加载到其中,如下所示:

my_model = MyModelClass(parameters).to(device)
checkpoint = torch.load(path)
my_model.load_state_dict(checkpoint)

这样,IDE 就知道您的模型是什么类并且可以正确处理它。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM