我的问题是我有一个大型模型,加载到内存的速度很慢。要在许多样本上测试它,我需要运行一些C程序来为模型生成输入功能,然后运行R脚本进行预测。每次加载模型都需要花费太多时间。
所以我想知道
1)是否有一些方法可以将模型(R中的变量)保存在内存中。
或
2)我可以运行R作为专用服务器的分离过程,然后R的所有预测过程都可以访问同一台机器上服务器中的变量。
在所有预测期间,模型永远不会改变。它是一个存储在.rdata文件中的randomForest模型,它有~500MB。加载此模型的速度很慢。
我知道我可以使用并行R(snow,doPar等)来并行执行预测,但是,这不是我想要的,因为它需要我改变我使用的数据流。
非常感谢。
答案 0 :(得分:2)
如果每次都重新生成模型,可以将模型保存为RData文件,然后在不同的计算机上共享。虽然从磁盘加载到内存可能仍需要一些时间,但它将节省重新生成的时间。
save(myModel, file="path/to/file.Rda")
# then
load(file="path/to/file.Rda")
编辑@ VictorK的建议:
正如Victor指出的那样,由于您只保存一个对象,saveRDS
可能是更好的选择。
saveRDS(myModel, file="path/to/file.Rds")
myModel <- readRDS(file="path/to/file.Rds")