安装 cudatoolkit 适用于 conda install 但不适用于 conda create -f

Installing cudatoolkit works with conda install but not with conda create -f

我有一个 PyTorch 环境文件:

name: torch
channels:
  - defaults
  - conda-forge
dependencies:
  - python=3.7
  - pytorch::pytorch
  - pytorch::torchvision
  - pytorch::torchaudio
  - pytorch::cudatoolkit
  - numpy
  - scipy
  - scikit-learn
  - matplotlib
  - pillow
  - tqdm
  - joblib
  - visdom
  - jsonpatch
  - pip
  - pip:
    - torchsummary
    - opencv-python==4.1.1.26

尝试使用 conda create -f torch.yml 从中创建 conda 环境失败:

(base) prompt@PC:~$ conda env create -f environment.yml 
Collecting package metadata (repodata.json): done
Solving environment: failed

ResolvePackageNotFound: 
  - pytorch::cudatoolkit

如果我从依赖项列表中删除 cudatoolkit,则创建的环境没有问题。

但是,conda install cudatoolkit -c pytorch 可以毫无问题地找到并安装软件包。在这两种情况下,如果我将 cudatoolkit 替换为 cudatoolkit=11.3(PyTorch 网站上列出的当前最新版本),也会发生同样的情况。

你有这个错误是因为 conda 没有找到名为 pytorch::cudatoolkit 的包。

您的 yml env 文件必须如下所示:

name: torch
channels:
  - defaults
  - conda-forge
  - pytorch
dependencies:
  - python=3.7
  - pytorch
  - torchvision
  - torchaudio
  - cudatoolkit=11.3
  - numpy
  - scipy
  - scikit-learn
  - matplotlib
  - pillow
  - tqdm
  - joblib
  - visdom
  - jsonpatch
  - pip
  - pip:
    - torchsummary
    - opencv-python==4.1.1.26

我通过从 nvidia 频道而不是 pytorch 安装 cudatoolkit 设法解决了这个问题。我仍然不确定为什么 cudatoolkit 可以从 pytorch 使用一种方法而不是另一种方法,但这解决了我的问题(尽管 nvidia 版本似乎更大,所以它可能是pytorchcudatoolkit 的超集包)。我的 YAML 文件现在看起来像这样:

name: ritnet
channels:
  - defaults
  - conda-forge
dependencies:
  - python=3.7
  - pytorch::pytorch
  - pytorch::torchvision
  - pytorch::torchaudio
  - nvidia::cudatoolkit=11.3
  - numpy
  - scipy
  - scikit-learn
  - matplotlib
  - pillow
  - tqdm
  - joblib
  - visdom
  - jsonpatch
  - pip
  - pip:
    - torchsummary
    - opencv-python==4.1.1.26