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

PyTorch调用torch.load()加载模型后运行报错TypeError: 'dict' object is not callable

错误原因

你通过torch.load()加载得到的对象是包含模型权重、训练配置等信息的 checkpoint 字典,并非可直接调用的模型实例,直接传入输入调用就会触发TypeError: 'dict' object is not callable报错。

修复方案

推荐方案(兼容性强)

  • 先实例化和训练时结构完全一致的模型类,再从加载的checkpoint字典中提取权重赋值给模型:
import torch

# 1. 实例化你的模型类
model = 你的模型类名()
# 2. 加载checkpoint字典
ckpt = torch.load("你的模型文件路径")
# 3. 载入权重到模型实例
model.load_state_dict(ckpt["state_dict"])
# 4. 切换为推理模式,避免训练专属层影响输出结果
model.eval()

完成上述操作后,就可以正常调用model(输入数据)进行推理。

应急方案(仅本地测试可用)

如果是在本地训练、本地推理的场景,可以直接保存模型实例而非权重字典,加载后可直接调用,缺点是跨环境、跨PyTorch版本兼容性差:

# 训练阶段保存代码
torch.save(model, "model.pth")

# 推理阶段加载代码
model = torch.load("model.pth")
model.eval()
排查项

如果按上述操作仍报错,检查变量名是否混淆,避免误将ckpt字典变量当做模型实例传入输入。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.07 08:57:04