日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

python打包exe 之打包sklearn模型中的各种坑及其解决方法。

發布時間:2024/9/30 python 43 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python打包exe 之打包sklearn模型中的各种坑及其解决方法。 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

之前學習了如何打包,如何建立虛擬環境打包,以及如何帶資源打包exe.

python打包成exe 可執行文件 。教程
使用pipenv建立虛擬環境解決python打包exe文件過大的問題(附打包帶圖標,多個py文件打包exe)
python將資源文件一起打包進exe 講解(有算例)

今天在此打包資源文件基礎上,學習如何打包sklearn模型。
sklearn是機器學習模型,當在現實生活中,我們有時需要跑模型,而神經網絡需要的包更多,程序編寫也更復雜。在僅僅是為了解決問題時,我們常常傾向于選擇sklearn機器學習模型。
但是打包sklearn模型時常常出現各種錯誤。
我總結下我打包時出現的錯誤及其解決方法。

問題1:from sklearn.externals import joblib 失敗 cannot import name joblib

也許你在打包后運行exe文件出現這個問題,那是因為你在安裝程序所需要的庫時,sklearn一般是默認最新的,而最新的skleran中已經沒有joblib。

這是因為joblib已經從sklearn中移除了,可以直接改為 import joblib
注意改原始程序中的模型保存與加載代碼,
改為joblib
joblib使用方法

import joblib
#將訓練的模型保存到磁盤(value=模型名) 默認當前文件夾下
joblib.dump(filename=‘xx.model’)
model1 = joblib.load(filename=“xx.model”)

問題2:ImportError: No module named ‘sklearn.utils.cython_blas’

打開.spec文件

添加hiddenimports=[‘cython’, ‘sklearn’, ‘sklearn.utils._cython_blas’ ],

問題3:pyinstaller 打包后運行exe程序出現的"ModuleNotFindError"
問題如圖所示:
我在程序中使用的是svm程序,然后運行顯示沒有這個包。

首先,使用pyinstaller 打包生成".spec" 文件
接下來,使用文本編輯器打開".spec"文件,在 hiddenimport=[] 部分添加缺少的module

-hidden-import 應用需要的包,但是沒有被打包進來,這里的錯誤是最多的,因為一般是第三方包隱式調用其他包,然后打包出來的程序顯示Fate Error不能運行。需要自己再添加進去,

如圖所示:圖中導入是貝葉斯模型,因為我后面模型改用貝葉斯啦,非svm
如果是svm,解決方法同圖。

然后使用pyinstaller 生成新的exe程序:

pyinstaller xx.spec

打包教程見上面給的鏈接
在解決這三個問題后,我的示范算例最后結果

可以運行

深度學習打包教程
python打包exe之打包深度學習模型踩坑記錄及其解決辦法。


電氣工程的計算機萌新:余登武。如果你覺得本文對你有用,請點個贊支持下,謝謝。

總結

以上是生活随笔為你收集整理的python打包exe 之打包sklearn模型中的各种坑及其解决方法。的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。