首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用矩阵库退出HeapSpace

使用矩阵库退出HeapSpace
EN

Stack Overflow用户
提问于 2012-03-08 09:22:57
回答 1查看 168关注 0票数 0

我正在尝试使用Java对传感器读数应用卡尔曼滤波器,但是我正在使用的矩阵操作库给了我一个堆空间错误。那么,有没有人知道用于JVM的具有更好内存分配特性的矩阵操作库呢?

看起来这个-- http://code.google.com/p/efficient-java-matrix-library/ --只是名义上的“有效”。数据集有9424行x 2列,所有值都是双精度的(时间戳和传感器读数的3个维度中的1个)。

非常感谢,各位!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-03-08 10:45:50

1)卡尔曼滤波器不应该需要大量的、非线性缩放的内存量:它只基于2个值计算估计值-初始值和先前的值。因此,您需要的内存量应该与数据点的总量成正比。请参阅:http://rsbweb.nih.gov/ij/plugins/kalman.html

2)切换到浮点数将是计算所需内存的1/2。在您的情况下,这可能是无关紧要的-我假设如果数据集由于内存而崩溃,您正在使用非常小的内存量运行JVM,或者您有大量的数据集。

3)如果你真的有一个很大的数据集(> 1G ),并且减半很重要,那么你提到的库可以重构为只使用浮点数。

4)要比较java矩阵库,您可以查看http://code.google.com/p/java-matrix-benchmark/wiki/MemoryResults_2012_02 -内存占用最少的库是ojAlgo、EJML和Colt。我在使用Colt进行大规模计算时运气很好--但我不确定哪一个实现了Kalaman方法。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9611689

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档