也许之前已经问过这个问题,但我无法找到适合我情况的相关信息。
我正在使用 PyTorch 创建一个用于图像数据回归的 CNN。我没有正式的学术编程背景,所以我的许多方法都是临时的,而且效率非常低。有时我可以回顾我的代码并在以后清理内容,因为效率低下并没有那么严重以至于性能受到显着影响。但是,在这种情况下,我使用图像数据的方法需要很长时间,使用大量内存,并且每次我想测试模型中的更改时都会这样做。
我所做的基本上是将图像数据加载到 numpy 数组中,将这些数组保存在 .npy 文件中,然后当我想将所述数据用于模型时,我导入该文件中的所有数据。我不认为数据集真的那么大,因为它由 5000 张 64x64 大小的 3 个颜色通道图像组成。然而,我的内存使用率在加载时高达 70%-80%(16gb),每次加载需要 20-30 秒。
我的猜测是我对加载它的方式很愚蠢,但坦率地说,我不确定标准是什么。我应该以某种方式在我需要之前将图像数据放在某个地方,还是应该直接从图像文件中加载数据?在任何一种情况下,独立于文件结构的最佳、最有效的方法是什么?
我真的很感激这方面的任何帮助。