Python Pytorch:使用DataLoader加载图像样本

Python Pytorch:使用DataLoader加载图像样本,python,python-3.x,pytorch,dataloader,Python,Python 3.x,Pytorch,Dataloader,我使用torch.utils.data中的标准数据加载器。我创建dataset类,然后按以下方式构建DataLoader: train_dataset = LandmarksDataset(os.path.join(args.data, 'train'), train_transforms, split="train") train_dataloader = data.DataLoader(train_dataset, batch_size=args.batch_size, num_worker

我使用torch.utils.data中的标准数据加载器。我创建dataset类,然后按以下方式构建DataLoader:

train_dataset = LandmarksDataset(os.path.join(args.data, 'train'), train_transforms, split="train")
train_dataloader = data.DataLoader(train_dataset, batch_size=args.batch_size, num_workers=2,
                                   pin_memory=True, shuffle=True, drop_last=True)
它工作得很完美,但数据集足够大——300k的图像。因此,使用DataLoader读取图像需要花费大量时间。所以,在调试阶段构建如此大的数据加载器真的很糟糕!我只是想验证一下我的一些假设,并且想快点做!我不需要为此加载整个数据集

我试图找到一种方法,如何只加载数据集的一小部分,而不在整个数据集上构建dataLoader?
目前,我所有的想法都只是创建另一个文件夹,将部分图片复制到这里,并在上面使用管道。但我想,Pytorch足够聪明,可以使用一些内置方法从大数据集中加载一部分图像。你能给我一些建议吗?

据我所知,没有一种机制能帮你做到这一点。您的问题在LandmarksDataset类中读取train data文件夹路径的位置。我假设os.listdirtrain\u data\u文件夹

相反,您可以使用一种更有效的方法os.scandirtrain\u data\u文件夹,该文件夹返回一个生成器,并在其上调用next将为您提供列车数据中图像的路径。通过这种方式,您可以多次调用next,而无需更改train data文件夹的结构并构建其子集