加载图像的最快方法是什么?

nas*_*ory 5 pytorch

我有大约200,000个高分辨率图像,每次加载如此高质量的图像都很耗时.预加载内存中的所有图像可能会占用太多内存.如何将每个图像保存为.npz文件格式并加载.npz而不是.jpg?它会提高速度吗?

jdh*_*hao 4

您不需要一次将所有图像加载到内存中。还考虑到我们在模型训练期间需要对数据集进行数据增强,因此不可能加载所有图像。

在 PyTorch 中,您可以用来Dataset存储训练和验证集。该类Dataset有一个参数transforms(例如,Scale、RandomCrop 等),用于在训练期间动态变换训练图像。包中还提供了几个现成的数据集torchvision,请参见这里

基本方法

PyTorch 的内置函数Dataloader有一个num_worker,用于控制使用多少个子进程来加载数据。由于您的数据集不是很大,这足以满足您的需求。关于如何设置合适的worker数量,请参见这里

更多参考

PyTorch 论坛上有关于快速图像加载的讨论,使用post1post2作为开始。