我使用 numpy 数组来处理深度学习图像。但随着数据变得越来越大,在使用数据增强等技术训练模型之前,我就面临 RAM 问题。
有人可以建议我如何处理大数据,例如。我的系统中有 30GB 的数据,它有 16GB 的内存。
PS我担心预处理和训练期间的RAM,而我用我的GPU进行批处理
我使用 numpy 数组来处理深度学习图像。但随着数据变得越来越大,在使用数据增强等技术训练模型之前,我就面临 RAM 问题。
有人可以建议我如何处理大数据,例如。我的系统中有 30GB 的数据,它有 16GB 的内存。
PS我担心预处理和训练期间的RAM,而我用我的GPU进行批处理
在预处理期间进行所有图像准备和数据增强,并将结果保存为一个或多个样本的数组(最大为小批量)。不要将数组转换回图像。使用训练模型的包装器读取这些准备好的数组。我推荐 numpy.save 的简单性和透明度。此处讨论了其他选项:Stackoverflow - persisting numpy arrays 。
在 Keras 中的图像预处理过程中,您可能会在执行 时耗尽内存zca_whitening
,这涉及将图像与自身进行点积。这取决于数据集中单个图像的大小,而不是数据集的总大小。
除了非常小的图像之外,所有图像所需的内存zca_whitening
都将超过 16GB,请参阅此处了解说明。
要解决此问题,您可以zca_whitening=False
在ImageDataGenerator中进行设置。