conda 中的“torch”和“pytorch”版本不匹配

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

我在环境中安装了以下内容:

cudatoolkit=11.3
pytorch=1.11.0
torchvision=0.12.0

但是当我询问 torch/cuda 版本时,我得到了这个:

$ python3 -c "import torch; print(torch.__version__)"
1.12.1+cu102 

这不是我想要的(1.12.1 就可以了,但是 cu102 太旧了)。再进一步看,我看到了这个:

$ conda list torch
# packages in environment at /home/ml/anaconda3/envs/ldm:
#
# Name                    Version                   Build  Channel
pytorch                   1.11.0          py3.8_cuda11.3_cudnn8.2.0_0    pytorch
pytorch-lightning         1.4.2                    pypi_0    pypi
pytorch-mutex             1.0                        cuda    pytorch
torch                     1.12.1                   pypi_0    pypi
torch-fidelity            0.3.0                    pypi_0    pypi
torchdiffeq               0.2.3                    pypi_0    pypi
torchmetrics              0.6.0                    pypi_0    pypi
torchvision               0.12.0               py38_cu113    pytorchcode 

所以“pytorch”有我想要的版本(带有cuda11.3),但“torch”是1.12.1。为什么?此外,“torch”似乎不是 conda 包(尝试安装时出现 PackagesNotFoundError),这令人惊讶,因为它出现在“conda list”中。

显然我对 conda / pytorch 有一些不明白的地方。有人可以解释一下吗?

python pytorch conda torch
3个回答
1
投票

所以最后那个“torch”假(?)包是我之前安装的pytorch和cuda(带有pip)。 conda 安装实际上使 pip 不再工作(“导入火炬”在环境之外无法工作)。这更奇怪,因为我对虚拟环境的理解是它至少应该不影响外面的东西。

解决办法是用pip(环境外)重新安装pytorch。之后,“导入火炬”在环境内部起作用。这又很奇怪,因为 conda 安装了他自己版本的 pytorch,显然最终没有使用它。

我认为这是一个“答案”,因为它解决了我遇到的问题,但我仍然不明白为什么 conda 会这样。


0
投票

据我所知,

torch
包使用LuaRocks包管理器。如果你主要在 python 中使用它,你应该瞄准“PyTorch”,conda 只处理它。

对于您的情况,我强烈建议您创建一个新环境并从头开始重新安装 PyTorch 及其组件。阅读此兼容性矩阵并尝试根据这些表进行安装。


0
投票

有类似的问题,希望了解conda的人可以回答这个问题。

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