3

我的问题是我有一个大模型,加载到内存很慢。为了在许多样本上测试它,我需要运行一些 C 程序来生成模型的输入特征,然后运行 ​​R 脚本来预测。每次加载模型都需要花费太多时间。

所以我想知道

1)如果有某种方法可以将模型(R中的变量)保存在内存中。

或者

2)我可以将R的分离过程作为专用服务器运行,那么R的所有预测过程都可以在同一台机器上访问服务器中的变量。

在所有预测期间,模型永远不会改变。它是一个存储在 .rdata 文件中的 randomForest 模型,该文件大约有 500MB。加载此模型很慢。

我知道我可以使用并行 R(snow、doPar 等)来并行执行预测,但是,这不是我想要的,因为它需要我更改我使用的数据流。

非常感谢。

4

1 回答 1

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")
于 2013-03-03T19:12:54.500 回答