我的问题是,我有一个很大的模型,这是缓慢加载到内存。为了在很多样本上测试它,我需要运行一些C程序来为模型生成输入特征,然后运行R脚本来预测。每次加载模型都需要太多时间。在R中,有没有什么办法可以在同一台机器上的R的不同进程之间共享一个变量?
所以我想知道
1),如果有保持在存储器中的模型(R中的变量)的一些方法。
或
2)能否运行R的分离式过程作为一个专用服务器,则R的所有预测过程可以访问该变量在服务器中的相同的机器上。
该模型在所有预测期间都不会改变。它是一个存储在.rdata文件中的randomForest模型,具有〜500MB的空间。加载这个模型很慢。
我知道我可以使用并行R(雪,doPar等)并行执行预测,但是,这不是我想要的,因为它需要我更改我使用的数据流。
非常感谢。
“但是,这不是我想要的,因为它会改变我使用的框架。”你能解释一下你的意思吗? – 2013-03-03 18:38:27
我的每个样本的数据流如下。 [1.输入输入特征] - > [2.run R randomForest prediction] - > [3.另一个程序来计算R输出的最终结果]。由于1和3在R中没有编码,并且不易与控制数据流的主程序分离。我希望有一种方法来保持这种数据流。 – Indicator 2013-03-03 20:06:01
我试过Rserve/RSclient。 Rserve可以在守护进程模式下运行R.当不止一个客户端连接到R服务器时,我不确定它是否使用多核。 – Indicator 2013-03-04 04:11:17