pytorch多GPU并行运算的实现

yipeiwu_com6年前Python基础

Pytorch多GPU运行

设置可用GPU环境变量。例如,使用0号和1号GPU'

os.environ["CUDA_VISIBLE_DEVICES"] = '0,1'

设置模型参数放置到多个GPU上。在pytorch1.0之后的版本中,多GPU运行变得十分方便,先将模型的参数设置并行

    if torch.cuda.device_count() > 1:
      print("Let's use", torch.cuda.device_count(), "GPUs!")
      model = nn.DataParallel(model)

将模型参数设置使用GPU运行

    if torch.cuda.is_available():
      model.cuda()

踩坑记录

在训练中,需要使用验证集/测试集对目前的准确率进行测试,验证集/测试集的加载也会占用部分显存,所以在训练开始时,不要将所有显存都几乎占满,稍微留一些显存给训练过程中的测试环节

pytorch并行后,假设batchsize设置为64,表示每张并行使用的GPU都使用batchsize=64来计算(单张卡使用时,使用batchsize=64比较合适时,多张卡并行时,batchsize仍为64比较合适,而不是64*并行卡数)。

参考

https://www.zhihu.com/question/67726969

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持【听图阁-专注于Python设计】。

相关文章

flask session组件的使用示例

一、简介 flask中session组件可分为内置的session组件还有第三方flask-session组件,内置的session组件功能单一,而第三方的flask-sessoin可...

使用Pytorch来拟合函数方式

其实各大深度学习框架背后的原理都可以理解为拟合一个参数数量特别庞大的函数,所以各框架都能用来拟合任意函数,Pytorch也能。 在这篇博客中,就以拟合y = ax + b为例(a和b为需...

解决Mac下首次安装pycharm无project interpreter的问题

Pycharm本身并不带编译器,所以第一次用需要自己下载编译器插件。 1、首先去 https://www.python.org/downloads/ 这个网址去下载对应的python版本...

从零学python系列之新版本导入httplib模块报ImportError解决方案

之前用Python 2.7版本的httplib做接口测试时,运行代码都是正常的, 最近开始用Python 3.3之后,再去看以前的代码,发现import httplib出现错误:Unre...

python队列原理及实现方法示例

本文实例讲述了python队列原理及实现方法。分享给大家供大家参考,具体如下: 队列(queue)是只允许在一端进行插入操作,而在另一端进行删除操作的线性表。 队列是一种先进先出的(Fi...