如何从庞大的.mat文件中快速加载小变量?

3

我有一个名为trained_model.mat的文件,其大小约为23 GB。

这个文件有6个变量,

  • 其中4个是1 X 1的双精度浮点数
  • 1个是48962 X 1的双精度浮点数
  • 1个是TreeBagger对象(占用最大空间)。

我想快速加载仅名称为Y_hat且大小为48962 X 1的变量,但这似乎需要很长时间。我在一个具有256GB RAM的计算节点上运行此代码,并且该系统上没有运行其他用户进程。

我已经尝试使用load('trained_model.mat', 'Y_hat');,但这也花费了很长时间。任何建议将不胜感激。


5
将来最好是将它们分别保存。 - Ander Biguri
可能情况是文件 I/O 是您的瓶颈,因为计算节点需要访问文件系统以读取 mat 文件。您可以通过在主节点上运行相同的代码行来验证是否是这种情况。那里需要多长时间?此外,您能否从计算节点 ssh 到主节点? - Itamar Katz
1
你尝试过 matfile 吗? - sco1
只是出于兴趣,"very long" 是什么意思? - Matthias W.
1
@AnderBiguri 是的,我意识到了这一点,并已开始将大文件单独保存。但是,我必须花费很多时间阅读已保存的结果。 - Swaroop
1
事实上,超级计算机的一个大问题是内存访问速度慢! - Ander Biguri
1个回答

0
% Create a MAT-file object, m, connected to the MAT-file

% The object allows you to access and change variables directly in a MAT-file

% without having to load the variables into memory

m = matfile('trained_model.mat');

your_data_48962x1 = m.Y_hat;

% It should be faster than load

了解更多有关MathWorks的信息


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接