pytorch 使用单个GPU与多个GPU进行训练与测试的方法


Posted in Python onAugust 19, 2019

如下所示:

device = torch.device("cuda:0" if torch.cuda.is_available() else "cpu")#第一行代码
model.to(device)#第二行代码

首先是上面两行代码放在读取数据之前。

mytensor = my_tensor.to(device)#第三行代码

然后是第三行代码。这句代码的意思是将所有最开始读取数据时的tersor变量copy一份到device所指定的GPU上去,之后的运算都在GPU上进行。需要注意的是这句话并不像前面的两行代码一样只需要写一遍,第三行代码需要写的次数就等于需要保存到GPU上的tensor变量个数;一般情况下这些tensor变量都是最开始读取数据时的tensor变量,后面所衍生的变量自然也都在GPU之上。

以上是使用单个GPU的情况。当你拥有多个GPU时,要想使用多个GPU进行训练和测试,需要在第一二行代码之间插上下面这样一个判断语句,其余的写法也都是一样的。

if torch.cuda.device_count() > 1:
 model = nn.DataParallel(model)

使用多个GPU的原理就是通过上面这句代码将model在每个GPU上分别保存一份,然后对model的输入tensor进行自动的分割,每个GPU计算tensor的一部分,这样就能实现计算量的平均分配。在每个model计算完成之后,DataParallel将这些结果进行收集和融合,之后再将结果返回。

以上这篇pytorch 使用单个GPU与多个GPU进行训练与测试的方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python中使用异常处理来判断运行的操作系统平台方法
Jan 22 Python
Python的Django中django-userena组件的简单使用教程
May 30 Python
python发送邮件脚本
May 22 Python
Python简单I/O操作示例
Mar 18 Python
django解决订单并发问题【推荐】
Jul 31 Python
Django框架 querySet功能解析
Sep 04 Python
Python 余弦相似度与皮尔逊相关系数 计算实例
Dec 23 Python
基于Tensorflow:CPU性能分析
Feb 10 Python
python logging设置level失败的解决方法
Feb 19 Python
Python获取对象属性的几种方式小结
Mar 12 Python
Python-openCV开运算实例
Jul 05 Python
bat批处理之字符串操作的实现
Mar 16 Python
在pytorch中为Module和Tensor指定GPU的例子
Aug 19 #Python
pytorch使用指定GPU训练的实例
Aug 19 #Python
关于pytorch多GPU训练实例与性能对比分析
Aug 19 #Python
pytorch 更改预训练模型网络结构的方法
Aug 19 #Python
pytorch打印网络结构的实例
Aug 19 #Python
pytorch索引查找 index_select的例子
Aug 18 #Python
浅谈Pytorch中的torch.gather函数的含义
Aug 18 #Python
You might like
一个简单的PHP投票程序源码
2007/03/11 PHP
Laravel框架生命周期与原理分析
2018/06/12 PHP
Laravel实现搜索的时候分页并携带参数
2019/10/15 PHP
JavaScript获取onclick、onchange等事件值的代码
2013/07/22 Javascript
javascript页面加载完执行事件代码
2014/02/11 Javascript
javascript中attribute和property的区别详解
2014/06/05 Javascript
jQuery实现鼠标悬停显示提示信息窗口的方法
2015/04/30 Javascript
JavaScript获取表格(table)当前行的值、删除行、增加行
2015/07/03 Javascript
Javascript基础知识盲点总结之函数
2016/05/15 Javascript
Bootstrap表单控件使用方法详解
2017/01/11 Javascript
JavaScript中值类型和引用类型的区别
2017/02/23 Javascript
angularjs+bootstrap菜单的使用示例代码
2017/03/07 Javascript
Vue使用枚举类型实现HTML下拉框步骤详解
2018/02/05 Javascript
JS浮点数运算结果不精确的Bug解决
2019/08/01 Javascript
[43:58]DOTA2上海特级锦标赛C组败者赛 Newbee VS Archon第二局
2016/02/27 DOTA
[10:53]2018DOTA2国际邀请赛寻真——EG
2018/08/11 DOTA
python获取android设备的GPS信息脚本分享
2015/03/06 Python
Python中返回字典键的值的values()方法使用
2015/05/22 Python
python enumerate函数的使用方法总结
2017/11/15 Python
Python数据可视化正态分布简单分析及实现代码
2017/12/04 Python
python中利用zfill方法自动给数字前面补0
2018/04/10 Python
python2和python3的输入和输出区别介绍
2018/11/20 Python
keras.utils.to_categorical和one hot格式解析
2020/07/02 Python
python怎么对数字进行过滤
2020/07/05 Python
python 实现图片修复(可用于去水印)
2020/11/19 Python
利用CSS3实现自定义滚动条代码分享
2016/08/18 HTML / CSS
详解HTML5中的元素与元素
2015/08/17 HTML / CSS
巧克力领导品牌瑞士莲美国官网:Lindt Chocolate美国
2016/08/25 全球购物
“学雷锋活动月”总结
2014/03/09 职场文书
社区党务公开实施方案
2014/03/18 职场文书
2014年药店工作总结
2014/11/20 职场文书
于丹论语心得观后感
2015/06/15 职场文书
2016干部作风整顿心得体会
2016/01/22 职场文书
2019自荐信范文集锦!
2019/07/03 职场文书
Nginx优化服务之网页压缩的实现方法
2021/03/31 Servers
详解JavaScript的计时器和按钮效果设置
2022/02/18 Javascript