YOLOv5训练过程中的各种报错

1、报错:

ImportError: cannot import name 'notf' from 'tensorboard.compat' (C:\Users\86198\.conda\envs\yyt\lib\site-packages\tensorboard\compat\__init__.py)

解决办法:更新tensorboard

pip install --upgrade tensorboard

 2、报错:

ImportError: DLL load failed while importing cv2: 页面文件太小,无法完成操作。
forrtl: error (200): program aborting due to control-C event

解决办法:
①不止在运行一个项目,另一个项目的python程序也在运行,关掉就可以了。
②windows操作系统不支持python的多进程操作。而神经网络用到多进程的地方在数据集加载上,所以将DataLoader中的参数num_workers设置为0即可。

    train_loader = torch.utils.data.DataLoader(
        train_dataset,
        batch_size=16,
        shuffle=True,
        num_workers=0,  # 设置为0
    )

3、报错:

subprocess.CalledProcessError: Command ‘git tag‘ returned non-zero exit status

解决办法:

打开python环境中 找到 Lib 里面的subprocess.py,在415行中将check值修改成False。

4、报错:

UnicodeDecodeError: ‘utf-8‘ codec can‘t decode byte 0xb2 in position 6:invalidstartbyte

解决办法:

在提示报错的torch_utils.py文件58行,将原来的decode()改成decode(encoding = ‘gbk’)

5、报错:

RuntimeError: Unable to find a valid cuDNN algorithm to run convolution

解决办法:

batch-size过大,调小即可

5、报错:

RuntimeError: a view of a leaf Variable that requires grad is being used in an in-place operation.

解决办法:修改 models/yolo.py 中的 _initialize_biases 函数为:

def _initialize_biases(self, cf=None):  # initialize biases into Detect(), cf is class frequency
    # cf = torch.bincount(torch.tensor(np.concatenate(dataset.labels, 0)[:, 0]).long(), minlength=nc) + 1.
    m = self.model[-1]  # Detect() module
    for mi, s in zip(m.m, m.stride):  # from
        b = mi.bias.view(m.na, -1)  # conv.bias(255) to (3,85)
        with torch.no_grad():
            b[:, 4] += math.log(8 / (640 / s) ** 2)  # obj (8 objects per 640 image)
            b[:, 5:] += math.log(0.6 / (m.nc - 0.99)) if cf is None else torch.log(cf / cf.sum())  # cls
        mi.bias = torch.nn.Parameter(b.view(-1), requires_grad=True)

6、报错:

报错CalledProcessError: Command 'pip install 'protobuf<3.20,>=3.9.2'' returned non-zero exit status 1.

解决办法:重开吧。。。

首先这个报错的大概意思是protobuf这个包的版本不对,只支持3.9.2版本。protobuf==3.9.2支持的python版本最高为3.8,这里需要从新建pytorch环境开始,降低python版本。

7、报错:

RuntimeError: result type Float can‘t be cast to the desired output type__int64

解决办法:

类型转换的问题,参考:RuntimeError: result type Float can‘t be cast to the desired output type __int64报错解决方法

8、报错:

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

在运行train.py时,需要预训练的权重文件。如果没有正确设置权重文件路径或者该文件不存在,则会发生该错误。可以检查weights文件夹是否存在,以及yolov5s.pt文件是否已经下载并放置到该文件夹下。

9、报错:

attributeerror: 'FreeTypeFont' object has no attribute 'getsize'

解决办法:

这是因为安装了新版本的 Pillow (10)删除了该getsize功能,降级到 Pillow 9.5 解决了该问题

pip uninstall Pillow
pip install Pillow==9.5

  • 20
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
### 回答1: 如果你在训练YOLOv5时出现了内存不足的报错,你可以尝试一些方法来解决它。以下是一些可能的解决方法: 1. 减少批次大小(batch size):减少批次大小可以减少训练时所需的内存,但这可能会影响模型的训练效果。 2. 减少输入图像的分辨率:减少输入图像的分辨率可以减少所需的内存,但这也会影响模型的训练效果。 3. 使用更小的模型:使用更小的YOLOv5模型可以减少所需的内存,但这也会影响模型的检测精度。 4. 使用更多的GPU:如果你有多个GPU,可以尝试在多个GPU上并行训练YOLOv5以减少单个GPU上的内存使用量。 5. 升级GPU:如果你的GPU内存不足,可以考虑升级GPU以获得更多的内存。 需要注意的是,如果你减少批次大小或输入图像分辨率,可能需要对训练参数进行调整以获得最佳的检测结果。 ### 回答2: 当在使用YOLOv5进行训练时,如果出现内存不足的错误提示,可能会影响训练的进行。但是,是否可以继续训练取决于具体的情况和系统资源。 首先,我们需要了解出现内存不足错误的原因。通常情况下,这可能是由于模型的复杂性、输入图像大小或批量大小过大等因素导致的。如果这些因素超出了系统和显卡的内存容量限制,那么继续训练可能会导致程序崩溃或运行效率极低。 如果内存不足的错误提示只是一次性的,可能可以通过减小训练批次的大小、缩小图像尺寸或降低模型复杂度等方法来解决。这样可以有效降低所需内存的占用,让训练能够顺利进行。 然而,如果内存不足的错误持续出现,即使进行了资源优化,也可能无法继续训练。此时,可能需要考虑增加系统内存、更换显卡或改用更高性能的计算设备等措施来解决问题。这样可以提供足够的资源来支持训练过程,保证模型的训练效果和训练速度。 总而言之,能否继续训练取决于内存不足的具体情况和可用资源。在内存不足的情况下,可以尝试进行资源优化来解决问题。如果优化无效或不可行,可能需要增加系统资源以确保训练的顺利进行。 ### 回答3: 在训练Yolov5时,如果遇到内存不足报错,可以尝试一些方法来解决该问题,但是否可以继续训练取决于具体情况。 首先,我们可以尝试减小模型的输入大小。减小输入大小可能会降低模型的准确度,但可以减少内存占用。需要根据具体情况权衡模型性能和内存消耗的平衡。 其次,可以采用batch大小的调整。通过减小batch大小,可以降低模型在每个批次的内存需求。这也可能导致训练性能的下降,但可以是一个权衡选择。 另外,可以尝试使用更小型的模型,如Yolov5s代替Yolov5l或Yolov5x。更小的模型通常占用更少的内存,但可能会牺牲一些准确度。 若以上方法仍无法解决内存不足的问题,可能需要考虑增加计算资源,如使用更高配置的GPU或者增加内存容量。这些都可以提供更多的内存供模型训练使用。 总的来说,若能通过适当的调整来降低内存消耗,那么可以继续训练,并根据实际情况观察模型的性能表现。但如果内存问题无法解决,并且没有更大的计算资源可用,那可能需要考虑使用其他方法或技术来处理该问题。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值