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运行效率的方法之间的对比
Apr 03 Python
python获取外网ip地址的方法总结
Jul 02 Python
Python通过正则表达式选取callback的方法
Jul 18 Python
python使用正则表达式替换匹配成功的组
Nov 17 Python
Python爬取附近餐馆信息代码示例
Dec 09 Python
python特性语法之遍历、公共方法、引用
Aug 08 Python
谈一谈基于python的面向对象编程基础
May 21 Python
pandas 层次化索引的实现方法
Jul 06 Python
Python2与Python3的区别点整理
Dec 12 Python
使用Keras建立模型并训练等一系列操作方式
Jul 02 Python
python小技巧——将变量保存在本地及读取
Nov 13 Python
利用Python将多张图片合成视频的实现
Nov 23 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
Yii使用smsto短信接口的函数demo示例
2016/07/13 PHP
PHP 等比例缩放图片详解及实例代码
2016/09/18 PHP
Laravel5.4框架使用socialite实现github登录的方法
2019/03/20 PHP
Jquery 表单取值赋值的一些基本操作
2009/10/11 Javascript
在js中单选框和复选框获取值的方式
2009/11/06 Javascript
javascript获取网页中指定节点的父节点、子节点的方法小结
2013/04/24 Javascript
Javascript 按位与运算符 (&)使用介绍
2014/02/04 Javascript
jquery.uploadify插件在chrome浏览器频繁崩溃解决方法
2015/03/01 Javascript
jquery中checkbox使用方法简单实例演示
2015/11/24 Javascript
一波JavaScript日期判断脚本分享
2016/03/06 Javascript
详解让sublime text3支持Vue语法高亮显示的示例
2017/09/29 Javascript
vue点击当前路由高亮小案例
2019/09/26 Javascript
原生javascript的ajax请求及后台PHP响应操作示例
2020/02/24 Javascript
[01:14:35]DOTA2上海特级锦标赛B组资格赛#1 Alliance VS Fnatic第一局
2016/02/26 DOTA
[46:53]Secret vs Liquid 2019国际邀请赛小组赛 BO2 第一场 8.15
2019/08/17 DOTA
[01:16]DOTA2小知识课堂 Ep.03 芒果树无伤肉山
2019/12/05 DOTA
python使用opencv进行人脸识别
2017/04/07 Python
Python标准库之collections包的使用教程
2017/04/27 Python
python爬虫获取多页天涯帖子
2018/02/23 Python
Python使用matplotlib绘制多个图形单独显示的方法示例
2018/03/14 Python
python3 kmp 字符串匹配的方法
2018/07/07 Python
python将控制台输出保存至文件的方法
2019/01/07 Python
Tensorflow实现多GPU并行方式
2020/02/03 Python
详解python 破解网站反爬虫的两种简单方法
2020/02/09 Python
python获取依赖包和安装依赖包教程
2020/02/13 Python
基于Numba提高python运行效率过程解析
2020/03/02 Python
python复合条件下的字典排序
2020/12/18 Python
Python读取ini配置文件传参的简单示例
2021/01/05 Python
html5关于外链嵌入页面通信问题(postMessage解决跨域通信)
2020/07/20 HTML / CSS
德国玩具商店:Planet Happy DE
2021/01/16 全球购物
文员岗位职责
2013/11/09 职场文书
超市重阳节活动方案
2014/02/10 职场文书
中职三好学生事迹材料
2014/08/24 职场文书
2014年班组工作总结
2014/11/20 职场文书
学校捐款活动总结
2015/05/09 职场文书
MySQL索引篇之千万级数据实战测试
2021/04/05 MySQL