2017-04-24 110 views
0

我們已經爲某些迴歸任務培養了額外的樹模型。我們的模型由3棵額外的樹組成,每棵樹有200棵深度爲30的樹。在3棵額外的樹上,我們使用嶺迴歸。 我們訓練我們的模型幾個小時,並醃製訓練好的模型(整個類對象),供以後使用。但是,保存的訓練模型的大小太大,大約爲140 GB! 有沒有辦法減小保存模型的大小?鹹菜中是否有任何可能有用的配置,或鹹菜的任何替代品?受過訓練的機器學習模型太大

+1

的scikit模型持久[頁碼](HTTP:/ /scikit-learn.org/stable/modules/model_persistence.html#)表明在某些情況下使用'joblib'可以更高效。 – Tchotchke

回答

3

在最好的情況下(二叉樹),你將有3 * 200 * (2^30 - 1) = 644245094400節點或434Gb假設每個節點將只花費1個字節來存儲。我認爲140GB是相當不錯的尺寸。

編輯:數學不好。

1

您可以嘗試使用帶壓縮參數的joblib。

from sklearn.externals import joblib 
    joblib.dump(your_algo, 'pickle_file_name.pkl',compress=3) 

壓縮 - 從0到9值較高者意味着更多的壓縮,同時也更慢的讀寫次數。使用3的值通常是一個很好的折衷。

您可以使用python標準壓縮模塊zlib,gzip,bz2,lzma和xz。要使用,你可以只指定特定擴展名的格式

例如

joblib.dump(obj, 'your_filename.pkl.z') # zlib 

的更多信息,請參閱[鏈接] :(http://gael-varoquaux.info/programming/new_low-overhead_persistence_in_joblib_for_big_data.html