我試圖分析文本,但是我的Mac的RAM只有8個演出,並且RidgeRegressor只是在Killed: 9
之後停下來。我認爲這是因爲它需要更多的內存。Python - 超越RAM極限?
是否有辦法禁用堆棧大小限制器,以便算法可以使用某種交換內存?
我試圖分析文本,但是我的Mac的RAM只有8個演出,並且RidgeRegressor只是在Killed: 9
之後停下來。我認爲這是因爲它需要更多的內存。Python - 超越RAM極限?
是否有辦法禁用堆棧大小限制器,以便算法可以使用某種交換內存?
您需要手動完成。
可能有兩個不同的核心問題在這裏:
一個,你可以嘗試numpy的的memmap這摘要交換。 作爲替代方案,請考慮將數據準備到HDF5或某個數據庫。對於HDF5,您可以使用h5py或pytables,它們都允許使用類似numpy的用法。
對於B:使用一些非核心就緒算法是一個好主意。在scikit學習那些支持partial_fit。
請記住,這個訓練過程分解成至少兩個新元素:
在上面的鏈接這些算法應該沒問題兩個過程中使用的東西持有N^2輔助記憶。
SGDRegressor可以被參數化以類似於RidgeRegression。
另外:它可能需要手動使用partial_fit
,遵守算法的規則(通常某些類型的隨機排序需要收斂證明)。抽象交換的問題是:如果你的迴歸者在每個時代進行排列,但不知道這是多麼昂貴,你可能會遇到麻煩!
因爲問題本身非常困難,所以有一些專門爲此設計的庫,而sklearn需要一些更詳細的手動工作。其中一個最極端的(很多瘋狂的技巧)可能是vowpal_wabbit(IO往往是瓶頸!)。當然,還有其他流行的庫,如pyspark,服務於一個略有不同的目的(分佈式計算)。
看看這個問題:https://stackoverflow.com/questions/17710748/process-large-data-in-python – nalyd88
[在python中處理大型數據]的可能重複(https://stackoverflow.com /問題/ 17710748 /過程大型數據中的Python) – nalyd88