pytorch-多GPU训练(单机多卡、多机多卡)

pytorch-多GPU训练(单机多卡、多机多卡)

pytorch 单机多卡训练

首先是数据集的分布处理

需要用到的包:
torch.utils.data.distributed.DistributedSampler
torch.utils.data.DataLoader
torch.utils.data.Dataset

DistributedSampler这个包我们用来确保dataloader只会load到整个数据集的一个特定子集,为每一个子进程划分出一部分数据集,以避免不同进程之间数据重复

而我们构造的Sampler是在构造DataLoader时的一个参数

先构建一个自己的torch.utils.data.Dataset类的dataset类:

import torch.utils.data as Data
class MyDataSet(Data.Dataset):def __init__(self, x_train, x_label, y_train, y_label): super(MyDataSet, self).__init__()self.x_train = x_trainself.x_label = x_labelself.y_train = y_trainself.y_label = y_labeldef __len__(self):return self.x_train.shape[0]def __getitem__(self, idx):return self.x_train[idx], self.x_label[idx], self.y_train[idx], self.y_label[idx]

初始化DataSet:
这里的x_train, x_label, y_train, y_label是数据集加载进来的变量,根据自己的数据集情况设置变量和数量

train_data = MyDataSet(x_train, x_label, y_train, y_label)

然后根据构造的Dataset对象构造一个DistributedSampler:

train_sampler = torch.utils.data.distributed.DistributedSampler(train_data, shuffle=True)

然后使用torch.utils.data.DataLoader构造自己的DataLoader

MyDataLoader = Data.DataLoader(MyDataSet(x_train, x_label, \y_train, y_label), batch_size=2, sampler = train_sampler)

然后是模型的分布处理

需要用到的包:
torch.nn.parallel.DistributedDataParallel
在初始化model之后,进行一步:

 model = torch.nn.parallel.DistributedDataParallel(model)# device_ids will include all GPU devices by default

pytorch 多机多卡训练

多机多卡需要配置多机间通讯,进行多进程的初始化:
需要用到的包:
torch.distributed
在初始化model之后,进行一步:

