加载best.pt模型报错:No module named 'ultralytics.yolo' 求助
问题原因及解决方法
错误原因
直接用torch.load()加载Ultralytics YOLO模型是错误操作。你的best.pt是基于Ultralytics框架训练的模型,它依赖Ultralytics内部的模型类结构,torch.load()无法自动识别并导入这些依赖类,因此抛出ModuleNotFoundError。
正确代码实现
替换原有加载方式,使用Ultralytics官方提供的YOLO类加载模型,代码如下:
from ultralytics import YOLO from PIL import Image # 用Ultralytics官方方式加载模型 model = YOLO('best.pt') # 加载输入图片 input_image = Image.open('input_image.jpg') # 运行预测获取结果 results = model(input_image) # 提取输出字符串(根据模型任务调整,示例为分类任务取预测类别名称) for result in results: output_str = result.names[result.probs.top1] print(output_str)
关键说明
- Ultralytics的模型文件包含框架特定的配置和类引用,必须通过
YOLO类加载才能正确初始化模型结构与权重。 - 模型预测返回的
results对象包含各类输出信息,需根据模型任务类型(分类、检测等)提取对应的字符串输出。
内容的提问来源于stack exchange,提问作者Fares K. A.
相关产品推荐
相关产品推荐

