我在大学里,所有文件系统都在远程系统中,无论我用我的帐户登录哪里,都可以访问我的主目录。即使我通过SSH命令登录到GPU服务器。这是我使用GPU服务器读取数据的条件。
目前,我使用PyTorch在ImageNet上从头开始训练ResNet,我的代码仅使用同一台计算机上的所有GPU,我发现“torchvision.datasets.ImageFolder”将花费近两个小时。
您能否提供一些有关如何加速“torchvision.datasets.ImageFolder”的经验?非常感谢。
最佳答案
为什么要花这么长时间?
设置 ImageFolder
可能需要很长时间,尤其是当图像存储在慢速的远程磁盘上时。此延迟的原因是数据集的__init__
函数遍历了图像文件夹中的所有文件,并检查该文件是否为图像文件。对于ImageNet,由于要检查的文件超过100万个,因此可能需要花费相当长的时间。
您可以做什么?
-正如Kevin Sun已经指出的那样,将数据集复制到本地(可能更快)可以大大加快速度。
-或者,您可以创建一个修改后的数据集类,该数据集类不读取所有文件,而是依赖于文件的缓存列表-缓存列表仅需事先准备一次并用于所有运行。
关于image-processing - 如何加快ImageNet的“ImageFolder”,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/54207204/