【问题标题】:AttributeError: 'collections.OrderedDict' object has no attribute 'predict'AttributeError:“collections.OrderedDict”对象没有属性“predict”
【发布时间】:2021-07-24 00:02:09
【问题描述】:

作为一个新手和深度学习和 pytorch 的初学者,我不确定我应该给你们提供什么来回答我的问题。但我会尽力让你们理解我的问题。我已经使用 'model= torch.load('model/resnet18-5c106cde.pth')' 在 pytorch 中加载了一个模型。但是当我使用命令'prediction = model.predict(test_image)'时,它显示了一个AttributeError:'collections.OrderedDict'对象没有属性'predict'。希望你们能理解我的问题,并在此先感谢...

【问题讨论】:

  • 为了将来参考,请包含足够的代码,以便读者可以合理地理解该代码块的目的并尝试诊断您的问题。

标签: deep-learning pytorch conv-neural-network


【解决方案1】:

我猜您正在加载的检查点存储模型状态字典(模型的参数)而不是模型(模型的结构及其参数)。试试:

model = resnet18(*args, **kwargs)  
model.load_state_dict(torch.load(PATH))
model.eval()

其中PATH 是模型检查点的路径。您需要将model 声明为对象类的实例(声明模型结构),以便您可以加载检查点(仅参数,无结构)。所以你需要找到合适的类来为 resnet18 导入,可能是这样的:

from torchvision.models import resnet18

【讨论】:

  • 感谢您的回复。但它仍然显示像这样 AttributeError: 'ResNet' object has no attribute 'predict'。我也给出了 model = resnet18() 而不是 model = resnet18(*args, **kwargs)。
  • 标准方法是model.forward(),而不是model.predict()
猜你喜欢
  • 2018-10-01
  • 2020-11-18
  • 1970-01-01
  • 2021-10-29
  • 2022-07-05
  • 1970-01-01
  • 2021-02-04
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多