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加密自己的密码
Aug 04 Python
python django使用haystack:全文检索的框架(实例讲解)
Sep 27 Python
详解Django中间件的5种自定义方法
Jul 26 Python
python用post访问restful服务接口的方法
Dec 07 Python
python实现微信防撤回神器
Apr 29 Python
TensorFlow 多元函数的极值实例
Feb 10 Python
Python函数基本使用原理详解
Mar 19 Python
完美解决pycharm 不显示代码提示问题
Jun 02 Python
基于Tensorflow的MNIST手写数字识别分类
Jun 17 Python
浅谈keras通过model.fit_generator训练模型(节省内存)
Jun 17 Python
浅谈Python3中print函数的换行
Aug 05 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 cookis创建实现代码
2009/03/16 PHP
PHP 学习路线与时间表
2010/02/21 PHP
php判断当前用户已在别处登录的方法
2015/01/06 PHP
php 根据自增id创建唯一编号类
2017/04/06 PHP
php实现的生成排列算法示例
2019/07/25 PHP
laravel利用中间件防止未登录用户直接访问后台的方法
2019/09/30 PHP
推荐自用 Javascript 缩图函数 (onDOMLoaded)……
2007/10/23 Javascript
Jquery中"$(document).ready(function(){ })"函数的使用详解
2013/12/30 Javascript
node.js中的require使用详解
2014/12/15 Javascript
JS中获取函数调用链所有参数的方法
2015/05/07 Javascript
NodeJs下的测试框架Mocha的简单介绍
2017/02/22 NodeJs
JQuery实现文字无缝滚动效果示例代码(Marquee插件)
2017/03/07 Javascript
angular.JS实现网页禁用调试、复制和剪切
2017/03/31 Javascript
php 修改密码实现代码
2017/05/24 Javascript
nodejs结合socket.io实现websocket通信功能的方法
2018/01/12 NodeJs
Vue路由钩子之afterEach beforeEach的区别详解
2018/07/15 Javascript
浅谈Vue.js组件(二)
2019/04/09 Javascript
webpack + vue 打包生成公共配置文件(域名) 方便动态修改
2019/08/29 Javascript
Vue.js如何使用Socket.IO的示例代码
2019/09/05 Javascript
[02:54]DOTA2英雄基础教程 撼地者
2014/01/14 DOTA
python计算程序开始到程序结束的运行时间和程序运行的CPU时间
2013/11/28 Python
Python排序搜索基本算法之希尔排序实例分析
2017/12/09 Python
Python实现找出数组中第2大数字的方法示例
2018/03/26 Python
python验证码识别教程之滑动验证码
2018/06/04 Python
python2与python3爬虫中get与post对比解析
2019/09/18 Python
python爬虫 requests-html的使用
2020/11/30 Python
Python使用Turtle模块绘制国旗的方法示例
2021/02/28 Python
用HTML5制作一个简单的桌球游戏的教程
2015/05/12 HTML / CSS
英国卫浴商店:Ergonomic Design
2019/09/22 全球购物
心得体会范文
2014/01/04 职场文书
电子商务专业毕业生自荐书
2014/06/22 职场文书
亮剑精神观后感
2015/06/05 职场文书
病假条格式范文
2015/08/17 职场文书
解决Tkinter中button按钮未按却主动执行command函数的问题
2021/05/23 Python
Python爬取英雄联盟MSI直播间弹幕并生成词云图
2021/06/01 Python
基于Redission的分布式锁实战
2022/08/14 Redis