Pytorch中gpu的并行运算

本文介绍了PyTorch中如何实现多GPU并行运算,包括使用DataParallel进行多GPU输入数据并行处理,以及如何通过设置CUDA_VISIBLE_DEVICES选择GPU。同时,详细阐述了保存和加载多GPU网络的状态_dict的正确方法。
摘要由CSDN通过智能技术生成

Pytorch中gpu的并行运算

常用的最多的就是,多块GPU训练同一个网络模型。Pytorch中的并行运算。

1. 多GPU输入数据并行运算

一般使用torch.nn.DataParallel,例如:

device_ids = [0, 1]
net = torch.nn.DataParallel(net, device_ids=device_ids)
2. 推荐GPU设置方式:
  • 单卡
    使用CUDA_VISIBLE_DEVICES指定GPU,然后.cuda()不传入参数
    import os 
    os.environ['CUDA_VISIBLE_DEVICES'] = gpu_ids  # gpu_ids参数为int类型,如 0
    model.cuda()
    
  • 多GPU输入数据并行处理
    import os 
    gpu_list = '0,1,2,3'
    os.environ["CUDA_VISIBLE_DEVICES"] = gpu_list
    
    device_ids = [0, 1, 2, 3]
    net = torch.nn.DataParallel(net, device_ids=device_ids)
    
3. 保存加载多GPU网络
net = torch.nn.Linear(10,1)  # 构造网络
net = torch.nn.DataParallel(net, device_ids=[0,1, 2, 3]) 
torch.save(net.module.state_dict(), './model/multiGPU.pth') #保存网络

# 加载网络
new_net = torch.nn.Linear(10,1)
new_net.load_state_dict(torch.load("./model/multiGPU.pth"))
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值