YOLO训练自定义数据集常见报错汇总

YOLO训练自定义数据集常见报错汇总

  • 1、报错一
    • 解决方法
  • 2、报错二
    • 解决方法
  • 3、报错三
    • 解决方法
  • 4、报错四
    • 解决方法
  • 5、报错五
    • 解决方法

1、报错一

SyntaxError: Non-UTF-8 code starting with '\xb5' in file E:\Robot\YOLO\camera.py on line 1, but no encoding declared;

这个错误通常表示 Python 解释器在尝试解析文件时遇到了非 UTF-8 编码的字符。在这种情况下,解释器会尝试使用默认的 UTF-8 编码来解析文件,但是发现文件中存在不符合 UTF-8 格式的字符(比如\xb5),因此抛出了 SyntaxError。

解决方法

在 Python 文件的开头添加一个如下的编码声明,告诉解释器文件中所使用的编码格式

# -*- coding: utf-8 -*-

2、报错二

torch.cuda.OutOfMemoryError: CUDA out of memory. Tried to allocate 20.00 MiB (GPU 0; 4.00 GiB total capacity; 1004.59 MiB already allocated; 1.23 GiB free; 1.01 GiB reserved in total by PyTorch) If reserved memory is >> allocated memory try setting max_split_size_mb to avoid fragmentation.  See documentation for Memory Management and PYTORCH_CUDA_ALLOC_CONF

解决方法

可能是默认的参数较大,减小批次和线程数,代码或命令行中添加或修改成以下语句:

batch=2,workers=0

3、报错三

OSError: [WinError 1455] 页面文件太小,无法完成操作。

解决方法

一般利用报错二的解决方法即可,如果不能解决,可以参考以下文章的方案三:
【解决方案】OSError: [WinError 1455] 页面文件太小,无法完成操作。
注:方案三中的选择的磁盘是项目所在的磁盘。

4、报错四

博主一开始是通过终端输入指令来进行训练的,出现如下报错:

SyntaxError: 'v5loader' is not a valid YOLO argument. 
'fl_gamma' is not a valid YOLO argument.
'image_weights' is not a valid YOLO argument.

表示在使用 YOLO 检测器时,提供了不支持的参数或者参数拼写错误。

解决方法

在项目中写一个train.py,修改其中的路径即可,代码如下:

# -*- coding: utf-8 -*-
from ultralytics import YOLO
import torch

if __name__ == '__main__':
    # 加载预训练模型,在该模型基础上,训练目标检测的模型
    model=YOLO('yolov8n.pt')

    #训练自定义数据集,数据配置保存在data.yaml中
    model.train(data='datasets/phoneandmouse/data.yaml',epochs=500,batch=2,workers=0)

    #使用验证集验证效果
    model.val()

5、报错五

RuntimeError: CUDA error: CUBLAS_STATUS_NOT_INITIALIZED when calling `cublasCreate(handle)`

解决方法

(1)没有安装CUDA
(2)可能是因为 CUDA 库未正确初始化导致的,可以尝试在程序开始时显式地初始化 CUDA,如:

import torch
torch.cuda.init()

(3)可能是因为 CUDA 运行时版本与 PyTorch(或其他使用 CUDA 的库)不匹配导致的。尝试升级或降级 CUDA 运行时版本,以与你使用的库版本匹配。

你可能感兴趣的:(机器人,#,YOLOv8,YOLO,人工智能,python)