凡亿教育-小燕
凡事用心,一起进步
打开APP
公司名片
凡亿专栏 | 大数据加载直接崩,MATLAB不用硬扛全量读入
大数据加载直接崩,MATLAB不用硬扛全量读入

处理GB级以上的大型数据集时,直接用load指令一次性全量加载,MATLAB很容易直接内存溢出崩溃。不用强行升级硬件,改用分块处理逻辑就能在有限内存下完成计算。

6.png

1. 分块流式读取

放弃全量load操作,改用datastore函数创建数据存储对象。

每次只读取当前计算需要的几百MB小块数据,处理完立刻释放内存,完全不会触发内存上限。

2. 降采样预处理

针对时序、图像类大数据,先做低损失降采样处理。

用downsample函数把百万级数据点压缩到万级,保留核心特征的同时,把内存占用降到原来的十分之一以内。

3. 切换内存映射模式

用memmap函数把大型二进制文件映射到虚拟内存。

MATLAB不会一次性把全量数据读入物理内存,只在访问对应片段时才加载,大幅降低峰值内存占用。

4. 清理冗余变量

每完成一个计算步骤,立刻用clear指令清理不再需要的临时数组。

避免中间变量堆积占用内存,把有限的内存空间留给核心计算环节,从根源避免内存溢出崩溃。


本文凡亿教育原创文章,转载请注明来源!

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表凡亿课堂立场。文章及其配图仅供工程师学习之用,如有内容图片侵权或者其他问题,请联系本站作侵删。
相关阅读
进入分区查看更多精彩内容>
精彩评论

暂无评论