Pytorch-GPU加速
1、什么是GPU加速计算
GPU,又称显卡、视觉处理器,是一种专门在个人电脑、工作站、游戏机和一些移动设备(如平板电脑、智能手机等)上图像运算工作的微处理器,与CPU类似,只不过GPU是专为执行复杂的数学和几何计算而设计的,这些计算是图形渲染所必需的。
随着人工智能的发展,如今的GPU已经不再局限于3D图形处理了。GPU 加速计算是指同时利用图形处理器 (GPU) 和 CPU,加快科学、分析、工程、消费和企业应用程序的运行速度。
2、在Pytorch使用GPU加速
在PyTorch中使用GPU和TensorFlow中不同,在TensorFlow如果不对设备进行指定时,TensorFlow检测到GPU就会把自动将数据与运算转移到GPU中。而PyTorch类似于MxNet,需要显性的指定数据和运算放在哪里执行,这样的操作比较自由,却也有些繁琐。因为如果哪一步忘记转换了就会运行出错。
在代码的表现形式:***.cuda()
(1)在数据集加载中,使用GPU加速,如下:
test_x = torch.unsqueeze(test_data.test_data, dim=1).type(torch.FloatTensor)[:2000].cuda()/255.
test_y = test_data.test_labels[:2000].cuda()
(2)对Tensor变量使用GPU加速,如下:
b_x = x.cuda()
b_y = y.cuda()
注:torch不同设备上的数据不能进行计算。指的是tensor。不包括numpy,list等。List和numpy可直接与tensor(无论在cpu还是gpu)进行计算。
(3)对搭建好的网络模型和损失函数使用GPU加速,如下:
cnn.cuda()
loss_f = loss_f.cuda()
注:在模型定义完后,直接使用model.cuda()将模型的所有参数转移到cuda()上。
注:GPU是用来执行张量运算的,因此需要放在GPU上的是输入数据以及模型参数,optimizer不需要放GPU上
参考链接
1.莫烦python
2.[开发技巧]·PyTorch如何使用GPU加速