在PyTorch自定义数据集的__getitem__中从巨大的未压缩tar文件中读取图像的最快方法


一腔诗意喂了狗
2025-03-18 09:15:57 (3天前)


我在一个未压缩的TAR文件中有一个巨大的数据集(200万)jpg图像。我也有一个txt文件,每一行都是TAR文件中的图像名称。

img_0000001.jpg
img_0000002.jpg


2 条回复
  1. 0# 你抱着孩子@先跑 | 2019-08-31 10-32




    tarfile

    似乎有缓存

    getmember

    ,它重复使用

    getmembers()

    结果。



    但是如果你使用提供的剪切

    getitem

    ,然后对于数据集中的每个项目,tar文件打开并完全读取,提取一个图像文件,然后关闭tar文件并丢失相关信息。



    解决此问题的最简单方法可能是打开数据集中的tar文件

    init

    喜欢

    self.tf = tarfile.open(‘data.tar’)

    ,但是你需要记住最后关闭它。


登录 后才能参与评论