win10台式机,带3060TI显卡。
win11笔记本,带ti1200显卡。
anaconda-python-torch-cuda
anaconda高版本可以建低版本的python环境。
版本:Anaconda3-2023.09-0-Windows-x86_64
安装地址改到D盘,安装完之后配置PATH环境变量。
D:\ProgramData\anaconda3
D:\ProgramData\anaconda3\Scripts
D:\ProgramData\anaconda3\Library\mingw-w64\bin
D:\ProgramData\anaconda3\Library\bin
本机win11设备先删除了原有python,最后没有换conda源。
有的教程提出需要卸载已有驱动重新安装,咨询认为不一定需要,先跳过。
更新完显卡驱动以后进Anaconda prompt的指令界面,输入nvidia-smi,可以看见自己显卡的相关信息。
首先看电脑显卡配置,桌面右键打开NVIDIA控制面板,选择帮助-系统信息-组件。可以查看可适配的最高版本的CUDA。示例的win10机为3060TI,可选择CUDA12.2以下版本,选择版本cuda_12.1.1_531.14_windows。
示例的win11设备最高适配12.0CUDA。
在CUDA官网下载适合版本,本机参考GPU深度学习环境搭建:Win11+CUDA 11.7+Pytorch1.12.1+Anaconda选择11.7.0版本
安装位置c盘未更改(C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.7),选择自定义安装,默认设置未改动。
下载之后安装cuDNN,发现nvcc -V看cuda信息显示
‘nvcc’ 不是内部或外部命令,也不是可运行的程序 或批处理文件。
参考http://t.csdnimg.cn/vbtc5:管理员cmd,检查CUDA安装无误,则是环境变量的问题,加入环境变量,cmd重新配置。
发现cmd中执行nvcc -v报错变化:
nvcc fatal : No input files specified; use option --help for more information
发现nvcc --version就没问题
C:\WINDOWS\system32>nvcc --version
nvcc: NVIDIA (R) Cuda compiler driver
Copyright (c) 2005-2023 NVIDIA Corporation
Built on Mon_Apr__3_17:36:15_Pacific_Daylight_Time_2023
Cuda compilation tools, release 12.1, V12.1.105
Build cuda_12.1.r12.1/compiler.32688072_0
C:\WINDOWS\system32>nvcc -v
nvcc fatal : No input files specified; use option --help for more information
重启anaconda prompt,执行nvcc -v不报错。
(base) C:\WINDOWS\system32>nvcc -V
nvcc: NVIDIA ® Cuda compiler driver
Copyright © 2005-2023 NVIDIA Corporation
Built on Mon_Apr__3_17:36:15_Pacific_Daylight_Time_2023
Cuda compilation tools, release 12.1, V12.1.105
Build cuda_12.1.r12.1/compiler.32688072_0
本机win10版本为:cudnn-windows-x86_64-8.9.5.29_cuda12-archive
本机win11选择版本8.7.0forcuda11
打开压缩包,将三个文件夹内所有文件复制到CUDA在C盘下的对应路径中。
在路径C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.7\extras\demo_suite中,用cmd运行bandwidthTest.exe和deviceQuery.exe,如果得到两个PASS就证明成功了。
官网选择社区版进行安装。配置python解释器。
打开Anaconda Prompt
直接用conda创建虚拟环境
conda create -n pytorch python=3.7
激活当前环境
conda activate pytorch
配置conda镜像源(win11本机并未配置镜像源)
conda config --set show_channel_urls yes
会在下面的目录中生成一个.condarc文件。打开该文件,将里面的内容替换
channels:
- http://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/pytorch/win-64/
- defaults
show_channel_urls: true
default_channels:
- http://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main
- http://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/r
- http://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/msys2
custom_channels:
conda-forge: https//mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
msys2: http://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
bioconda: http://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
menpo: http://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
pytorch: http://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
pytorch-lts: http://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
simpleitk: http://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
remote_read_timeout_secs: 1000.0
ssl_verify: false
运行 conda clean -i 清除索引缓存,保证用的是镜像站提供的索引。
在PyTorch官网选择合适的版本,torch和torchvision的版本和python版本、cuda版本都必须对应好,
CUDA 12.1
conda install pytorch2.1.0 torchvision0.16.0 torchaudio==2.1.0 pytorch-cuda=12.1 -c pytorch -c nvidia
python要求高于3.8低于3.11
复制最下方的代码,粘贴到环境(cmd or 虚拟环境?)中,如果不成功,尝试将-c pytorch去掉。-c pytorch后还会使用默认的conda镜像源而不是清华镜像源。
【win11,cuda11.7,使用命令:conda install pytorch torchvision torchaudio pytorch-cuda=11.7 -c pytorch -c nvidia】最终安装pytorch1.13.1如下:
大家如果想在自己电脑(具有NVIDIA显卡)上跑通代码,就选CUDA,如果不需要在自己电脑上跑(在服务器上跑)或者没有独立显卡,就选CPU。
此处我先选择挂着代理用pip跑,跑到一半报错:
ERROR: Exception:
Traceback (most recent call last):
File "D:\ProgramData\anaconda3\envs\pytorch\lib\site-packages\pip\_vendor\urllib3\response.py", line 438, in _error_catcher
yield
File "D:\ProgramData\anaconda3\envs\pytorch\lib\site-packages\pip\_vendor\urllib3\response.py", line 561, in read
data = self._fp_read(amt) if not fp_closed else b""
File "D:\ProgramData\anaconda3\envs\pytorch\lib\site-packages\pip\_vendor\urllib3\response.py", line 527, in _fp_read
return self._fp.read(amt) if amt is not None else self._fp.read()
File "D:\ProgramData\anaconda3\envs\pytorch\lib\site-packages\pip\_vendor\cachecontrol\filewrapper.py", line 98, in read
data: bytes = self.__fp.read(amt)
File "D:\ProgramData\anaconda3\envs\pytorch\lib\http\client.py", line 463, in read
n = self.readinto(b)
File "D:\ProgramData\anaconda3\envs\pytorch\lib\http\client.py", line 507, in readinto
n = self.fp.readinto(b)
File "D:\ProgramData\anaconda3\envs\pytorch\lib\socket.py", line 704, in readinto
return self._sock.recv_into(b)
File "D:\ProgramData\anaconda3\envs\pytorch\lib\ssl.py", line 1275, in recv_into
return self.read(nbytes, buffer)
File "D:\ProgramData\anaconda3\envs\pytorch\lib\ssl.py", line 1133, in read
return self._sslobj.read(len, buffer)
socket.timeout: The read operation timed out
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
改用conda
用conda activate pytorch进入虚拟环境,在终端输入python进入python界面。用下面的命令检测:
import torch
print(torch.__version__) #查看pytorch版本
print(torch.cuda.is_available()) #查看cuda是否可用 输出为True 或者False
点击右下角的python interpreter,选择Virtualenv Environment。Existing。
可以cmd用conda env list找到路径,选最后pytorch(虚拟环境名)下的python.exe
Windows深度学习环境的配置(从不会到学会!最全版!)
深度学习环境配置超详细教程【Anaconda+PyTorch(GPU版)+CUDA+cuDNN】
(入门深度学习)二、安装cuda、cudnn与pytorch(避雷版)