kno*_*ker 9 python anaconda conda pytorch
我创建了一个 Python 3.7 conda 虚拟环境并使用此命令安装了以下软件包:
conda install pytorch torchvision torchaudio cudatoolkit=11.3 matplotlib scipy opencv -c pytorch
它们安装得很好,但是当我运行我的程序时,出现以下错误,表明未找到启用 CUDA 的设备:
raise RuntimeError('Attempting to deserialize object on a CUDA '
RuntimeError: Attempting to deserialize object on a CUDA device but torch.cuda.is_available() is False. If you are running on a CPU-only machine, please use torch.load with map_location=torch.device('cpu') to map your storages to the CPU.
Run Code Online (Sandbox Code Playgroud)
我有一个 NVIDIA RTX 3060ti GPU,据我所知,它启用了 cuda,但每当我进入 conda 环境中的 Python 交互式 shell 时,我都会在False评估时得到torch.cuda.is_available()建议,可能 CUDA 未正确安装或未找到。
当我执行 aconda list查看我已安装的软件包时:
# packages in environment at /home/user/anaconda3/envs/FGVC:
#
# Name Version Build Channel
_libgcc_mutex 0.1 main
_openmp_mutex 4.5 1_gnu
blas 1.0 mkl
brotli 1.0.9 he6710b0_2
bzip2 1.0.8 h7b6447c_0
ca-certificates 2021.10.26 h06a4308_2
cairo 1.16.0 hf32fb01_1
certifi 2021.10.8 py37h06a4308_2
cpuonly 1.0 0 pytorch
cudatoolkit 11.3.1 h2bc3f7f_2
cycler 0.11.0 pyhd3eb1b0_0
dbus 1.13.18 hb2f20db_0
expat 2.4.4 h295c915_0
ffmpeg 4.0 hcdf2ecd_0
fontconfig 2.13.1 h6c09931_0
fonttools 4.25.0 pyhd3eb1b0_0
freeglut 3.0.0 hf484d3e_5
freetype 2.11.0 h70c0345_0
giflib 5.2.1 h7b6447c_0
glib 2.69.1 h4ff587b_1
graphite2 1.3.14 h23475e2_0
gst-plugins-base 1.14.0 h8213a91_2
gstreamer 1.14.0 h28cd5cc_2
harfbuzz 1.8.8 hffaf4a1_0
hdf5 1.10.2 hba1933b_1
icu 58.2 he6710b0_3
imageio 2.16.0 pypi_0 pypi
imageio-ffmpeg 0.4.5 pypi_0 pypi
imutils 0.5.4 pypi_0 pypi
intel-openmp 2021.4.0 h06a4308_3561
jasper 2.0.14 hd8c5072_2
jpeg 9d h7f8727e_0
kiwisolver 1.3.2 py37h295c915_0
lcms2 2.12 h3be6417_0
ld_impl_linux-64 2.35.1 h7274673_9
libffi 3.3 he6710b0_2
libgcc-ng 9.3.0 h5101ec6_17
libgfortran-ng 7.5.0 ha8ba4b0_17
libgfortran4 7.5.0 ha8ba4b0_17
libglu 9.0.0 hf484d3e_1
libgomp 9.3.0 h5101ec6_17
libopencv 3.4.2 hb342d67_1
libopus 1.3.1 h7b6447c_0
libpng 1.6.37 hbc83047_0
libstdcxx-ng 9.3.0 hd4cf53a_17
libtiff 4.2.0 h85742a9_0
libuuid 1.0.3 h7f8727e_2
libuv 1.40.0 h7b6447c_0
libvpx 1.7.0 h439df22_0
libwebp 1.2.0 h89dd481_0
libwebp-base 1.2.0 h27cfd23_0
libxcb 1.14 h7b6447c_0
libxml2 2.9.12 h03d6c58_0
lz4-c 1.9.3 h295c915_1
matplotlib 3.5.0 py37h06a4308_0
matplotlib-base 3.5.0 py37h3ed280b_0
mkl 2021.4.0 h06a4308_640
mkl-service 2.4.0 py37h7f8727e_0
mkl_fft 1.3.1 py37hd3c417c_0
mkl_random 1.2.2 py37h51133e4_0
munkres 1.1.4 py_0
ncurses 6.3 h7f8727e_2
networkx 2.6.3 pypi_0 pypi
ninja 1.10.2 py37hd09550d_3
numpy 1.21.2 py37h20f2e39_0
numpy-base 1.21.2 py37h79a1101_0
olefile 0.46 py37_0
opencv 3.4.2 py37h6fd60c2_1
openssl 1.1.1m h7f8727e_0
packaging 21.3 pyhd3eb1b0_0
pcre 8.45 h295c915_0
pillow 8.4.0 py37h5aabda8_0
pip 21.2.2 py37h06a4308_0
pixman 0.40.0 h7f8727e_1
py-opencv 3.4.2 py37hb342d67_1
pyparsing 3.0.4 pyhd3eb1b0_0
pyqt 5.9.2 py37h05f1152_2
python 3.7.11 h12debd9_0
python-dateutil 2.8.2 pyhd3eb1b0_0
pytorch 1.7.0 py3.7_cpu_0 [cpuonly] pytorch
pywavelets 1.2.0 pypi_0 pypi
qt 5.9.7 h5867ecd_1
readline 8.1.2 h7f8727e_1
scikit-image 0.19.1 pypi_0 pypi
scipy 1.7.3 py37hc147768_0
setuptools 58.0.4 py37h06a4308_0
sip 4.19.8 py37hf484d3e_0
six 1.16.0 pyhd3eb1b0_1
sqlite 3.37.2 hc218d9a_0
tifffile 2021.11.2 pypi_0 pypi
tk 8.6.11 h1ccaba5_0
torchaudio 0.7.0 py37 pytorch
torchvision 0.8.1 py37_cpu [cpuonly] pytorch
tornado 6.1 py37h27cfd23_0
typing_extensions 3.10.0.2 pyh06a4308_0
wheel 0.37.1 pyhd3eb1b0_0
xz 5.2.5 h7b6447c_0
zlib 1.2.11 h7f8727e_4
zstd 1.4.9 haebb681_0
Run Code Online (Sandbox Code Playgroud)
似乎有很多东西在说cpuonly,但我不确定它们是如何产生的,因为我没有安装它们。
我运行的是 Ubuntu 版本 20.04.4 LTS
nik*_*eee 13
您可以要求 conda 安装所需软件包的特定版本。pytorch支持 cuda 的构建在其构建字符串中的某处有该短语cuda,因此您可以要求conda匹配该规范。有关更多信息,请查看 conda 的包匹配规范。
$ conda install pytorch=*=*cuda* cudatoolkit -c pytorch
Run Code Online (Sandbox Code Playgroud)
Qin*_*ang 12
当我尝试使用 CUDA 11.1 安装 Pytorch 时,我遇到了类似的问题。尽管anaconda网站明确列出了带有 CUDA 11.1 的 Pytorch 预构建版本可用,但 conda 仍然尝试安装该cpu-only版本。经过多次尝试和失败,我意识到软件包torchvision torchaudio是问题的根本原因。因此,仅安装 PyTorch 即可解决此问题:
conda install pytorch cudatoolkit=11.1 -c pytorch -c nvidia
Run Code Online (Sandbox Code Playgroud)
我相信我犯了以下错误,导致我无法使用 Cuda。尽管安装了 cuda,但该nvcc --version命令表明未安装 Cuda,因此我所做的就是使用此答案将其添加到路径中。
尽管这样做并删除了我原来的 conda 环境并conda install pytorch torchvision torchaudio cudatoolkit=11.3 matplotlib scipy opencv -c pytorch再次使用该命令,但False在评估torch.cuda.is_available().
然后我使用此命令conda install pytorch torchvision torchaudio cudatoolkit=10.2 matplotlib scipy opencv -c pytorch将 cudatoolkit 从版本 11.3 更改为版本 10.2,然后它起作用了!
现在torch.cuda.is_available()评估为True
不幸的是,Cuda 版本 10.2 与我的 RTX 3060 GPU 不兼容(我假设它与所有 RTX 3000 卡不兼容)。Cuda 版本 11.0 给了我错误,而 Cuda 版本 11.3 由于某种原因仅安装仅 CPU 版本。不过 Cuda 11.1 版本运行得很好!
这是我用来让它最终工作的命令:
pip install torch==1.9.0+cu111 torchvision==0.10.0+cu111 torchaudio==0.9.0 -f https://download.pytorch.org/whl/torch_stable.html
| 归档时间: |
|
| 查看次数: |
23844 次 |
| 最近记录: |