質問

Javaを使用してセンサーの読み取りにカルマンフィルタを適用しようとしていますが、私が使用しているMatrix操作ライブラリは私にHeapSpaceエラーを与えています。そのため、メモリ割り当て特性が向上したJVMのマトリックス操作ライブラリを知っていますか?

これは、このようなように見えます - http://code.google.com / p /効率的 - Java-Matrix-Library / - 名前のみ "効率的"です。データセットは9424行の2列の2列の行を持ち、すべての値は2倍になります(センサーからの読み取り値の3つのうち3つのディメンションと1つのディメンション)。

多くの感謝、みんな!

役に立ちましたか?

解決

1) The Kalman filter should not require massive, non linear scaling amounts of memory : it is only calculating the estimates based on 2 values - the initial value, and the previous value. Thus, you should expect that the amount of memory you will need should be proportional to the total amount of data points. See : http://rsbweb.nih.gov/ij/plugins/kalman.html

2) Switching over to floats will 1/2 the memory required for your calculation . That will probably be insignificant in your case - I assume that if the data set is crashing due to memory, you are running your JVM with a very small amount of memory or you have a massive data set.

3) If you really have a large data set ( > 1G ) and halving it is important, the library you mentioned can be refactored to only use floats.

4) For a comparison of java matrix libraries, you can checkout http://code.google.com/p/java-matrix-benchmark/wiki/MemoryResults_2012_02 --- the lowest memory footprint libs are ojAlgo, EJML, and Colt. Ive had excellent luck with Colt for large scale calculations - but I'm not sure which ones implement the Kalaman method.

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top