YOLOv5模型未加载自定义训练权重问题求助
问题描述
- 已制作合成数据集,包含
.png格式图片及<object-class> <x> <y> <width> <height>格式的标注文件 - 使用YOLOv5完成训练,训练过程无异常,执行命令:
C:\Users\LeGat\AppData\Local\Programs\Python\Python311\python.exe train.py --img 300 --batch 16 --epochs 8 --data C:\Users\LeGat\Desktop\CRFOTO\data.yaml --weights yolov5s.pt
- 加载自定义训练权重失败,始终调用预训练权重,尝试过的加载代码:
model = torch.hub.load('ultralytics/yolov5', 'custom', path='runs\\train\\yolov5s.pt') model.eval() # 其他尝试 model = torch.hub.load('ultralytics/yolov5', 'custom', path='runs\\train\\exp\\weights\\best.pt', force_reload=True) model = torch.hub.load('ultralytics/yolov5', 'custom', path='yolov5s.pt')
- 执行TensorBoard命令查看训练日志时报错,命令及报错信息如下:
tensorboard --logdir runs/train
C:\Users\LeGat\yolov5\runs\train\exp\weights>tensorboard --logdir runs/train Serving TensorBoard on localhost; to expose to the network, use a proxy or pass --bind_all TensorBoard 2.11.2 at http://localhost:6006/ (Press CTRL+C to quit) forrtl: error (200): program aborting due to control-C event Image PC Routine Line Source libifcoremd.dll 00007FF90A75DF54 Unknown Unknown Unknown KERNELBASE.dll 00007FF963252943 Unknown Unknown Unknown KERNEL32.DLL 00007FF963DF7614 Unknown Unknown Unknown ntdll.dll 00007FF9658626B1 Unknown Unknown Unknown
解决方案
一、自定义训练权重加载失败修复
修正权重文件路径
训练完成后,YOLOv5会在runs/train/exp/weights目录下生成best.pt(验证集最优权重)和last.pt(训练最后一轮权重),你之前使用的runs\\train\\yolov5s.pt路径不存在,因此默认加载了预训练权重。
建议使用绝对路径确保准确性:model = torch.hub.load('ultralytics/yolov5', 'custom', path='C:/Users/LeGat/yolov5/runs/train/exp/weights/best.pt', force_reload=True) model.eval()验证加载结果
加载后打印模型类别,确认是否匹配你的数据集:print(model.names)若输出为你的数据集类别,说明加载成功;若为COCO默认类别,需再次检查路径。
清除Torch Hub缓存
若缓存干扰加载,手动删除Windows下的缓存目录C:\Users\LeGat\.cache\torch\hub\ultralytics_yolov5_master,再重新运行加载代码。
二、TensorBoard报错修复
切换正确工作目录
你当前在weights子目录执行命令,--logdir runs/train会被解析为该子目录下的路径,实际日志在YOLOv5根目录的runs/train。先切换根目录再执行命令:cd C:\Users\LeGat\yolov5 tensorboard --logdir runs/train解决forrtl运行库错误
该错误来自Intel Fortran运行库,与TensorBoard核心功能无关:- 升级TensorBoard到最新版本:
pip install --upgrade tensorboard - 尝试在Anaconda环境中运行TensorBoard,避免系统依赖冲突;
- 直接在浏览器打开
http://localhost:6006/,即使控制台报错,TensorBoard可能已正常启动。
- 升级TensorBoard到最新版本:
内容的提问来源于stack exchange,提问作者Matias Rodriguez
相关产品推荐
相关产品推荐

