哪种格式更快,Matlab (.mat) 还是 NumPy (.npy)?

数据挖掘 Python 深度学习 matlab 麻木的
2021-10-04 07:05:24

我正在研究一个深度学习问题,以检测大小为 250 x 250 的图像中的癌症。我有硬件限制,并且内存不足。

我决定将我的图像转换为 Matlab 格式的文件(“.mat”),并进行了一些改进;但是,我仍然内存不足。我探索了一些强烈推荐使用 NumPy 文件(“.npy”)的资源。

将我的图像转换为 NumPy 文件会很昂贵,所以我想确保转换会有所作为。我不是要求内存增强算法(例如批处理),只是“.mat”“.npy”文件之间的内存差异。

3个回答

根据我的研究:

  • 两者都可以以二进制格式存储数据
  • 都存储数据的数据类型
  • 我不确定压缩率和加载时间,这似乎是你问题的潜台词。

您似乎没有解决的一件事是您将数据加载到什么中,或者您是否正在考虑从 MATLAB 环境迁移到 Python 环境,反之亦然。

也就是说,我发现这篇文章很有用,并认为如果你还没有看过它可能会对你有所帮助。 https://stackoverflow.com/a/10997335/3259054也许您可以编写一个小脚本来采样一些文件并查看差异。

您是否考虑过 HDF5 格式?如果你想做出改变,你也可以测试其他选项,HDF5 有很大的动力成为科学计算的事实标准。

最后,纯粹出于学习的愿望,如果您有内存限制,为什么要关心文件格式?

减少内存瓶颈的一种方法是更有效地处理数据处理(无论磁盘格式如何)。

有一些软件框架旨在改进训练过程,尤其是加载图像。Dask就是这样一种框架来扩展现有的 Python 工作流,因此它很可能会减少.npy文件相对于.mat文件的内存瓶颈(唯一可以确定的方法是进行基准测试)。

MATLAB 以内存消耗着称。因此,即使您在 Python 中使用相同的数据进行处理,Python 中的整体系统内存利用率也会降低。

根据我迄今为止使用 Python 的经验,帮助我以更好的性能处理更多数据。

另一方面,Python 有许多开箱即用的库/框架,以进一步增强整体性能和机器学习/深度学习(我不太确定 Matlab 中是否也有类似的库和框架)。