pytorch 使用单个GPU与多个GPU进行训练与测试的方法
作者:gaishi_hero 发布时间:2022-04-04 10:39:07
标签:pytorch,单个,GPU,多个,训练
如下所示:
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将这些结果进行收集和融合,之后再将结果返回。
来源:https://blog.csdn.net/gaishi_hero/article/details/81139045
0
投稿
猜你喜欢
- 通信方式进程彼此之间互相隔离,要实现进程间通信(IPC),multiprocessing模块主要通过队列方式队列:队列类似于一条管道,元素先
- 一、DataLoader理解在深度学习模型训练中,数据的预处理和读取是一个非常重要的问题。PyTorch作为深度学习框架之一,提供了Data
- 语言的内存管理是语言设计的一个重要方面。它是决定语言性能的重要因素。无论是C语言的手工管理,还是Java的垃圾回收,都成为语言最重要的特征。
- 1.安装 Selenium 模块Selenium支持很多浏览器,我选择的是Firefox浏览器。安装方法:①打开cmd;②输入命令 pip
- 目录序列容器序列与扁平序列不可变序列与可变序列列表推导生成器表达式Tips小结序列序列是指一组数据,按存放类型分为容器序列与扁平序列,按能否
- 首先来描述下环境,在机器上有很多个JAVA程序,我们在每个JAVA程序里都配置了一个启动|停止|重启的脚本举个例子:我们现在要同时运行这些脚
- 前沿在CV领域,我们需要熟练掌握最基本的知识就是各种卷积神经网络CNN的模型架构,不管我们在图像分类或者分割,目标检测,NLP等,我们都会用
- Python矩阵的基本用法mat()函数将目标数据的类型转化成矩阵(matrix)1,mat()函数和array()函数的区别Numpy函数
- 由于现在在公司负责制作标准的静态页面,为了增强客户体验,所以经常要做些AJAX效果,也学你也和我一样在,学习AJAX。而设计AJAX时使用的
- #!/usr/bin/perl -wuse DBI;use POSIX qw(strftime);my $dbh = DBI->con
- return 语句用于退出函数,向调用方返回一个表达式。执行到 return 语句时,会退出函数,return 之后的语句不再执行。如:de
- 映射类型 — dict字典可用多种方式来创建:使用花括号内以逗号分隔键: 值对的方式: {‘jack
- 叨叨几句哈喽兄弟们,今天实现一下人脸识别。先问大家一个问题什么是百度Aip模块?百度AI平台提供了很多的API接口供开发者快速的调用运用在项
- 本文总结下如何在编写python代码时对异步操作进行同步化模拟,从而提高代码的可读性和可扩展性。 &nbs
- 最近想做实时目标检测,需要用到python开启摄像头,我手上只有两个uvc免驱的摄像头,性能一般。利用python开启摄像头费了一番功夫,主
- 开始我们将通过示例介绍偶数列表以及在 Python 中创建偶数列表的不同方法。什么是偶数本教程展示了如何在 Python 中制作偶数列表。
- 写了几年代码,很少谈到javascript程序的执行效率问题,今天就举几个例子看看,让大家看看程序优化是多么重要。这节来看看createEl
- 1、爬取目标网站:业绩预告_数据中心_同花顺财经(ps:headers不会设置的可以看这篇:Python 用requests.get获取网页
- QueueQueue是python标准库中的线程安全的队列(FIFO)实现,提供了一个适用于多线程编程的先进先出的数据结构,即队列,用来在生
- 本文实例讲述了Python机器学习之决策树算法。分享给大家供大家参考,具体如下:决策树学习是应用最广泛的归纳推理算法之一,是一种逼近离散值目