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中的pass语句使用方法讲解
May 14 Python
Python针对给定列表中元素进行翻转操作的方法分析
Apr 27 Python
python实现监控某个服务 服务崩溃即发送邮件报告
Jun 21 Python
python的依赖管理的实现
May 14 Python
Mac在python3环境下安装virtualwrapper遇到的问题及解决方法
Jul 09 Python
Python实现生成密码字典的方法示例
Sep 02 Python
Django 创建后台,配置sqlite3教程
Nov 18 Python
tensorflow实现打印ckpt模型保存下的变量名称及变量值
Jan 04 Python
PyCharm2019 安装和配置教程详解附激活码
Jul 31 Python
python 自定义异常和主动抛出异常(raise)的操作
Dec 11 Python
python中remove函数的踩坑记录
Jan 04 Python
python中urllib包的网络请求教程
Apr 19 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
对于ThinkPHP框架早期版本的一个SQL注入漏洞详细分析
2014/07/04 PHP
PHP实现的下载远程文件类定义与用法示例
2017/07/05 PHP
PHP基于PDO扩展操作mysql数据库示例
2018/12/24 PHP
Thinkphp5.0框架视图view的模板布局用法分析
2019/10/12 PHP
2020最新版 PhpStudy V8.1版本下载安装使用详解
2020/10/30 PHP
jquery.AutoComplete.js中文修正版(支持firefox)
2010/04/09 Javascript
jQuery学习基础知识小结
2010/11/25 Javascript
JS 获取浏览器和屏幕宽高等信息的实现思路及代码
2013/07/31 Javascript
js中split和replace的用法实例
2015/02/28 Javascript
在JavaScript中操作时间之getMonth()方法的使用
2015/06/10 Javascript
javascript实现相同事件名称,不同命名空间的调用方法
2015/06/26 Javascript
js实现圆盘记速表
2015/08/03 Javascript
JavaScript实现的贝塞尔曲线算法简单示例
2018/01/30 Javascript
JS处理一些简单计算题
2018/02/24 Javascript
jQuery中each方法的使用详解
2018/03/18 jQuery
vue计算属性和监听器实例解析
2018/05/10 Javascript
vue+django实现一对一聊天功能的实例代码
2019/07/17 Javascript
jQuery利用cookie 实现本地收藏功能(不重复无需多次命名)
2019/11/07 jQuery
使用npm命令提示: 'npm' 不是内部或外部命令,也不是可运行的程序的处理方法
2020/05/14 Javascript
vue.js实现h5机器人聊天(测试版)
2020/07/16 Javascript
vue路由的配置和页面切换详解
2020/09/09 Javascript
Jquery+javascript实现支付网页数字键盘
2020/12/21 jQuery
[50:59]2018DOTA2亚洲邀请赛 4.7 总决赛 LGD vs Mineski第四场
2018/04/10 DOTA
Python开发虚拟环境使用virtualenvwrapper的搭建步骤教程图解
2018/09/19 Python
Python实现繁?转为简体的方法示例
2018/12/18 Python
详解Python的三种可变参数
2019/05/08 Python
Pycharm2020.1安装中文语言插件的详细教程(不需要汉化)
2020/08/07 Python
python3爬虫中引用Queue的实例讲解
2020/11/24 Python
css3闪亮进度条效果实现思路及代码
2013/04/17 HTML / CSS
纯CSS3制作漂亮带动画效果的主机价格表
2015/04/25 HTML / CSS
Html5之webcoekt播放JPEG图片流
2020/09/22 HTML / CSS
工业设计专业自荐书
2014/06/05 职场文书
学校机关党总支领导班子整改工作方案
2014/10/26 职场文书
本科毕业论文指导教师评语
2014/12/30 职场文书
2015年信访维稳工作总结
2015/04/07 职场文书
CSS 左边固定宽右边自适应的6种方法
2022/05/15 HTML / CSS