Yolo V5 学习 (预处理 create_dataloader )


一、调用create_dataloader完成加载数据与预处理

create_dataloader函数用于创建数据加载器,它可以从数据集中加载数据并进行预处理。
这个函数返回一个数据加载器和一个数据集对象。

代码如下(示例):

   train_loader, dataset = create_dataloader(train_path,
                                              imgsz,
                                              batch_size // WORLD_SIZE,
                                              gs,
                                              single_cls,
                                              hyp=hyp,
                                              augment=True,
                                              cache=None if opt.cache == 'val' else opt.cache,
                                              rect=opt.rect,
                                              rank=LOCAL_RANK,
                                              workers=workers,
                                              image_weights=opt.image_weights,
                                              quad=opt.quad,
                                              prefix=colorstr('train: '),
                                              shuffle=True,
                                              seed=opt.seed)

train_path
  数据集的路径
imgsz
 图片的大小
batch_size
 批处理大小
gs
 步长
single_cls
 是否为单类别
hyp=hyp
 超参数
augment=True
 是否进行数据增强
cache=None if opt.cache == ‘val’ else opt.cache
 是否使用缓存文件技巧
rect=opt.rect
 是否使用矩形训练
rank=LOCAL_RANK
 进程等级
workers=workers
 工作进程数量
image_weights=opt.image_weights
 是否使用图像权重
quad=opt.quad
 是否切割为四份或九份
prefix=colorstr('train: ')
 前缀字符串


 超参数(Hyperparameters)是指在机器学习模型中,需要人为设定的参数。这些参数通常不能通过训练数据来学习,而是需要人为设定。例如,在神经网络中,学习率、批处理大小、迭代次数等都是超参数。超参数的选择会影响模型的性能,因此需要通过实验来确定最优的超参数。

None if opt.cache == ‘val’ else opt.cache
 如果opt.cache的值为’val’,则不使用缓存文件技巧None,否则使用opt.cache指定的缓存文件技巧。

 缓存文件技巧是指在第一次读取数据集时,将标签文件处理成一个缓存文件。这样,在重新读取数据集时,可以直接搜索数据集中是否存在缓存文件。这种方法可以大大加快数据集的加载速度。此外,相对于原始的文本标签文件,缓存文件还可以保存很多额外信息,例如数据集的大小、未找到标签文件对应的图片数量等。

rank 表示进程的等级。在分布式训练中,每个进程都有一个唯一的等级,用于区分不同的进程。在这段代码中,rank 参数被传递给 create_dataloader 函数,用于创建数据加载器。