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 相关文章推荐
Django中使用group_by的方法
May 26 Python
详解Python中最难理解的点-装饰器
Apr 03 Python
Python实现Pig Latin小游戏实例代码
Feb 02 Python
Python中循环引用(import)失败的解决方法
Apr 22 Python
使用Python的Dataframe取两列时间值相差一年的所有行方法
Jul 10 Python
Django model反向关联名称的方法
Dec 15 Python
pandas.read_csv参数详解(小结)
Jun 21 Python
Python使用QQ邮箱发送邮件实例与QQ邮箱设置详解
Feb 18 Python
Python 3.10 的首个 PEP 诞生,内置类型 zip() 迎来新特性(推荐)
Jul 03 Python
python实现学生信息管理系统(精简版)
Nov 27 Python
如何在vscode中安装python库的方法步骤
Jan 06 Python
python中的class_static的@classmethod的巧妙用法
Jun 22 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
超人钢铁侠联手合作?美漫作家呼吁DC漫威合作联动以抵抗疫情
2020/04/09 欧美动漫
来自phpguru得Php Cache类源码
2010/04/15 PHP
php中cookie实现二级域名可访问操作的方法
2014/11/11 PHP
CentOS6.5 编译安装lnmp环境
2014/12/21 PHP
详解PHP处理密码的几种方式
2016/11/30 PHP
laravel实现Auth认证,登录、注册后的页面回跳方法
2019/09/30 PHP
js几个不错的函数 $$()
2006/10/09 Javascript
firefox插件Firebug的使用教程
2010/01/02 Javascript
jquery ajax abort()的使用方法
2010/10/28 Javascript
JS将光标聚焦在文本最后的实现代码
2014/03/28 Javascript
详谈JavaScript内存泄漏
2014/11/14 Javascript
node.js中的events.EventEmitter.listenerCount方法使用说明
2014/12/08 Javascript
jQuery zclip插件实现跨浏览器复制功能
2015/11/02 Javascript
Node.js中Request模块处理HTTP协议请求的基本使用教程
2016/03/31 Javascript
深入解析JavaScript中的立即执行函数
2016/05/21 Javascript
基于jQuery和hwSlider实现内容左右滑动切换效果附源码下载(一)
2016/06/22 Javascript
jQuery实现单击按钮遮罩弹出对话框效果(2)
2017/02/20 Javascript
实例学习JavaScript读取和写入cookie
2018/01/29 Javascript
Angular 利用路由跳转到指定页面的指定位置方法
2018/08/31 Javascript
详解Vue3中对VDOM的改进
2020/04/23 Javascript
使用原生JS实现滚轮翻页效果的示例代码
2020/05/31 Javascript
JavaScript实现答题评分功能页面
2020/06/24 Javascript
[36:20]完美世界DOTA2联赛PWL S3 access vs Rebirth 第一场 12.17
2020/12/18 DOTA
Python Mysql数据库操作 Perl操作Mysql数据库
2009/01/12 Python
python 写的一个爬虫程序源码
2016/02/28 Python
浅谈Python爬取网页的编码处理
2016/11/04 Python
Python生成器实现简单"生产者消费者"模型代码实例
2020/03/27 Python
Hotels.com加拿大:领先的在线住宿网站
2018/10/05 全球购物
Easy Spirit官网:美国休闲鞋履中的代表品牌
2019/04/12 全球购物
升职自荐信
2013/11/28 职场文书
《小山羊和小灰兔》教学反思
2014/02/19 职场文书
环保宣传标语
2014/06/12 职场文书
社区敬老月活动总结
2015/05/07 职场文书
2019年家电促销广告语集锦
2019/10/21 职场文书
用基于python的appium爬取b站直播消费记录
2021/04/17 Python
再次探讨go实现无限 buffer 的 channel方法
2021/06/13 Golang