簡體   English   中英

盡管 package 版本和機器相同,但 Scikit-learn model 持久性失敗

[英]Scikit-learn model persistence fails despite the same package version and machine

我目前正在使用我在 anaconda 環境中構建的 KNN model。 model 是使用 scikit-learn 0.22.1 版和 pickle 4.0 版制作的。 為了從網站訪問這個腳本,我將所有代碼移動到同一台計算機上的 web 服務器上,並使用 PHP 從命令行執行它。

但是,當我這樣做時,它依賴於常規的 python 安裝。 因此,為了確保一切都井井有條,我使用 pip 來安裝所有正確版本的軟件包。 但是當我從命令行運行代碼時,它會拋出以下錯誤:

Traceback (most recent call last):
  File "script.py", line 78, in <module>
    knn = pickle.load(file);
  File "sklearn\neighbors\_binary_tree.pxi", line 1180, in sklearn.neighbors._kd_tree.BinaryTree.__setstate__
  File "sklearn\neighbors\_binary_tree.pxi", line 1122, in sklearn.neighbors._kd_tree.BinaryTree._update_memviews
  File "sklearn\neighbors\_binary_tree.pxi", line 236, in sklearn.neighbors._kd_tree.get_memview_ITYPE_1D
ValueError: Buffer dtype mismatch, expected 'ITYPE_t' but got 'long long'

鑒於我使用的是相同的 package 版本和相同的計算機架構,我不明白為什么會拋出這個錯誤。

事實證明,我在兩個實例中都安裝了 python 3.7.6,但有一個用於開發代碼的 64 位環境和一個用於部署代碼的 32 位環境。 卸載 32 位 python 並將其替換為 64 位解決了該問題。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM