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 文件操作技巧(File operation) 实例代码分析
Aug 11 Python
python中的一些类型转换函数小结
Feb 10 Python
Python中装饰器的一个妙用
Feb 08 Python
Python中的map()函数和reduce()函数的用法
Apr 27 Python
Python解决八皇后问题示例
Apr 22 Python
python绘制简单彩虹图
Nov 19 Python
Python实现子类调用父类的初始化实例
Mar 12 Python
让Django的BooleanField支持字符串形式的输入方式
May 20 Python
django 模型字段设置默认值代码
Jul 15 Python
python之随机数函数的实现示例
Dec 30 Python
Python中正则表达式对单个字符,多个字符和匹配边界等使用
Jan 27 Python
Pytest实现setup和teardown的详细使用详解
Apr 17 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 include,include_once,require,require_once
2008/09/05 PHP
php 字符串函数收集
2010/03/29 PHP
PHP面向对象分析设计的61条军规小结
2010/07/17 PHP
PHP中fwrite与file_put_contents性能测试代码
2013/08/02 PHP
完美解决phpdoc导出文档中@package的warning及Error的错误
2016/05/17 PHP
Thinkphp自定义生成缩略图尺寸的方法
2019/08/05 PHP
在phpstudy集成环境下的nginx服务器下配置url重写
2019/12/02 PHP
js简单的点击返回顶部效果实现方法
2015/04/10 Javascript
HTML5之WebSocket入门3 -通信模型socket.io
2015/08/21 Javascript
jQuery AJAX timeout 超时问题详解
2016/06/21 Javascript
JS中位置与大小的获取方法
2016/11/22 Javascript
jQuery实现倒计时重新发送短信验证码功能示例
2017/01/12 Javascript
canvas实现图片根据滑块放大缩小效果
2017/02/24 Javascript
Node.js 实现简单的接口服务器的实例代码
2017/05/23 Javascript
分享vue.js devtools遇到一系列问题
2017/10/24 Javascript
详解Node.js使用token进行认证的简单示例
2020/05/25 Javascript
vue + node如何通过一个Txt文件批量生成MP3并压缩成Zip
2020/06/02 Javascript
支付宝小程序实现省市区三级联动
2020/06/21 Javascript
vue 实现基础组件的自动化全局注册
2020/12/25 Vue.js
[58:29]DOTA2-DPC中国联赛 正赛 Phoenix vs XG BO3 第一场 1月31日
2021/03/11 DOTA
python判断字符串是否包含子字符串的方法
2015/03/24 Python
Python+django实现文件上传
2016/01/17 Python
结合Python的SimpleHTTPServer源码来解析socket通信
2016/06/27 Python
Python设计模式之命令模式简单示例
2018/01/10 Python
Python利用公共键如何对字典列表进行排序详解
2018/05/19 Python
在Python中关于使用os模块遍历目录的实现方法
2019/01/03 Python
pytorch 实现查看网络中的参数
2020/01/06 Python
Python如何通过百度翻译API实现翻译功能
2020/04/02 Python
keras-siamese用自己的数据集实现详解
2020/06/10 Python
美国的Eastbay旗下的运动款子品牌:Final-Score
2018/01/01 全球购物
美国最值得信赖的宠物药房:Allivet
2019/03/23 全球购物
英国景点门票网站:attractiontix
2019/08/27 全球购物
保险公司晨会主持词
2014/03/22 职场文书
应届大学生自荐书
2014/06/17 职场文书
2014年个人业务工作总结
2014/11/17 职场文书
解决MySQL报“too many connections“错误
2022/04/19 MySQL