PyTorch安装随笔

现在Pytorch1.3.0已经发布了,根据官方说明,1.3.0支持的CUDA的版本有10.1还有9.2。

本地电脑环境

  1. 有GPU
  2. 安装CUDA 10.0
  3. 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即可。

2019-10-31 15_15_29-Start Locally _ PyTorch.png

遇到的问题

但是在安装了CUDA 10.0的电脑上,import torch会失败,报Could not load DLL之类的错误。
但是Linux的操作系统,貌似有支持CUDA 10.0的1.3.0版本可以下载。
Torch下载地址

2019-10-31 15_11_05-.png

因为本地电脑还需要运行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下来学习。

2019-10-31 15_33_15-ShusenTang_Dive-into-DL-PyTorch.png

测试GPU的notebook如下:
2019-10-31 15_35_58.png

运行结果:
2019-10-31 15_35_38-Program Manager.png

如图,GPU运行良好。

通过暴力方式释放GPU显存

我们通过jupyter notebook写神经网络相关代码,可能用着用着,就把显存占光了。
可以用nvidia-smi命令查看,该程序一般位于:C:\Program Files\NVIDIA Corporation\NVSMI


2019-10-31 15_39_02-Start.png

可见运行了两个Jupyter Notebook, 每个笔记里面的几行代码,就占了15%的显存。
如果用jupyter notebook,又没有运行其他神经网络训练进程,可以尝试用numba的cuda相关方法,释放当前进程的显存:

from numba import cuda
cuda.select_device(0)
cuda.close()
2019-10-31 15_42_45-Start.png

之前担心该命令过于暴力,会终止所有索引为0的GPU的运作,目前来看,只是将当前进程的GPU工作终止,从而释放相关的显存。

推荐阅读更多精彩内容