写在前面
之前模型的识别率一直上不去,所以我一直在看我的代码和公式,真的找不出问题来,于是我发现了新手从头开始写模型的坏处,那就是调试起来实在是太麻烦了,远没有带框架的程序调试起来方便.
在多种模型框架之间徘徊了一段时间之后,我最终选择了pytorch,因为他能兼容numpy,使用起来也较为简单,那么这篇文章我就主要分享pytorch环境的安装以及联合GPU的调试.
pytorch环境安装
我是用conda安装的pytorch,命令如下:
conda install torch
conda install pytorch
conda install torchvision
但是我在安装的时候终端报了这个错误:
仔细看这个报错的信息,看起来是缺少了cudatoolkit包,于是我去查找了相关信息搞明白了GPU,cuda,GPU驱动之间的关系,如果没有GPU驱动的话系统是识别不到GPU的,cuda则是GPU的运行框架,那么pytorch是基于cuda实现的GPU加速的,所以在安装上面几个工具包之前需要安装cudatoolkit.
安装完成cudatoolkit之后再安装其他几个pytorch包即可成功.
至此基本的pytorch环境安装就完成了,接下来就开始环境的测试了.
pytorch环境测试
我们先来测试一下pytorch环境,我用的是jupyter notebook,首先导入必要的工具包:
from __future__ import print_function
import torch
import numpy as np
import time
然后测试本地GPU的环境的:
ngpu= 1
device = torch.device("cuda:0" if (torch.cuda.is_available() and ngpu > 0) else "cpu")
print("driver:",device)
print("GPU_beta: ",torch.cuda.get_device_name(0))
可以得到如下图所示的结果:
接下来就是测试pytorch调用GPU相关信息了,测试程序如下:
is_cuda = torch.cuda.is_available()
print(if_cuda)
gpu_cnt = torch.cuda.device_count()
print("gpu_cnt=",gpu_cnt)
tensor = torch.rand((100,100))
time0 = time.time()
tensor_gpu = tensor.to("cuda:0")
print("time: %.2f, tensor_gpu0 %s" % (time.time()-time0, tensor_gpu.device))
time0 = time.time()
tensor_gpu = tensor.to("cuda:1")
print("time: %.2f, tensor_gpu1 %s" % (time.time()-time0, tensor_gpu.device))
print(tensor_gpu.is_cuda)
tensor_cpu = tensor_gpu.to("cpu")
print(tensor_cpu.device)
得到如下结果:
|