PyTorch-GPU环境配置
记录一下我配置PyTorch-GPU的过程。因为我之前换过一次电脑,导致我这里还要再重新配置一下PyTorch。然而我之前配置的时候又没有做好记录,这次配置又要百度各种教程。😂吸取之前的教训,我现在要记录下我自己的配置过程,省的之后再安装还要百度了23333333
创建conda虚拟环境
我通过如下命令创建了虚拟环境:
1 | conda create -n pygpu pip python=3.7 |
在这里我发现老是无法创建成功,我感觉可能是源的原因。于是我参考 conda源配置 这篇博客,使用如下命令配置中科大源,解决了问题。
1 | conda config --add channels https://mirrors.ustc.edu.cn/anaconda/pkgs/main/ |
配置CUDA环境
因为我这台电脑之前已经安装过CUDA了,这次就只检查一下是否配置成功了。而关于如何安装CUDA,可以参考 Win10系统安装CUDA10.0和cuDNN 这篇博客。
命令行测试
打开cmd命令行窗口,通过如下命令检查cuda是否安装:
通过如下命令检查cuda是否安装:
1 | nvcc -V |
输出了
nvcc: NVIDIA (R) Cuda compiler driver
Copyright (c) 2005-2019 NVIDIA Corporation
Built on Fri_Feb__8_19:08:26_Pacific_Standard_Time_2019
Cuda compilation tools, release 10.1, V10.1.105
这表明我已经安装好了cuda10.1的版本。
编译测试文件
打开C:\ProgramData\NVIDIA Corporation\CUDA Samples\v10.1
路径下的Samples_vs2017.sln
在“解决方案资源管理器”中找到1_Utilities,右键点击“生成”
这时VS2017在编译过程中产生“找不到Windows SDK版本”的错误:
解决方法:在解决方案中右键选择“重定解决方案目标”
点击确定即可通过编译。
验证deviceQuery.exe和bandwidthTest.exe
cmd窗口进入如下路径
1 | cd C:\ProgramData\NVIDIA Corporation\CUDA Samples\v10.1\bin\win64\Release |
分别输入deviceQuery
,bandwidthTest
并运行,Result = PASS
则说明通过,反之,Result = Fail
则需要重新安装。
配置CUDA环境变量
- 确认系统环境变量中:CUDA_PATH和CUDA_PATH_V10.0已经存在
- 添加:
1 | CUDA_SDK_PATH = C:\ProgramData\NVIDIA Corporation\CUDA Samples\v10.1 |
在cmd窗口查看环境变量配置情况,输入
set cuda
,输出如下:
安装cuDNN
打开 cuDNN网页
注意在下载之前需要完成开发者注册(就是注册一个账号)
选择与CUDA匹配的cuDNN版本进行下载
下载之后是个压缩包文件,解压缩:
将CUDA\bin
、CUDA\include
、CUDA\lib
中的内容拷贝到相应的C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v10.1
文件路径下即可。
这里我参照 Win10系统安装CUDA10.0和cuDNN 这篇博客中加入了系统环境变量如下:
安装pytorch
在 Pytorch官网 中找到安装的命令。
我这里是直接使用pip安装的。
使用如下命令
1 | pip install torch===1.4.0 torchvision===0.5.0 -f https://download.pytorch.org/whl/torch_stable.html |
验证是否安装成功
为了确保PyTorch安装成功,我们需要运行简单的样例代码测试,例如打印出随机生成的张量矩阵,以及gpu是否可以使用。
首先在命令行输入python,进入python的解释器,输入以下语句
1 | import torch |
输出如下:
tensor([[0.9943, 0.2830, 0.5508],
[0.0765, 0.6474, 0.0059],
[0.7241, 0.1868, 0.5398],
[0.3217, 0.4664, 0.4242],
[0.3351, 0.2482, 0.7371]])
说明PyTorch安装成功。
接下来再输入
1 | torch.cuda.is_available() |
输出为True
即证明支持GPU了。