2016-11-17 349 views
2

我有一個訓練有素的TfidfVectorizer,傾銷joblib.dump。 它使用scikit-learn版本0.18在我的筆記本電腦上創建。當我試圖把它放到我的服務器裏安裝的scikit學習0.18.1最新版本我就要警告下列要求:如何將分類器升級到最新版本的scikit-learn

/usr/local/lib/python2.7/dist-packages/sklearn/base.py:315: UserWarning: Trying to unpickle estimator TfidfTransformer from version 0.18 when using version 0.18.1. This might lead to breaking code or invalid results. Use at your own risk. 
    UserWarning) 
/usr/local/lib/python2.7/dist-packages/sklearn/base.py:315: UserWarning: Trying to unpickle estimator TfidfVectorizer from version 0.18 when using version 0.18.1. This might lead to breaking code or invalid results. Use at your own risk. 
    UserWarning) 

有沒有我TfidfVectorizer升級到一種自然的方式防止任何問題?

我應該更好地卸載scikit-learn 0.18.1並將0.18版安裝到服務器上嗎?

+1

我不認爲有移植工具。如果您想要安全,請儘可能使用相同版本或更高版本:升級和重新安裝。如果您有一些時間,請檢查版本之間的源代碼更改,以便序列化您的分類器,並且可能會導致可能的後果。 – sascha

回答

2

是的,你應該在服務器上安裝相同的版本時使用的發展,最好的做法是使用requirements.txt爲您的項目的所有要求,並安裝使用condavirtualenv您的服務器上一個新的環境,這將節省你手動設置這些東西的問題。

0

This鏈接爲您提供有關如何升級的說明。

pip install -U scikit-learn 

上述命令應升級您當前版本的scikit到最新版本。根據你用tfidf向量化器做什麼,你可能會遇到或可能沒有問題;我會建議保持更新的新版本。所以,你最好確保你的服務器和計算機都運行最新的sci-kit。

+2

你甚至理解這個問題嗎?請再讀一遍。 – sascha

+1

謝謝,但它不能解決我的問題。 我已經訓練了一個巨大的12Gb語料庫上的tfidf矢量化器。我的整個項目都依賴於它,所以讓它工作而不出錯是至關重要的。我寧願留在舊版的scikit-learn中,也不願意用最新版本獲得不可預測的結果。有沒有鏈接如何指定要安裝的版本? –

+1

@ArtemNepo檢查python文檔。這就像'''pip install scikit-learn = 0.18'''(刪除後) – sascha