Pytorch多卡使用 总结

1. 单机单卡转单机多卡

对于Pytorch1.0以上版本,转多卡的方法和0.4.0不太一样。经过多次尝试,下面的方法是尝试过的所有方法中最方便的。

https://zhuanlan.zhihu.com/p/86441879

 

2. 多卡平衡

依旧是上面的文章,不过我试了之后只是平衡了一点,还在尝试中

https://zhuanlan.zhihu.com/p/86441879

 

3. 多卡训练时的报错

error1:

RuntimeError: Expected to have finished reduction in the prior iteration before starting a new one. This error indicates that your module has parameters that were not used in producing loss. You can enable unused parameter detection by (1) passing the keyword argument `find_unused_parameters=True` to `torch.nn.parallel.DistributedDataParallel`; (2) making sure all `forward` function outputs participate in calculating loss. If you already have done the above two steps, then the distributed data parallel module wasn't able to locate the output tensors in the return value of your module's `forward` function. Please include the loss function and the structure of the return value of `forward` of your module when reporting this issue (e.g. list, dict, iterable). (prepare_for_backward at /tmp/pip-req-build-ocx5vxk7/torch/csrc/distributed/c10d/reducer.cpp:518)

 

解决方案:

提示中已经说了两个解决方案,经尝试只使用第一种即可解决。按照它说的改为:

netG= DistributedDataParallel(netG,find_unused_parameters=True)

即可。

 

error2:

训练过程中突然出现Segmentation fault (core dumped)

解决方案:

参考https://zhuanlan.zhihu.com/p/66667725

先查看ulimit -a

再修改ulimit -s 81920

 

 

 

 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

R.X. NLOS

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值