关于subprocess.CalledProcessError: Commandxxx returned non-zero exit status 1. 的问题--pytorch分布式训练问题

1.问题描述

我想跑一个模型的训练源代码时,就出现了这个问题,之前上网一顿查,发现并没有解决的办法。所说的也跟这个对不上。这个问题的本身是有关于pytorch分布使训练的问题。

 实际情况如下。

root@node02:~/data/zjx/others/DDPtry# python -m torch.distributed.launch --nproc_per_node 3 tryDDP_1.py 
*****************************************
Setting OMP_NUM_THREADS environment variable for each process to be 1 in default, to avoid your system being overloaded, please further tune the variable for optimal performance in your application as needed. 
*****************************************
Files already downloaded and verified
Files already downloaded and verified
Files already downloaded and verified
Traceback (most recent call last):
  File "tryDDP_1.py", line 92, in <module>
Traceback (most recent call last):
  File "tryDDP_1.py", line 92, in <module>
Traceback (most recent call last):
  File "tryDDP_1.py", line 92, in <module>
    b = c
NameError: name 'c' is not defined
    b = c
    b = c
NameError: name 'c' is not defined
NameError: name 'c' is not defined
Traceback (most recent call last):
  File "/usr/lib/python3.6/runpy.py", line 193, in _run_module_as_main
    "__main__", mod_spec)
  File "/usr/lib/python3.6/runpy.py", line 85, in _run_code
    exec(code, run_globals)
  File "/usr/local/lib/python3.6/dist-packages/torch/distributed/launch.py", line 263, in <module>
    main()
  File "/usr/local/lib/python3.6/dist-packages/torch/distributed/launch.py", line 259, in main
    cmd=cmd)
subprocess.CalledProcessError: Command '['/usr/bin/python', '-u', 'tryDDP_1.py', '--local_rank=2']' returned non-zero exit status 1.

2.问题的解决

出现这个问题时,解决问题的关键不在于这个问题本身,而是在于这个问题前面所报出的问题。

正因为原代码中的某处或者某几处错误,从而导致分布使训练不能进行,所以都会报出这个错误。从上面的实际举例可以看出,在这个错误之前,还有个错误,如下图画框所示

 当然,这个错误是我故意设计的,就是为了举例说明出现这个问题的来源,因为我在代码中加了一处错误,如下图划线处所示。

 正式因为代码中出现的这处错误,导致分布式训练不能顺利进行,所以才会返回如

subprocess.CalledProcessError: Command '['/usr/bin/python', '-u', 'tryDDP_1.py', '--local_rank=2']' returned non-zero exit status 1.

这样的错误。所以,解决这个问题的关键是把这个错误之前的所有报错都解决掉,之后就可以顺利进行分布式训练了。

如下所示,(下面将b=c 这个错误去掉)

 然后运行,如下图所示,可以正常运行了

  • 19
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

匿名的魔术师

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

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

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

打赏作者

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

抵扣说明:

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

余额充值