You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python3.8.5+PyTorch1.9环境安装兼容NVIDIA Apex的报错解决求助

解决方案

问题根源说明

你遇到的两次报错分别对应两个问题:

  1. 最初的ImportError: cannot import name 'UnencryptedCookieSessionFactoryConfig'是因为你误装了和NVIDIA apex同名的第三方Python包(属于web开发框架相关依赖),和深度学习用的NVIDIA apex完全无关,这一步你已经卸载完成,无需额外处理。
  2. 后续安装NVIDIA apex失败是因为版本不匹配:你本地系统的CUDA编译工具链版本为10.0,而已安装的PyTorch 1.9.0是基于CUDA 11.1编译的,两者版本不一致触发了apex的编译检查报错。

可执行解决方案(按优先级排序)

方案1:安装纯Python版本apex(优先选择,操作最简单)

proxynca_pp代码要求的apex核心功能(amp混合精度训练)无需编译CUDA/C++扩展即可使用,直接通过你已经clone的NVIDIA apex仓库安装纯Python版本即可,操作命令如下:

cd apex
pip install -v --disable-pip-version-check --no-cache-dir ./

该方式会跳过CUDA版本检查,安装速度快,90%以上的训练场景都可以正常支持,测试通过即可直接运行训练代码。

方案2:对齐版本后编译完整功能apex

如果你需要用到apex的fused算子、分布式同步等依赖CUDA扩展的高级功能,需要先对齐CUDA版本,二选一即可:

  • 卸载现有PyTorch,安装适配本地CUDA 10.0的PyTorch版本(PyTorch 1.4及更早版本均支持CUDA 10.0),之后再执行带--cpp_ext和--cuda_ext参数的apex编译安装命令
  • 将本地系统的CUDA工具链版本切换到11.1,和现有PyTorch的编译CUDA版本对齐,之后再执行带扩展参数的安装命令

方案3:强制跳过版本检查(仅临时测试用,不推荐)

如果仅做临时测试不想调整环境版本,可以手动修改apex目录下的setup.py文件,找到check_cuda_torch_binary_vs_bare_metal函数,注释掉抛出版本不匹配错误的代码行,之后再执行带扩展参数的编译命令即可。该方法可能存在运行时精度异常、崩溃等潜在问题,风险自行承担。


附加说明

你日志中的MatplotlibDeprecationWarning不影响代码运行,如需消除警告,将train.py第12行的
matplotlib.use('agg', warn=False, force=True)
修改为
matplotlib.use('agg', force=True)
即可。

内容的提问来源于stack exchange,提问作者Mona Jalal

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.04 14:42:00