我的問題是,我有一個很大的模型,這是緩慢加載到內存。爲了在很多樣本上測試它,我需要運行一些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