当前位置: 首页 > 知识库问答 >
问题:

Pytorch:使用DataLoader加载图像样本

邵正雅
2023-03-14

我使用torch的标准数据加载器。乌提尔斯。数据我创建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真的很糟糕!我只是想测试一些我的假设,想快点做!我不需要为此加载整个数据集。

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

共有1个答案

司空宣
2023-03-14

据我所知,没有任何机制可以为你做到这一点。您的问题在LandmarksDataset类中读取train data文件夹路径的位置。我假设os。listdir(列车数据文件夹)

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

 类似资料:
  • 在使用Pytorch的DataLoader实用程序时,在sampler中,的用途是什么?在中有一个参数。

  • 问题内容: 当有人通过我的应用程序工作时,我正在尝试在后台加载图像。我写的逻辑是这样的: 但是,当我尝试启动这样的新线程时: 但是在程序中我得到错误Looper.prepare必须被调用,随后是逻辑looper.quit() 但是,当我添加Looper.prepare()时,似乎中断了程序,并且没有要调用的looper.quit()。 我是否正确创建任务? 编辑: 这是我尝试运行时的错误日志: 我

  • 问题内容: 我在下面编写的功能是否足以在当今大多数(如果不是全部)浏览器中预加载图像? 我有一个图像URL数组,可以循环访问这些URL,并为每个URL 调用该函数。 问题答案: 是。这应该适用于所有主要的浏览器。

  • 当我启动应用程序时,我没有看到任何错误,但是是一个空数组。组件本身位于。我试着直接加载图像: 但无论我指定的路径是什么,如果出现错误,它就不能正常工作了。但是,我需要从文件夹加载所有图像,而不是静态加载,因为我事先不知道图像的名称。如有任何建议,将不胜感激。

  • 问题内容: 问题描述: 我正在创建一个滚动的带有缩略图的文章列表,该列表由我的SQLite数据库填充。通常,它运行缓慢,但速度较慢: 图像加载非常缓慢…我想使用“ 通用图像加载器 ”将图像缓存在设备上,如果您已经查看过图像(或者至少接近该图像,那会使它们看起来只是滚动到视图中) )。但是- 当您向上/向下拖动时,没有任何图像,然后在3-5秒后,图像开始弹出(就像重新下载它们一样) 我正在动态更改缩

  • 本文向大家介绍PyTorch实现重写/改写Dataset并载入Dataloader,包括了PyTorch实现重写/改写Dataset并载入Dataloader的使用技巧和注意事项,需要的朋友参考一下 前言 众所周知,Dataset和Dataloder是pytorch中进行数据载入的部件。必须将数据载入后,再进行深度学习模型的训练。在pytorch的一些案例教学中,常使用torchvision.da