现在Pytorch1.3.0已经发布了,根据官方说明,1.3.0支持的CUDA的版本有10.1还有9.2。
本地电脑环境
- 有GPU
- 安装CUDA 10.0
- Python 3.6.7
Torch安装的命令行
pip3 install torch===1.3.0 torchvision===0.4.1 -f https://download.pytorch.org/whl/torch_stable.html
如果Windows环境没有设置pip3的别名,用pip install即可。
遇到的问题
但是在安装了CUDA 10.0的电脑上,import torch会失败,报Could not load DLL之类的错误。
但是Linux的操作系统,貌似有支持CUDA 10.0的1.3.0版本可以下载。
Torch下载地址
因为本地电脑还需要运行Tensorflow 1.14以及Tensorflow 2.0,目前为止,这两个版本的Tensorflow依然需要CUDA10.0的支持,如果安装CUDA 10.1会报错。
所以就出现如下问题:
Torch 1.3.0 支持CUDA版本 10.1
Torch 1.2.0 支持CUDA版本 10.0
Tensorflow 1.14 & 2.0 支持CUDA版本 10.0
安装解决方案
我们退而求其次,安装Torch 1.2.0,即可兼顾Torch与Tensorflow共存。
安装包可以先下载到本地:
Torch1.2.0 For CUDA10.0 下载
TorchVision0.4.0 For CUDA10.0 下载
下载之后,直接通过:
pip install torch-1.2.0-cp36-cp36m-win_amd64.whl
pip install torchvision-0.4.0-cp36-cp36m-win_amd64.whl
这种形式进行安装即可。
使用Torch
下载Torch课件
GitHub上有为Torch定制的《动手学深度学习》,可以直接git clone下来学习。
测试GPU的notebook如下:
运行结果:
如图,GPU运行良好。
通过暴力方式释放GPU显存
我们通过jupyter notebook写神经网络相关代码,可能用着用着,就把显存占光了。
可以用nvidia-smi命令查看,该程序一般位于:C:\Program Files\NVIDIA Corporation\NVSMI
可见运行了两个Jupyter Notebook, 每个笔记里面的几行代码,就占了15%的显存。
如果用jupyter notebook,又没有运行其他神经网络训练进程,可以尝试用numba的cuda相关方法,释放当前进程的显存:
from numba import cuda
cuda.select_device(0)
cuda.close()
之前担心该命令过于暴力,会终止所有索引为0的GPU的运作,目前来看,只是将当前进程的GPU工作终止,从而释放相关的显存。