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

PyTorch加载预训练yolov7.pt模型时出现ModuleNotFoundError求助

加载YOLOv7预训练模型时出现ModuleNotFoundError的原因分析

问题场景

我有一个预训练的yolov7.pt模型,尝试用以下代码加载:

import torch

model_path = "/content/yolov7/model/yolov7.pt"
model = torch.load(model_path,map_location=torch.device('cpu'))

运行后触发如下错误:

---------------------------------------------------------------------------
ModuleNotFoundError                       Traceback (most recent call last)
<ipython-input-8-cc86721fbe65> in <cell line: 4>()
      2 
      3 model_path = "/content/yolov7/model/yolov7.pt"
----> 4 model = torch.load(model_path,map_location=torch.device('cpu'))

2 frames
/usr/local/lib/python3.10/dist-packages/torch/serialization.py in find_class(self, mod_name, name)
   1163                     pass
   1164             mod_name = load_module_mapping.get(mod_name, mod_name)
-> 1165             return super().find_class(mod_name, name)
   1166 
   1167     # Load the data (which may in turn use `persistent_load` to load tensors)

ModuleNotFoundError: No module named 'models'

错误原因

这个错误的核心逻辑是:PyTorch加载模型时,必须能找到模型结构对应的代码模块。

  • YOLOv7的预训练权重文件yolov7.pt是基于官方仓库中的models模块(包含yolov7.py等模型结构定义文件)保存的,序列化时会记录模型类所在的模块路径。
  • 你当前的运行环境中,没有将YOLOv7官方仓库的代码加入Python可导入路径,也没有导入对应的models模块,导致torch.load()反序列化时找不到模型类的定义,最终抛出ModuleNotFoundError。

简单说:你只加载了权重文件,但没提供模型结构的代码,PyTorch不知道这个权重对应什么模型结构,所以加载失败。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.17 16:22:38