调试HRnet遇到的坑

在尝试进行分布式训练时遇到'Defaultprocessgroupisnotinitialized'错误,将BatchNorm2d改为非分布式版本后,又出现'RuntimeError: CUDA out of memory'。尝试降低batchsize为1并指定cuda:0,问题依然存在。通过调用torch.cuda.empty_cache()清理GPU缓存后,在不同GPU上训练成功。
摘要由CSDN通过智能技术生成
AssertionError: Default process group is not initialized

# BatchNorm2d_class = BatchNorm2d = torch.nn.SyncBatchNorm

BatchNorm2d_class = BatchNorm2d = torch.nn.BatchNorm2d

将bn_help.py里的第19行做更改。(放弃分布式训练)

 出现新的bug

RuntimeError: CUDA out of memory. Tried to allocate 48.00 MiB (GPU 1; 11.91 GiB total capacity; 1.44 GiB already allocated; 33.94 MiB free; 1.54 GiB reserved in total by PyTorch)

解决办法:减小batchsize为1,cuda:0 ,还是报错

在报错行前加入释放缓存的语句:

if hasattr(torch.cuda, 'empty_cache'):

torch.cuda.empty_cache()

换gpu训练,成功!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值