JDR*_*no2 10 python conda pytorch
我在 Ubuntu 20.04 LTS 上安装了 CUDA 11.1(并且工作、使用PATH和LD_LIBRARY_PATH配置正确),并且我正在尝试定义一个可重用的 conda 环境(即在文件中environment.yml),以成功安装具有 CUDA 支持的 PyTorch。
但是,当我使用环境文件时,我收到一条消息,指出 Torch 未使用 CUDA 支持进行编译:
Python 3.8.10 | packaged by conda-forge | (default, May 11 2021, 07:01:05)
[GCC 9.3.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import torch
>>> device = torch.device("cuda:0")
>>> t = torch.tensor(device=device, data=[0,1,2,3])
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/home/jdr2160/anaconda3/envs/foo/lib/python3.8/site-packages/torch/cuda/__init__.py", line 166, in _lazy_init
raise AssertionError("Torch not compiled with CUDA enabled")
AssertionError: Torch not compiled with CUDA enabled
Run Code Online (Sandbox Code Playgroud)
我的environment.yml很简单:
name: foo
channels:
- conda-forge
- nvidia
- pytorch
dependencies:
- cudatoolkit=11.1
- python=3.8
- pytorch
Run Code Online (Sandbox Code Playgroud)
当我创建一个“空”python 3.8 环境并从命令行而不是从环境文件安装 Conda 包时,一切正常:
$ conda env create --name bar python=3.8
...
$ conda activate bar
$ conda install pytorch cudatoolkit=11.1 -c pytorch -c nvidia
...
$ python
Python 3.8.10 | packaged by conda-forge | (default, May 11 2021, 07:01:05)
[GCC 9.3.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import torch
>>> device = torch.device("cuda:0")
>>> t = torch.tensor(device=device, data=[0,1,2,3])
>>>
Run Code Online (Sandbox Code Playgroud)
谁能告诉我这是怎么回事吗?从环境文件安装 PyTorch 时, Conda 似乎没有看到cudatoolkit=11.1依赖关系,但我不知道如何修复它。
JDR*_*no2 14
发布这个问题几分钟后,我就找到了解决方案。事实证明,这与优先考虑 Conda 通道有关。解决方案(Anaconda 没有详细记录)是为cudatoolkit和pytorchin指定正确的通道environment.yml:
name: foo
channels:
- conda-forge
- nvidia
- pytorch
dependencies:
- nvidia::cudatoolkit=11.1
- python=3.8
- pytorch::pytorch
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
12377 次 |
| 最近记录: |