基于pytorch的双模态数据载入

您所在的位置:网站首页 多模态代码 基于pytorch的双模态数据载入

基于pytorch的双模态数据载入

#基于pytorch的双模态数据载入| 来源: 网络整理| 查看: 265

基于pytorch的双模态数据载入 双模态数据融合 torch.utils.data.dataloader 双模态数据载入

双模态数据融合

无论是双模态,还是多模态融合,数据载入都是其重要的一环。如将相机图像和激光雷达投影反射率图或是红外图像融合,都需要保证输入到网络的双模态图片是一一对应的,否则就失去了融合的意义。本文主要讲解基于pytorch的双模态数据载入方法,希望对需要的人有帮助。 KITTI数据集相机图像KITTI数据集相机图像 KITTI数据集激光雷达反射率投影图像 KITTI数据集激光雷达反射率投影图

torch.utils.data.dataloader

首先,简单介绍一下torch.utils.data.dataloader,它是pytorch中用于载入数据的重要接口,主要用于将数据集根据batch size、是否打乱顺序shuffle、采样方式sampler等来封装成tensor,作为网络的输入。 torch.utils.data.dataloader脚本github地址:https://github.com/pytorch/pytorch/blob/master/torch/utils/data/dataloader.py

CLASS torch.utils.data.DataLoader(dataset, batch_size=1, shuffle=False, sampler=None, batch_sampler=None, num_workers=0, collate_fn=None, pin_memory=False, drop_last=False, timeout=0, worker_init_fn=None, multiprocessing_context=None)

其中有关数据集载入顺序的属性包括shuffle和sampler,shuffle表示在数据集载入中是否打乱顺序,默认是False不打乱顺序。将数据顺序打乱,是为了是数据更有独立性,一般将shuffle设置为True;sampler是dataloader的采样器,定义了数据集的采样规则,默认设置为None,如果定义了采样规则,那么shuffle必须设置为False。

对于双模态数据载入而言,当shuffle=True时,那么data_loader1和data_loader2所载入的数据是打乱的,两个模态图像将无法一一对应。当shuffle=False时,data_loader1和data_loader2所载入的数据是按照顺序一一对应的,但是这样数据就失去了其独立性。

data_loader1 = data.DataLoader(dataset1, args.batch_size, num_workers=args.num_workers, shuffle=True, collate_fn=detection_collate, pin_memory=True) data_loader2 = data.DataLoader(dataset2, args.batch_size, num_workers=args.num_workers, shuffle=True, collate_fn=detection_collate, pin_memory=True)

双模态数据载入的目的是在保证数据相匹配的前提下,打乱shuffle数据载入的顺序,所以更改属性shuffle无法满足要求。 我们再来看一下DataLoader的sampler属性,其主要通过torch.utils.data.sampler.Sampler类来设置,主要包括以下两个子类,这两个子类也对应着shuffle的设置。

class torch.utils.data.sampler.SequentialSampler(data_source) 数据集数据顺序排列 参数: -


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3