torch.distributed.init_process_group(init_method='tcp://{}:{}'.format(args.ip, args.port),backend="gloo",

参数解析:

backend: 多个机器之间交换数据的协议
init_method: 机器之间交换数据, 需要指定一个主节点,这代表主节点
world_size: 进程个数,实际上就是机器的个数, 比如四台台机器一起训练的话, world_size就为4
rank: 区分主节点和从节点的, 主节点为0, 剩余的为了1-(N-1), N为要使用的机器的数量, 也就是world_size

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/507931.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

机器人 铑元素_智能机器人 三十三

福里斯特茫然不知所措地从窃窃私语的黑暗中转过身来,沉重的失败感犹如巨怪压得他喘不过气来。他顺从地跛着脚走向笼内角落里的小浴室,冲着微笑着的木偶刚才经过的地方点点头,漫不经意地问道:“你们是如何抓住他们的?”…

character-level OCR之Character Region Awareness for Text Detection(CRAFT) 论文阅读

Character Region Awareness for Text Detection 论文阅读 论文地址(arXiv) ,pytorch版本代码地址 最近在看一些OCR的问题,CRAFT是在场景OCR中效果比较好的模型,记录一下论文的阅读 已有的文本检测工作大致如下: 基于回归的文…

c# wpf 面试_【远程面试】九强通信 | 九洲电器集团全资子公司

成都IT内推圈成立于2016年,专注成都IT互联网领域的招聘与求职;覆盖精准IT人群10W,通过内推圈推荐且已入职人数超过5000,合作公司均系成都知名或靠谱公司.此公众号每天7:30AM准时推送当天职位详情,敬请关注并置顶!岗位投递一、登陆内推圈官网: www.itneituiquan.com,…

ViT(Vision Transformer)学习

ViT(Vison Transformer)学习 Paper:An image is worth 1616 words: transformers for image recognition at scale. In ICLR, 2021. Transformer 在 NLP领域大放异彩,并且随着模型和数据集的不断增长,仍然没有表现出饱和的迹象。这使得使用更大规模的数…

mysql php宝塔 root_[转载]在安卓中安装宝塔面板运行PHP+MySQL

手机上的操作我用的手机是小米10pro,其他手机应该也能用相同的方法安装成功。安装Linux Deploy,然后给它root权限。点击左上角的菜单按钮。点击号,创建一个名为debian的配置文件。如果已经有了名为debian的配置文件,选择它即可。返…

cpri带宽不足的解决方法_u盘容量不足怎么办 u盘容量不足解决方法【介绍】

我们在使用u盘的时候总能碰到各种各样的问题,其中u盘容量不足问题也是神烦,很多时候打开并没有发现有文件存在,但是在你存文件的时候又被提示u盘容量不足无法操作,关于这个问题u启动通过整理和大家一起分享下解决办法。1、u盘里的…

(python numpy) np.array.shape 中 (3,)、(3,1)、(1,3)的区别

(python numpy) np.array.shape 中 (3,)、(3,1)、(1,3)的区别 被人问到这个问题,就记录一下吧 1. (3,) (3,)是[x,y,z][x,y,z][x,y,z]的形式,即为一维数组,访问数组元素用一个index for example: >>> array1 np.array([1,2,3]) …

复合的赋值运算符例题_Java学习:运算符的使用与注意事项

运算符的使用与注意事项四则运算当中的加号“”有常见的三种用法:对于数值来,那就是加法。对于字符char类型来说,在计算之前,char会被提升成为int,然后再计算。char类型字符,和int类型数字之间的对照关系比…

腾讯会议如何使用讲演者模式进行汇报(nian gao)

腾讯会议如何使用讲演者模式进行汇报(nian gao) 首先列出步骤,再一一演示: altf5 开启讲演者模式,调整讲演者模式的窗口为小窗alttab 切换回腾讯会议界面,屏幕共享power point窗口(注意不是“…

bulk这个词的用法_15、形容词与副词(二)比较的用法

初中英语语法——形容词与副词(二)比较的用法语法解释1、形容词与副词比较级和最高级的规则变化单音节词与部分双音节词:(1)一般情况加-er,-estlong-longer-longest strong-stronger-strongestclean-cleaner-cleanest(2)以不发音的e结尾的词,…

pytorch 使用DataParallel 单机多卡和单卡保存和加载模型时遇到的问题

首先很多网上的博客,讲的都不对,自己跟着他们踩了很多坑 1.单卡训练,单卡加载 这里我为了把三个模块save到同一个文件里,我选择对所有的模型先封装成一个checkpoint字典,然后保存到同一个文件里,这样就可…

retinex 的水下图像增强算法_图像增强论文:腾讯优图CVPR2019

Underexposed Photo Enhancement using Deep Illumination Estimation基于深度学习优化光照的暗光下的图像增强论文地址:Underexposed Photo Enhancement using Deep Illumination Estimation暗光拍照也清晰,这是手机厂商目前激烈竞争的新拍照目标。提出…

python 实现 BCH 纠错码的方法

python 实现 BCH 纠错码的方法 BCH码是一类重要的纠错码,它把信源待发的信息序列按固定的κ位一组划分成消息组,再将每一消息组独立变换成长为n(n>κ)的二进制数字组,称为码字。如果消息组的数目为M(显然M>2),由此所获得的M个码字的全…

结构体引用_C/C++结构体完全攻略

结构体是一个由程序员定义的数据类型,可以容纳许多不同的数据值。在过去,面向对象编程的应用尚未普及之前,程序员通常使用这些从逻辑上连接在一起的数据组合到一个单元中。一旦结构体类型被声明并且其数据成员被标识,即可创建该类…

python 实现 CRC 冗余码的方法

python 实现 CRC 冗余码的方法 我这里考虑输入是 torch.Tensor的一个 只包含0 ,1 元素的张量对于输入是numpy或者0,1字符串的方法就更简单了,总之都先要将输入处理成为 0,1字符串,例如“1010”首先构造一个输入&#…

mysql root密码过期了_Mac下重置mysql的root密码

php中文网最新课程每日17点准时技术干货分享我的mysql版本 MYSQL V5.7.9,旧版本请使用:UPDATE mysql.user SET PasswordPASSWORD(新密码) WHERE Userroot;Mac OS X - 重置 MySQL Root密码密码太多记不住??你是否忘记了Mac OS 的My…

论文页眉奇偶页不同怎么设置_还在愁毕业论文的页眉页脚吗?

在文档中添加页眉和页脚能够很好的对相关信息进行展示或说明,在写论文的时候,设置页眉和页脚,能够让老师清楚的了解你的论文,但同时页眉和页脚的设置也是最让人头疼的,今天零壹学长就给大家详细的介绍页眉和页脚。了解…

Acquiring lock on /*/*/.vscode-server/bin/f80445acd5a3dadef24aa20916 vscode远程linux 服务器无法建立连接

1 删除 C:\Users\‘用户名’\.ssh\ 下的 know_hosts文件 2 使用其他的ssh工具(MobaXterm)远程连接目标服务器 首先使用指令:ps -aux |grep ‘自己的用户名’ 列出自己所有的运行的程序找到正在使用报错的文件/*/*/.vscode-server/bin/f8044…

账号管理工具_全新微信个人号管理工具能选择吗?为何这么说?

点击上方“蓝字”关注我们伴随着微信营销的重要性越来越高,很多企业的新媒体运营人员也开始把注意力都放到了微信账号的运营上,不仅是公众号的发展和运营,个人号在这个过程中也是非常重要的。相对于公众号和微信群,个人号的影响力…

护理等级分级标准及巡视时间_18项护理核心制度,都在这了

一、护理质量管理制度二、病房管理制度三、抢救工作制度四、分级护理制度五、护理交接班制度六、查对制度七、给药制度八、护理查房制度九、患者健康教育制度十、护理会诊制度十一、病房消毒隔离制度十二、护理安全管理制度十三、患者身份识别制度十四、患者差错、事故报告制度…