Pytorch对于使用多GPU的注意事项

1.关于模型的打印或保存问题

首先对于多GPU的使用分两种方案一种是简单的DP方案一种是复杂的DDP方案,在此处我们使用的是DP方案:

    if t.cuda.device_count() > 1:
        model = nn.DataParallel(model,device_ids=[0, 1])
    if opt.use_gpu: model.cuda()

由于两张卡所以我直接定义的 device_ids=[0, 1],若不定义此项dataparallel会自动分配所有GPU
回到正题,在单卡进行训练的时候打印模型变量或者模型名是利用:

model.model_name

但如果改为多卡训练后会报错(打印其他信息同样报类似的错)

AttributeError: 'DataParallel' object has no attribute 'model_name'

加上moudle即可正常使用

model.module.model_name

在此处使用torch.save的时候也是一样的道理

# 使用单卡训练保存模型参数方法
t.save(model.state_dict(), PATH)
# 使用多卡训练保存模型参数方法
t.save(model.module.state_dict(), PATH)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值