我运行了一个包含11000个样本和20个特征的BART模型(其中一半是分类变量)。我的mac有8G内存。首先,我通过函数set_bart_machine_memory(5000)将内存设置为5000 MB。
然后我可以通过函数bartMachine一次拟合模型。如果我想运行另一个模型,那么R会返回如下错误:
Exception in thread "pool-10-thread-1" Exception in thread "pool-10-thread-3"
java.lang.OutOfMemoryError: Java heap space
java.lang.OutOfMemoryError: Java heap space
Exception in thread "pool-10-thread-2" java.lang.OutOfMemoryError: Java heap space
Exception in thread "pool-10-thread-4" java.lang.OutOfMemoryError: Java heap space
Error in .jcall(bart_machine$java_bart_machine, "Z", "isDestroyed") :
java.lang.OutOfMemoryError: Java heap space
我认为在内存中有两个bartMachine对象可能不是一个好主意,所以我只是通过函数destroy_bart_machine()杀死第一个模型,然后第二个模型可以运行。
主要问题在于bartMachineCV()。默认情况下大约有20个模型适合,当R运行带有第二组参数设置的bart模型时,上面的内存错误就会碰到我(即:bartMachine CV try:k:2 nu,q:3, 0.9米:200)。
我对JAVA不熟悉,有没有办法在8GB RAM计算机上运行bartMachineCV()?感谢。
答案 0 :(得分:0)
您需要运行64位Java JVM; 32位JVM只能为您提供~1.8GB的最大堆。我建议您使用JDK 7或更高版本;这些日子为甲骨文的生产。
完成后,您可以像这样设置JVM内存设置:
http://www.oracle.com/technetwork/java/javase/tech/vmoptions-jsp-140102.html
您想要设置-Xmx=1024M
或类似内容。
答案 1 :(得分:0)
我是bartMachine包的维护者。确保下载新版本并注意初始化库后出现的消息:
> library(bartMachine)
...
Welcome to bartMachine v1.2.0! You have 0.48GB memory available.
如果您在消息上看到少量RAM,则JVM设置出现问题。 64位JVM是必须的。使用
options(java.parameters = "-Xmx2500m")
在致电library(bartMachine)
之前尝试设置更多内容。