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设计】。

相关文章

Python元组及文件核心对象类型详解

元组 元组是不可变类型,以()表示,是任意对象的有序集合,同样是序列的一种,index和count方法分别是取元素,统计元素个数。 语法比如(2,3)就是一个元组。元组与列表如此类似,...

python之django母板页面的使用

其实就是利用{% block xxx %}   {% endblock %}的方式定义一个块,相当于占位。存放在某个html中,比如base.html 然后在需要实现...

python读取视频流提取视频帧的两种方法

本文实例为大家分享了python读取视频流提取视频帧的具体代码,供大家参考,具体内容如下 方法一:通过imageio库和skimage库 1. 安装环境: pip install ima...

Python中按值来获取指定的键

Python字典中的键是唯一的,但不同的键可以对应同样的值,比如说uid,可以是1001。id同样可以是1001。这样的话通过值来获取指定的键,就不止一个!而且也并不太好处理。这里同样提...

Python求正态分布曲线下面积实例

Python求正态分布曲线下面积实例

正态分布应用最广泛的连续概率分布,其特征是“钟”形曲线。这种分布的概率密度函数为: 其中,μ为均值,σ为标准差。 求正态分布曲线下面积有3σ原则: 正态曲线下,横轴区间(μ-σ,μ+...