首页 > 解决方案 > AttributeError:“collections.OrderedDict”对象没有属性“predict”

问题描述

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

标签: deep-learningpytorchconv-neural-network

解决方案


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

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

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

from torchvision.models import resnet18

推荐阅读