我目前正在使用sbrl库中的sbrl()
函数。该功能可以完成任何监督统计学习算法的工作:获取数据并生成预测模型。
使用它时出现内存泄漏问题。
gc()
将无济于事。仅关闭R会话会释放内存。下面是一个最小的可复制示例。应该注意系统的内存管理程序。
重要的是,据我所知,sbrl()
函数调用了C
代码,并且还使用了Rcpp
。我想这与内存泄漏问题有关。
您知道如何强制释放内存吗?
配置:Windows 10,R 3.5.0(Rstudio或R.exe)
install.packages("sbrl")
library(sbrl)
# Getting / prepping data
data("tictactoe")
# Looping over sbrl
for (i in 1:1e3) {
rules <- sbrl(
tdata = tictactoe, iters=30000, pos_sign="1",
neg_sign="0", rule_minlen=1, rule_maxlen=3,
minsupport_pos=0.10, minsupport_neg=0.10,
lambda=10.0, eta=1.0, alpha=c(1,1), nchain=20
)
invisible(gc())
cat("Rules object size in Mb:", object.size(rules)/1e6, "\n")
}