在现实生活中,有时候我们写的程序需要发给小伙伴用,而小伙伴没有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之打包深度学习模型踩坑记录及其解决办法。相关推荐

  1. 深度学习中神经网络模型压缩的解决办法( flask API、onnx、ncnn在嵌入式、流媒体端口应用)

    深度学习中神经网络模型压缩的解决办法( flask API.onnx.ncnn在嵌入式.流媒体端口应用) 1 开发环境的创建 1.1 Conda简介 1.2 miniconda 1.3 conda操作 ...

  2. 自己搭深度学习环境踩坑血泪史

    自己搭深度学习环境踩坑的血泪史 从一个沮丧的事情开始 问题1 : 强行更新了一次win10后, 双系统里的ubuntu的启动项就没了,直接进入win10系统 问题2 : sudo apt-get up ...

  3. AirSim学习和踩坑记录(不定时更新)

    版权声明:本文为博主原创文章,遵循Creative Commons - Attribution-ShareAlike 4.0 International - CC BY-SA 4.0版权协议,转载请附 ...

  4. 关于安装李沐深度学习d2l包报错的解决办法(保姆教程)

    目录:d2l包安装失败的解决过程 前言 一.李沐提供的安装方式 1. 创建一个新的环境 2. 激活 d2l 环境 3. 安装深度学习框架和d2l软件包 3.1 安装PyTorch的CPU或GPU版本 ...

  5. Unity打包生成APK文件提交应用宝踩坑记录

    公司的项目在提交应用宝时,遇到了如下的坑,特记录. 在公司提价APK文件至腾讯应用宝时,腾讯提示有如下错误: 暂时不支持APK Signature Scheme V2,请去掉该类型的签名后再上传. 查 ...

  6. python怎么做自动化测试仪器经销商_Python自动化测试踩坑记录(企业中如何实施自动化测试)...

    企业中如何实施自动化测试 在我们读高中的时候, 是不是经常听老师说:学好数理化,走遍天下都不怕. 作为软件测试这个行业,在当下,你学好自动化,你去哪面试都不怕. 说是这么说,但是你想提前下班,自动化测 ...

  7. centos安装python及导入cv2出现的问题及踩坑记录

    想在容器中使用python,但python的官方镜像太过于精简,里面不管是yum还是vi 还是vim都没有安装,使用起来比较不方便,于是决定在centos基础镜像中安装python环境,具体步骤和遇到 ...

  8. CRNN-pytorch模型转libtorch模型踩坑记录

    这段时间一直在做CRNN文字识别的问题,从pytorch中训练好的模型然后转到libtorch中去,但是CRNN提供的代码没有转libtorch模型的部分,于是就在网上到处乱找,其中找到了这篇转的代码 ...

  9. AffordaceNet属性学习网络踩坑记录(二)

    1.在编译代码网络下的caffe时,要注意是在root权限还是用户权限下,需要在同一权限下执行caffe编译和训练网络.推荐在root目录下执行 2.在运行测试网络时,使用的python路径为代码路径 ...

最新文章

  1. 微信小程序实现滑动翻页效果源码附效果图
  2. git commit时出现unable to auto-detect email address错误
  3. 第15讲:Selenium 爬取实战
  4. 烟袋斜街-后海,印象已模糊
  5. Catalog Service - 解析微软微服务架构eShopOnContainers(三)
  6. ORM版学员管理系统2
  7. 22计算机408考研—数据结构—线性表、栈、队列、数组
  8. 用ANSYS画矩形_ANSYS软件使用的几点建议
  9. 短视频是如何赚钱的?切入短视频风口的3种玩法
  10. IPv6组播技术原理
  11. 能上QQ但打不开网页的简单修复方法
  12. OpenJDK源码赏析之四(jli_util中的工具函数)
  13. 网络安全防守方应该遵循得建设原则有哪些
  14. c语言编程题企业奖金,【C语言】企业奖金发放问题
  15. shell 中 ()、(())、[]、[[]]、{} 的作用
  16. 生信小白学习日记Day3——NGS基础 NGS分析注解(质量分析软件)
  17. 实验室仪器设备管理方案
  18. 业务流程设计的八大原则
  19. 2.3.3 x86 虚拟机创建的问题
  20. java开发高端说法_扣丁学堂教你如何成为JavaEE高端开发人才

热门文章

  1. linux安装autossh详细教程,在Linux下安装autossh的教程
  2. 一个小小的String问题引发的血案
  3. JAVA——基于HttpClient的通过单点登录方式(统一身份认证平台)登录正方教务系统[1999-2020]基本解决方案
  4. C++——《算法分析与设计》实验报告——箱子装载问题
  5. BugKuCTF 杂项 签到题
  6. android 设置 媒体服务器,第三讲:如何掌握媒体服务器的运行情况
  7. redis学习(一)
  8. Kotlin实战指南七:单例模式
  9. android Activity runOnUiThread() 方法使用
  10. 10-NSPersistentContainer介绍