调试Yolov5错误报告

1、RuntimeError: CUDA out of memory. Tried to allocate 20.00 MiB

1、num_workers 调整为0

2、batchsize调整为1 ???

2、报错解决:ValueError: Media Bounding Box Debugger/Images is invalid. Please remove invalid filename characters

解决方法:

1、关闭wandb

在 yolov5\utils\loggers\wandb\wandb_utils.py

 try:
     import wandb
 ​
     assert hasattr(wandb, '__version__')  # verify package import not local dir
 except (ImportError, AssertionError):
     wandb = None

在此程序后面加一行:wandb = None

 try:
     import wandb
 ​
     assert hasattr(wandb, '__version__')  # verify package import not local dir
 except (ImportError, AssertionError):
     wandb = None
 wandb = None

如果继续出现错误报告:AttributeError: 'WandbLogger' object has no attribute 'bbox_interval'

解决方法:在 \yolov5\utils\loggers 文件夹下的 _init__.py文件中里面的

 try:
     import wandb
 ​
     assert hasattr(wandb, '__version__')  # verify package import not local dir
 except (ImportError, AssertionError):
     wandb = None

下面再次添加一行wandb = None 变为如下所示,即可成功

 try:
     import wandb
 ​
     assert hasattr(wandb, '__version__')  # verify package import not local dir
 except (ImportError, AssertionError):
     wandb = None
 wandb = None

YOLO系列是基于深度学习的端到端实时目标检测方法。 PyTorch版的YOLOv5轻量而高性能,更加灵活和易用,当前非常流行。 本课程将手把手地教大家使用labelImg标注和使用YOLOv5训练自己的数据集。课程实战分为两个项目:单目标检测(足球目标检测)和多目标检测(足球和梅西同时检测)。  本课程的YOLOv5使用ultralytics/yolov5,在Windows和Ubuntu系统上分别做项目演示。包括:安装YOLOv5、标注自己的数据集、准备自己的数据集(自动划分训练集和验证集)、修改配置文件、使用wandb训练可视化工具、训练自己的数据集、测试训练出的网络模型和性能统计。 除本课程《YOLOv5实战训练自己的数据集(Windows和Ubuntu演示)》外,本人推出了有关YOLOv5目标检测的系列课程。请持续关注该系列的其它视频课程,包括:《YOLOv5(PyTorch)目标检测:原理与源码解析》课程链接:https://edu.csdn.net/course/detail/31428《YOLOv5目标检测实战:Flask Web部署》课程链接:https://edu.csdn.net/course/detail/31087《YOLOv5(PyTorch)目标检测实战:TensorRT加速部署》课程链接:https://edu.csdn.net/course/detail/32303《YOLOv5目标检测实战:Jetson Nano部署》课程链接:https://edu.csdn.net/course/detail/32451《YOLOv5+DeepSORT多目标跟踪与计数精讲》课程链接:https://edu.csdn.net/course/detail/32669《YOLOv5实战口罩佩戴检测》课程链接:https://edu.csdn.net/course/detail/32744《YOLOv5实战中国交通标志识别》课程链接:https://edu.csdn.net/course/detail/35209 《YOLOv5实战垃圾分类目标检测》课程链接:https://edu.csdn.net/course/detail/35284  
### 调试 YOLOv5 源码的方法 对于希望深入理解并优化YOLOv5模型的研究人员和开发者来说,掌握有效的调试技巧至关重要。以下是几种推荐的调试方法: #### 使用断点工具 Python内置有强大的pdb模块,可以在代码中的任何位置设置断点来进行逐步执行分析。这有助于深入了解程序流程以及变量状态变化。 ```python import pdb; pdb.set_trace() ``` 上述语句可在想要暂停的地方插入,启动交互式的调试器[^1]。 #### 日志记录 合理利用日志功能可以帮助追踪函数调用顺序、输入输出情况等重要信息。通过配置logging库的不同级别(DEBUG, INFO, WARNING, ERROR),能够灵活控制输出内容详略程度。 ```python import logging logging.basicConfig(level=logging.DEBUG) logger = logging.getLogger(__name__) ... logger.debug('This is a debug message') ``` 这种方式特别适用于分布式环境中跨文件协作开发时共享诊断线索[^2]。 #### 可视化辅助 TensorBoard作为 TensorFlow 提供的一个可视化工具,同样支持 PyTorch 项目如YOLOv5。借助它绘制损失曲线、监控指标表现等功能,便于及时发现潜在问题所在。 安装命令如下所示: ```bash pip install tensorboard tensorboard --logdir=runs ``` 此外,在`train.py`脚本里适当位置加入以下几行可开启事件写入服务[^3]: ```python from torch.utils.tensorboard import SummaryWriter writer = SummaryWriter('runs/yolov5_experiment_1') for epoch in range(start_epoch, epochs): ... writer.add_scalar('Loss/train', avg_loss.item(), global_step=epoch) ``` #### 单元测试编写 针对特定组件或算法实现编写的自动化测试案例不仅有利于保障现有特性稳定不变,而且能在后续迭代过程中快速定位新引入错误的位置。pytest框架配合mock对象模拟复杂依赖关系非常适合此类场景应用。 创建名为test_yolo.py的新文件,并添加类似下面的内容: ```python def test_load_model(): from models.experimental import attempt_load weights_path = 'yolov5s.pt' model = attempt_load(weights_path, map_location='cpu') assert isinstance(model, torch.nn.Module), f"Expected nn.Module but got {type(model)}" ``` 运行全部或者指定单个测试项只需简单执行: ```bash pytest tests/ # 或者更具体地指向某个文件/类/方法 pytest tests/test_yolo.py::TestClass::test_method_name ``` 以上策略综合运用可以极大提升对YOLOv5源码的理解效率及其性能改进的可能性。
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值