python打包exe之打包深度学习模型踩坑记录及其解决办法。
在現實生活中,有時候我們寫的程序需要發給小伙伴用,而小伙伴沒有python,這時候我們需要將程序打包成exe文件發給小伙伴用。
今天講下打包深度學習模型
打包一般要用到cmd命令行,要求cmd能執行python程序。
因為我們一般將程序放在文件夾里,然后cmd直接進入文件夾。
教程見鏈接:
cmd執行python程序,文件夾直接進入cmd程序
一.虛擬環境建立
我們需要通過虛擬環境解決打包exe過大的問題。
一般的模型如機器學習等,我們可以通過pipenv來建立虛擬環境。
使用pipenv建立虛擬環境解決python打包exe文件過大的問題(附打包帶圖標,多個py文件打包exe)
使用pipenv有個缺陷,就是無法更改python版本,至少我無法更改。
我們可以改用anaconda來建立虛擬環境。anaconda虛擬環境可以更改python版本
anaconda虛擬環境教程大全
虛擬環境下,對深度學習框架版本要求很低,如我的電腦上TensorFlow虛擬環境為1.5.0時可以運行,更高的版本顯示錯誤。而在電腦上,我的tensorflow可以跑最新的版本。
python 與各深度學習版本對應關系見鏈接。自己參考然后在虛擬環境下安裝合適的python版本和深度學習框架
python深度學習環境支撐列表 各版本對應關系,Keras,TensorFlow,pytorch ,caffe等。
二.帶資源打包
python將資源文件一起打包進exe 講解(有算例)
對于深度學習模型,我們一般都是先訓練保存。然后將保存的模型作為資源文件進行打包,教程參考前面鏈接。
注意事項:如我們不能像常規一樣,將訓練程序在電腦python3.7,keras=2.3下進行訓練,然后把得到的模型.h5,放在虛擬環境下進行打包,而虛擬環境下的python=3.6,Keras不是2.3,是其他版本。深度學習不同版本框架保存的模型是不能共用的,否則會出現類似錯誤
在其他機器保存keras模型(.h5),load_model(~.h5)后報錯【in from_config if ‘class_name’ not in config[0] or config[0][‘class_name’] == ‘Merge’:】
原因:兩臺機器Keras版本號不一致
所以我們需要將訓練程序放在虛擬環境下進行訓練,得到模型配置,然后將模型配置作為資源文件一起打包。
cmd 進入文件夾,文件夾進入虛擬程序,然后,cmd執行python程序。
cmd執行python程序,文件夾直接進入cmd程序
總結深度學習模型打包步驟
1.將訓練程序和界面程序一起放在一個單獨文件夾里,注意界面程序讀取模型資源路徑方法
2.cmd進入該文件夾,然后通過anaconda建立虛擬環境。
3.在虛擬環境下安裝打包exe和程序相關的庫,安裝相關版本的python。
4.在虛擬環境下,進入python,執行訓練程序,模型配置得到保存。
5.在虛擬環境下 將模型配置作為資源文件,和界面程序 一起打包。得到最終exe文件
我的一次成功打包結果示意圖見下
附上機器學習打包方法
python打包exe 之打包sklearn模型中的各種坑及其解決方法。
電氣專業的計算機萌新:余登武。寫博文不容易。如果你覺得本文對你有用,請點個贊支持下,謝謝。
總結
以上是生活随笔為你收集整理的python打包exe之打包深度学习模型踩坑记录及其解决办法。的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 陆军特种作战学院招体育生吗
- 下一篇: 初中生长沙有读几年直接去部队的吗