之前CPU版的PyTorch安装的很顺利,最近在安装GPU版的PyTorch,遇到了很多麻烦,不过最终还是搞好了,在这里记录一下,以便以后再次用到。这里推荐使用离线安装的方法。
写在最前面:
设置多环境,在每个环境下分别安装相应的Python和PyTorch版本,互不污染,方法如下:
#创建新环境
conda create --name pytorch-gpu python=3.7
#激活环境
activate pytorch-gpu
上面第一个命令用于创建一个新的环境,并安装一个指定版本的python,–name后面的pytorch-gpu就是新的环境名字,任意选取。python=3.7就是指定安装的python版本。输入这个命令后,会在线安装3.7.x版本的python。
安装后之后,输入第二个命令,激活当前环境,然后在这个新的环境下安装PyTorch,详细的步骤见下面即可。
第一步:
首先查看自己电脑上英伟达GPU的cuda版本,这里给出一个参考链接:查看cuda版本第二步:
进入PyTorch官网(因为我用的是比较旧的cuda版本,所以进入的是previous-versions):https://pytorch.org/get-started/previous-versions/
可以看到:
用思维导图表示如下:
这里解释一下在线安装和离线安装(非常推荐):
- 在线安装:使用相应的命令,然后利用网络下载并安装。但是由于网络传输问题,网速会非常慢,而且有时候会出现丢包。
- 离线安装:先下载相应的文件,然后再手动安装。
所以看到上面的截图中,Conda方式下,都是给出相应的命令,而Wheel方式下,给出的是需要下载的文件的网址(如上图框出的网址)。
第三步:
我这里是在Windows下安装1.0.0版本,cuda 8.0,所以进入的网址是:
根据自己的操作系统,下载对应的.whl文件,注意一定要下载的是torch开头的.whl文件,在页面的末端找。
第四步:
下载好了之后,在.whl文件所在的文件夹中打开命令行(cmd),执行离线安装命令,以上面的文件为例:
pip install torch-1.0.0-cp37-cp37m-win_amd64.whl
然后等待安装好了即可。
第五步:测试
(1)命令行下检查
(base) PS C:\Users\chenxuqi> conda deactivate
PS C:\Users\chenxuqi> conda activate ssd
(ssd) PS C:\Users\chenxuqi> python
Python 3.6.12 |Anaconda, Inc.| (default, Sep 9 2020, 00:29:25) [MSC v.1916 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> import torch
>>> print(torch.__version__)
1.0.0
>>> print(torch.cuda.is_available())
True
分别返回对应的版本号和True表示安装成功。
如果返回False,再在PyCharm中运行一下下面的代码,会有相应的报错信息,再根据报错信息排查错误,我就是这么解决的!!!
(2)执行GPU代码
import time
import torch
for i in range(1,10):
start = time.time()
a = torch.FloatTensor(i*100,1000,1000)
a = a.cuda() #a = a
a = torch.matmul(a,a)
end = time.time() - start
print(end)
运行结果:
我第一次运行结果提示我显卡驱动程序太旧,需要更新,然后我就去英伟达官网(报错信息给出了下载网址)下载了驱动程序,并安装,就可以了,第二次结果如下:
PS C:\Users\chenxuqi\Desktop\新建文件夹> & 'D:\Anaconda3\envs\ssd\python.exe' 'c:\Users\chenxuqi\.vscode\extensions\ms-python.python-2020.10.332292344\pythonFiles\lib\python\debugpy\launcher' '50571' '--' 'c:\Users\chenxuqi\Desktop\新建文件夹\testGPU.py'
3.6260359287261963
0.6305170059204102
0.9055967330932617
1.3199987411499023
1.5979139804840088
2.0483360290527344
THCudaCheck FAIL file=c:\programdata\miniconda3\conda-bld\pytorch_1524549877902\work\aten\src\thc\generic/THCStorage.cu line=58 error=2 : out of memory
Traceback (most recent call last):
File "c:\Users\chenxuqi\Desktop\新建文件夹\testGPU.py", line 10, in <module>
a = torch.matmul(a,a)
RuntimeError: cuda runtime error (2) : out of memory at c:\programdata\miniconda3\conda-bld\pytorch_1524549877902\work\aten\src\thc\generic/THCStorage.cu:58
PS C:\Users\chenxuqi\Desktop\新建文件夹> conda activate ssd
PS C:\Users\chenxuqi\Desktop\新建文件夹>
注意,这里显存太小,溢出了…但是安装是成功的!!!
说明:安装gpu版本时候可以不安装cuda和cudnn,但是一定要安装显卡驱动,因为显卡驱动自带的cuda向下兼容,而且torch相比tensorflow有个好处是安装后会安装cudatookiti也就是cuda工具箱,不再需要我们去麻烦的安装这些东西。
至此,终于把GPU版本的PyTorch安装好了。另外,每个人遇到的问题不同,这里只记录了我自己遇到的问题。