《YOLOv5:从入门到实战》报错解决 & 专栏答疑

《YOLOv5:从入门到实战》报错解决 & 专栏答疑_第1张图片

前言:Hello大家好,我是小哥谈。《YOLOv5:从入门到实战》专栏上线后,部分同学在学习过程中提出了一些问题,笔者相信这些问题其他同学也有可能遇到。为了让大家可以更好地学习本专栏内容,笔者特意推出了该篇专栏答疑,针对同学们在学习过程中所提出的问题进行汇总记录,并不断实时更新,希望能够帮助到大家! 

本专栏涵盖了丰富的YOLOv5算法从入门到实战系列教程,专为学习YOLOv5的同学而设计,堪称全网最详细的教程!该专栏从YOLOv5基础知识入门到项目应用实战都提供了详细的手把手教程,欢迎大家订阅并一并探索!

《YOLOv5:从入门到实战》报错解决 & 专栏答疑_第2张图片

《YOLOv5:从入门到实战》报错解决 & 专栏答疑_第3张图片

       目录

1.报错解决

2.专栏答疑

《YOLOv5:从入门到实战》报错解决 & 专栏答疑_第4张图片

1.报错解决

报错1

报错内容:

报错内容如下图所示:

《YOLOv5:从入门到实战》报错解决 & 专栏答疑_第5张图片

解决方案:

train.py文件中,大概324行左右,修改下列代码:

# Backward
scaler.scale(loss).backward()

在原代码的基础上添加一行代码:

# Backward
torch.use_deterministic_algorithms(False) # 添加代码
scaler.scale(loss).backward()

报错2

报错内容:

FileNotFoundError: [Errno 2] No such file or directory: 'yolov5s.pt'

报错内容如下图所示:

《YOLOv5:从入门到实战》报错解决 & 专栏答疑_第6张图片

解决方案:

该报错容易发生在新入门的学生中,报错原因是没有准备预训练权重文件。

预训练权重:一般为了缩短网络的训练时间,并达到更好的精度,我们一般加载预训练权重进行网络的训练。而YOLOv5的5.0版本给我们提供了几个预训练权重,我们可以对应我们不同的需求选择不同的版本的预训练权重。通过如下的图可以获得权重的名字和大小信息,可以预料的到,预训练权重越大,训练出来的精度就会相对来说越高,但是其检测的速度就会越慢。预训练权重可以通过下列网址进入然后进行下载,本次训练自己的数据集用的预训练权重为yolov5s.pt

《YOLOv5:从入门到实战》报错解决 & 专栏答疑_第7张图片

说明:♨️♨️♨️

预训练权重网址:Release v5.0 - YOLOv5-P6 1280 models, AWS, Supervise.ly and YouTube integrations · ultralytics/yolov5 · GitHub

报错3

报错内容:

export GIT_PYTHON_REFRESH=quiet

报错内容如下图所示:

《YOLOv5:从入门到实战》报错解决 & 专栏答疑_第8张图片

解决方案:

train.py文件开头,添加下列代码:

os.environ["GIT_PYTHON_REFRESH"] = "quiet"

具体如图所示:

《YOLOv5:从入门到实战》报错解决 & 专栏答疑_第9张图片

报错4

报错内容:

OSError: [WinError 1455] 页面文件太小,无法完成操作。 Error loading "C:\Users\Lenovo\your_path\pytorch\lib\site-packages\torch\lib\cudnn_cnn_infer64_8.dll" or one of its dependencies.

报错内容如下图所示:

《YOLOv5:从入门到实战》报错解决 & 专栏答疑_第10张图片

解决方案:

train.py文件中找到parse_opt函数,调小‘--workers’中的default的值来解决。

《YOLOv5:从入门到实战》报错解决 & 专栏答疑_第11张图片


2.专栏答疑

问题1

问题内容:

可以把backbone替换成MobileNetv3以后,再更换成BiFPN的结构吗?

笔者回复:

可以的,我看论文有这么做的,您可以试一下效果。

问题2

问题内容:

添加了注意力机制后,为什么反而降点了呢?

笔者回复:

添加注意力不起作用无外乎两个原因,一是代码错误,二是注意力不适合。代码错误就不说了,而注意力不适合,需要明白:

注意力本身就是一种特征,通过附加到源特征上,实现一种类似特征增强的效果,因此从原理上讲,添加注意力,即使结果不变好,也不见得变差,但实际却经常遇到结果变差的情况。换一种说法,注意力是一组权重,权重附加到特征上,有增强的也有不增强的,当大量权重附加都达到增强效果,而只有少量特征造成负面影响,注意力就整体上增强了。这也是我们常说的注意力强化有用特征而弱化无用特征的作用,但其实鬼知道它强化的是什么特征,它也不可能强化的都是有用特征。注意力不起作用或者起反作用还与添加位置或者数据集等有关系。

所以,总结就是,对于YOLOv5算法,没有绝对涨点的改进操作,添加注意力机制也是如此,所以添加是否有用,需要多加尝试!


说明:♨️♨️♨️

本篇内容笔者会根据情况实时更新,大家有任何问题欢迎指出!

你可能感兴趣的:(YOLOv5:从入门到实战,YOLO,人工智能,计算机视觉,目标检测,机器学习,深度学习)