通过environment.yml在Conda环境安装GPU版PyTorch失败如何解决?
问题原因
核心是Conda的通道优先级规则导致安装了CPU版本的PyTorch:
- Conda搜索包时严格遵循environment.yml中channels列表的从上到下顺序,排位越靠前的通道优先级越高。你的配置中
conda-forge通道排在最前,会优先从conda-forge拉取pytorch包,而conda-forge源的pytorch默认是CPU编译版本,即便配套安装了cudatoolkit也不会启用CUDA支持。 - 手动执行安装命令时指定了
-c pytorch -c nvidia,此时pytorch官方通道优先级高于conda-forge,会拉取pytorch官方预编译的、匹配对应cudatoolkit版本的CUDA支持版PyTorch,因此功能正常。
修复方案
方案1:调整通道顺序
将pytorch、nvidia通道移到conda-forge之前,保证优先从官方源拉取PyTorch:
name: foo channels: - pytorch - nvidia - conda-forge dependencies: - cudatoolkit=11.1 - python=3.8 - pytorch
方案2:指定PyTorch的来源通道
如果不想调整全局通道优先级,可直接在依赖项中指定pytorch从官方通道安装:
name: foo channels: - conda-forge - nvidia - pytorch dependencies: - cudatoolkit=11.1 - python=3.8 - pytorch::pytorch
验证方式
环境安装完成后,执行以下命令验证CUDA是否正常启用:
import torch print(torch.cuda.is_available())
输出为True即代表配置生效。
内容的提问来源于stack exchange,提问作者JDRomano2
相关产品推荐
相关产品推荐

