我正在研究一个深度学习问题,以检测大小为 250 x 250 的图像中的癌症。我有硬件限制,并且内存不足。
我决定将我的图像转换为 Matlab 格式的文件(“.mat”),并进行了一些改进;但是,我仍然内存不足。我探索了一些强烈推荐使用 NumPy 文件(“.npy”)的资源。
将我的图像转换为 NumPy 文件会很昂贵,所以我想确保转换会有所作为。我不是要求内存增强算法(例如批处理),只是“.mat”和“.npy”文件之间的内存差异。
我正在研究一个深度学习问题,以检测大小为 250 x 250 的图像中的癌症。我有硬件限制,并且内存不足。
我决定将我的图像转换为 Matlab 格式的文件(“.mat”),并进行了一些改进;但是,我仍然内存不足。我探索了一些强烈推荐使用 NumPy 文件(“.npy”)的资源。
将我的图像转换为 NumPy 文件会很昂贵,所以我想确保转换会有所作为。我不是要求内存增强算法(例如批处理),只是“.mat”和“.npy”文件之间的内存差异。
根据我的研究:
您似乎没有解决的一件事是您将数据加载到什么中,或者您是否正在考虑从 MATLAB 环境迁移到 Python 环境,反之亦然。
也就是说,我发现这篇文章很有用,并认为如果你还没有看过它可能会对你有所帮助。 https://stackoverflow.com/a/10997335/3259054也许您可以编写一个小脚本来采样一些文件并查看差异。
您是否考虑过 HDF5 格式?如果你想做出改变,你也可以测试其他选项,HDF5 有很大的动力成为科学计算的事实标准。
最后,纯粹出于学习的愿望,如果您有内存限制,为什么要关心文件格式?
减少内存瓶颈的一种方法是更有效地处理数据处理(无论磁盘格式如何)。
有一些软件框架旨在改进训练过程,尤其是加载图像。Dask就是这样一种框架来扩展现有的 Python 工作流,因此它很可能会减少.npy文件相对于.mat文件的内存瓶颈(唯一可以确定的方法是进行基准测试)。
MATLAB 以内存消耗着称。因此,即使您在 Python 中使用相同的数据进行处理,Python 中的整体系统内存利用率也会降低。
根据我迄今为止使用 Python 的经验,帮助我以更好的性能处理更多数据。
另一方面,Python 有许多开箱即用的库/框架,以进一步增强整体性能和机器学习/深度学习(我不太确定 Matlab 中是否也有类似的库和框架)。