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模型中的各种坑及其解决方法。

在这里插入图片描述
电气专业的计算机萌新:余登武。写博文不容易。如果你觉得本文对你有用,请点个赞支持下,谢谢。
在这里插入图片描述

  • 17
    点赞
  • 79
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

总裁余(余登武)

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值