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实现类似ftp传输文件的网络程序示例
Apr 08 Python
Python装饰器的函数式编程详解
Feb 27 Python
理解生产者消费者模型及在Python编程中的运用实例
Jun 26 Python
python读取中文txt文本的方法
Apr 12 Python
在Python中append以及extend返回None的例子
Jul 20 Python
Pytorch实现各种2d卷积示例
Dec 30 Python
浅谈tensorflow中张量的提取值和赋值
Jan 19 Python
python实现简单飞行棋
Feb 06 Python
服务器端jupyter notebook映射到本地浏览器的操作
Apr 14 Python
Python Selenium截图功能实现代码
Apr 26 Python
详解利用python识别图片中的条码(pyzbar)及条码图片矫正和增强
Nov 17 Python
利用python+request通过接口实现人员通行记录上传功能
Jan 13 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
Zend Framework教程之连接数据库并执行增删查的方法(附demo源码下载)
2016/03/21 PHP
php+jQuery+Ajax简单实现页面异步刷新
2016/08/08 PHP
关于 Laravel Redis 多个进程同时取队列问题详解
2017/12/25 PHP
PHP学习笔记之session
2018/05/06 PHP
php实现将数组或对象写入到文件的方法小结【三种方法】
2020/04/22 PHP
JQUERY CHECKBOX全选,取消全选,反选方法三
2008/08/30 Javascript
jQuery中jqGrid分页实现代码
2011/11/04 Javascript
JS+ACTIVEX实现网页选择本地目录路径对话框
2013/03/18 Javascript
浅谈jQuery异步对象(XMLHttpRequest)
2014/11/17 Javascript
jquery实现点击页面计算点击次数
2015/01/23 Javascript
JavaScript实现对下拉列表值进行排序的方法
2015/07/15 Javascript
Javascript数组Array方法解读
2016/03/13 Javascript
一系列Bootstrap导航条使用方法分享
2016/04/29 Javascript
AngularJS equal比较对象实例详解
2016/09/14 Javascript
Vue.js学习示例分享
2017/02/05 Javascript
使用重写url机制实现验证码换一张功能
2017/08/01 Javascript
原生JS实现的自动轮播图功能详解
2018/12/28 Javascript
使用vue脚手架(vue-cli)搭建一个项目详解
2019/05/09 Javascript
详解vuex的简单todolist例子
2019/07/14 Javascript
Windows上使用virtualenv搭建Python+Flask开发环境
2016/06/07 Python
获取python的list中含有重复值的index方法
2018/06/27 Python
python+logging+yaml实现日志分割
2019/07/22 Python
PyTorch实现更新部分网络,其他不更新
2019/12/31 Python
python多线程实现代码(模拟银行服务操作流程)
2020/01/13 Python
python 计算概率密度、累计分布、逆函数的例子
2020/02/25 Python
简单了解python shutil模块原理及使用方法
2020/04/28 Python
解决Alexnet训练模型在每个epoch中准确率和loss都会一升一降问题
2020/06/17 Python
CSS3中的transform属性进行2D和3D变换的基本用法
2016/05/12 HTML / CSS
美国Randolph太阳镜官网:美国制造的飞行员太阳镜和射击眼镜
2018/06/15 全球购物
巴西补充剂和维生素购物网站:Natue
2019/06/17 全球购物
幼儿园实习自我鉴定
2013/12/15 职场文书
“学雷锋活动月”总结
2014/03/09 职场文书
我的祖国演讲稿
2014/05/04 职场文书
小学教师学习党的群众路线教育实践活动心得体会
2014/10/31 职场文书
运动会加油稿50字
2015/07/21 职场文书
2019年怎样写好导游词?
2019/07/02 职场文书