You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PyTorch加载resnet_18预训练权重报错:function无load_state_dict属性

解决PyTorch加载ResNet18权重时的'function' object has no attribute 'load_state_dict'错误

错误原因

你直接调用了resnet18函数的load_state_dict方法,但resnet18是torchvision提供的模型构造函数,并非实例化后的模型对象,只有实例化的模型才具备load_state_dict属性。

正确操作步骤

  1. 导入依赖库
import torch
from torchvision.models import resnet18
  1. 实例化ResNet18模型
# 若不需要torchvision自带的预训练权重,设置pretrained=False(旧版)或weights=None(新版torchvision)
model = resnet18(pretrained=False)
  1. 加载并应用权重
# 读取权重文件得到权重字典
state_dict = torch.load('resnet_18.pth')
# 给实例化后的模型加载权重
model.load_state_dict(state_dict)

额外注意事项

如果你的权重文件与torchvision默认ResNet18的层结构不一致(比如自定义了分类头),会出现键不匹配的报错,可通过以下方式处理:

# 例如删除权重字典中与模型不匹配的最后一层参数
del state_dict['fc.weight']
del state_dict['fc.bias']
# 使用strict=False忽略不匹配的层,仅加载能匹配的参数
model.load_state_dict(state_dict, strict=False)

内容的提问来源于stack exchange,提问作者iolibitz

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.09 04:15:41