Anaconda 更新时总是想把我的 GPU Pytorch 版本替换为 CPU Pytorch 版本

问题描述 投票:0回答:3

我有一个新安装的Anaconda3(版本2020.02)环境,并且我已经通过命令

conda install pytorch torchvision cudatoolkit=10.2 -c pytorch
安装了Pytorch GPU版本。我已经验证我的 Pytorch 确实在 GPU 上运行良好。

但是,每当我通过

conda update --all
更新 Anaconda 时,总是会显示以下消息:

The following packages will be SUPERSEDED by a higher-priority channel:

  pytorch            pytorch::pytorch-1.5.0-py3.7_cuda102_~ --> pkgs/main::pytorch-1.5.0-cpu_py37h9f948e0_0

也就是说,它一直想把我的GPU版本Pytorch替换成CPU版本。我试过,如果继续更新,会安装CPU版本的Pytorch,而我之前在GPU上的Pytorch代码无法再运行。我也尝试过命令

conda update --all --no-channel-priority
但该消息仍然显示。

据我所知,我从未修改过 Anaconda 通道或添加自定义通道。我怎样才能摆脱这个消息?

anaconda pytorch conda
3个回答
4
投票

发生这种情况是因为,默认情况下,conda 更喜欢来自较高优先级通道的包,而不是来自较低优先级通道的任何版本。 -- conda 文档

您可以通过更改

pytorch
中的顺序将
.condarc
通道的优先级设置为高于默认通道来解决此问题 -- 更多此处

channels:
  - pytorch
  - defaults
  - conda-forge

channel_priority: true

或者您可以通过指定选项来升级它:

conda update --all -c pytorch

1
投票

就我而言,问题来自 conda 试图将

cudatoolkit
从 11.3 更新到 11.5(这些数字会根据您阅读本文的时间而有所不同)。

但是,如果您访问此处:https://pytorch.org/get-started/locally/,您将看到哪个 CUDA 版本与当前 PyTorch 版本兼容(现在 PyTorch 版本是

Stable (1.10.1)
)。从该链接看来,这个版本的 PyTorch 需要
CUDA 11.3

这一点已被建议的安装 PyTorch 的单行代码所证实,该单行代码将 cudatoolkit 的版本修复为 11.3:

# (this is not the solution - unless you're doing a fresh install)
conda install pytorch torchvision torchaudio cudatoolkit=11.3 -c pytorch

mamba update --all
的解决方案:固定
cudatookit
版本

使用conda的

pinned
文件:https://docs.conda.io/projects/conda/en/latest/user-guide/tasks/manage-pkgs.html#preventing-packages-from-updating-pinning

vi /YOUR_PATH_TO/miniconda3/envs/YOUR_ENV_NAME/conda-meta/pinned

# And add a line to limit coodatookit version to 11.3
#        (or higher, depending on when you read this - see above)
cudatoolkit<11.4

现在

mamba update --all
不会尝试更新 cudatookit,因此也不会尝试用 CPU PyTorch 替换 GPU PyTorch,因为满足了 cudatookit 11.3 的依赖关系。


0
投票

我也遇到了类似的问题,优先通道设置也没有帮助我。 我终于发现我可以在修改后的 conda update --all 命令中使用 pytorch 安装参数,如下所示(对于最新版本的 cuda,但可以使用您在原始帖子中设置的参数进行修改来安装 pytorch):

conda更新--all pytorch-cuda=12.4 -c pytorch -c nvidia

对于上面的解决方案,我会尝试:

conda 更新 --all cudatoolkit=11.3 -c pytorch

© www.soinside.com 2019 - 2024. All rights reserved.