pytorch模型打包成exe遇到的问题

编码问题
在终端输入chcp 65001回车


迭代溢出问题
增加迭代次数设置
在打包成exe过程中会生成spec文件,在这个文件头部添加以下内容

import sys
sys.setrecursionlimit(10000)

pkg_resources.py2_warn问题
有两种方法
(1)C:\Users\lieweiai\anaconda3\Lib\site-packages\pkg_resources把init文件中的86行__import__(‘pkg_resources.py2_warn’)注释掉
(2)在更改spec文件中的hiddenimports=[‘pkg_resources.py2_warn’]


OSError: Can’t get source for <function _rejection_sample at 0x0000027BDAD5A9D8>.
在spec文件中添加
excluded_modules = [‘torch.distributions’]
excludes=excluded_modules


解决jit调用问题
在调用jit的文件中及入口文件中添加os.environ[“PYTORCH_JIT”] = “0”


解决模型加载问题(打包成功后)
在生成的exe文件的同级目录下把jit文件拷贝进去


关于模型中包含cuda的问题
cuda是无法打包的,至少我没打包成功哈,可以在CPU上运行,把cuda去掉,这样在所有电脑上都能运行,但是速度可能变慢,毕竟没有显卡支持了,或者在需要运行的电脑上安装好cuda,这样你就可以直接打包你的模型


以下是我的spec示例文件内容

# -*- mode: python ; coding: utf-8 -*-
import sys
sys.setrecursionlimit(10000)

block_cipher = None

excluded_modules = ['torch.distributions']


a = Analysis(['D:\\py\\apploy_exe\\test.py'],
             pathex=['C:\\Users\\lieweiai\\Desktop\\apploy'],
             binaries=[],
             datas=[],
             hiddenimports=['pkg_resources.py2_warn'],
             hookspath=[],
             runtime_hooks=[],
             excludes=excluded_modules,
             win_no_prefer_redirects=False,
             win_private_assemblies=False,
             cipher=block_cipher,
             noarchive=False)
pyz = PYZ(a.pure, a.zipped_data,
             cipher=block_cipher)
exe = EXE(pyz,
          a.scripts,
          [],
          exclude_binaries=True,
          name='test',
          debug=False,
          bootloader_ignore_signals=False,
          strip=False,
          upx=True,
          console=True )
coll = COLLECT(exe,
               a.binaries,
               a.zipfiles,
               a.datas,
               strip=False,
               upx=True,
               upx_exclude=[],
               name='test')
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值