【发布时间】:2022-04-06 20:36:23
【问题描述】:
我已经使用 Google Colab 在名为 model_prep.py 的文件中成功训练了卷积神经网络模型。该模型获得 92% 的准确率。现在我对使用 pyTorch 保存模型的模型感到满意。
torch.save(model, '/content/drive/MyDrive/myModel.pt')
我对此的理解是,一旦模型经过全面训练,我就可以使用 pyTorch 保存经过训练的模型,然后将其加载到未来的项目中以预测新数据。因此我创建了一个单独的 test.py 文件,我在其中加载了训练好的模型,
model = torch.load('/content/drive/MyDrive/myModel.pt')
model.eval()
但在新的 test.py 文件中,我收到一条错误消息
AttributeError: Can't get attribute 'ResNet1D' on <module '__main__'>
虽然在创建训练模型 (model_prep.py) 的同一笔记本中加载模型时不会发生此错误。此错误仅在将模型加载到没有模型架构的单独笔记本中时发生。我该如何解决这个问题?我想将经过训练的模型加载到一个新的单独文件中以对新数据执行。有人可以提出解决方案吗?
将来,我想使用 tkinter 创建一个 GUI,并部署经过训练的模型,以使用 tkinter 文件中的新数据检查预测。这可能吗?
【问题讨论】:
-
基本上模型保存依赖于保存时的全局变量,如
ResNet1D。所以加载也需要相同的全局变量具有相同的值。尝试以与训练模型时相同的方式定义ResNet1D。另外请从问题中删除tkinter标签,因为问题不是由tkinter直接引起的。
标签: python machine-learning pytorch google-colaboratory