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中定义结构体的方法
Mar 04 Python
Python自动调用IE打开某个网站的方法
Jun 03 Python
Python实现快速排序算法及去重的快速排序的简单示例
Jun 26 Python
python3 模拟登录v2ex实例讲解
Jul 13 Python
Pycharm在创建py文件时,自动添加文件头注释的实例
May 07 Python
利用Python如何实现数据驱动的接口自动化测试
May 11 Python
浅谈Django中的数据库模型类-models.py(一对一的关系)
May 30 Python
Django错误:TypeError at / 'bool' object is not callable解决
Aug 16 Python
基于python修改srt字幕的时间轴
Feb 03 Python
Python视频编辑库MoviePy的使用
Apr 01 Python
基于Python测试程序是否有错误
May 16 Python
解决Pycharm 中遇到Unresolved reference 'sklearn'的问题
Jul 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
PHP实现多条件查询实例代码
2010/07/17 PHP
PHP中全面阻止SQL注入式攻击分析小结
2012/01/30 PHP
php四种基础算法代码实例
2013/10/29 PHP
PHP获取mysql数据表的字段名称和详细信息的方法
2014/09/27 PHP
PHP使用mysql_fetch_row查询获得数据行列表的方法
2015/03/18 PHP
mac系统下为 php 添加 pcntl 扩展
2016/08/28 PHP
php实现表单提交上传文件功能
2018/05/28 PHP
jquery中文乱码的多种解决方法
2013/06/21 Javascript
JQuery表格内容过滤的实现方法
2013/07/05 Javascript
jquery获取复选框被选中的值
2014/03/22 Javascript
javascript函数式编程程序员的工具集
2015/10/11 Javascript
Bootstrap多级导航栏(级联导航)的实现代码
2016/03/08 Javascript
jQuery中设置form表单中action值的实现方法
2016/05/25 Javascript
js滚轮事件兼容性问题需要注意哪些
2016/11/15 Javascript
Angular的自定义指令以及实例
2016/12/26 Javascript
自适应布局meta标签中viewport、content、width、initial-scale、minimum-scale、maximum-scale总结
2017/08/18 Javascript
学习React中ref的两个demo示例
2018/08/14 Javascript
vue组件定义,全局、局部组件,配合模板及动态组件功能示例
2019/03/19 Javascript
Nodejs中使用puppeteer控制浏览器中视频播放功能
2019/08/26 NodeJs
解决新建一个vue项目过程中遇到的问题
2020/10/22 Javascript
小结Python用fork来创建子进程注意事项
2014/07/03 Python
python根据开头和结尾字符串获取中间字符串的方法
2015/03/26 Python
Python实现学生成绩管理系统
2020/04/05 Python
Pycharm无法打开双击没反应的问题及解决方案
2020/08/17 Python
CSS3常用的几种颜色渐变模式总结
2016/11/18 HTML / CSS
详解CSS 3 中的 calc() 方法
2018/01/12 HTML / CSS
HTML5 Canvas draw方法制作动画效果示例
2013/07/11 HTML / CSS
阿迪达斯俄罗斯官方商城:adidas俄罗斯
2017/03/08 全球购物
东芝官网商城:还原日式美学,打造美好生活
2018/12/27 全球购物
澳大利亚设计的优质鞋类和适合澳大利亚生活方式的服装:Rivers
2019/04/23 全球购物
澳大利亚手袋、珠宝和在线时尚精品店:The Way
2019/12/21 全球购物
门卫岗位职责
2013/11/15 职场文书
英语自荐信常用语句
2013/12/13 职场文书
养殖人员的创业计划书范文
2013/12/26 职场文书
公司财务部岗位职责
2015/04/14 职场文书
python中 .npy文件的读写操作实例
2022/04/14 Python