当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


Python PyTorch ChildFailedError用法及代码示例


本文简要介绍python语言中 torch.distributed.elastic.multiprocessing.errors.ChildFailedError 的用法。

用法:

class torch.distributed.elastic.multiprocessing.errors.ChildFailedError(name, failures)

可以从用 @record 装饰器注释的函数引发特殊异常类型,以使子进程(根异常)按原样在堆栈中传播(例如,不包含在父进程的回溯中)。

在父进程是一个简单的 Nanny 进程而子进程(工作进程)实际上正在执行有意义的计算的情况下很有用。在这种情况下,错误通常发生在子进程上,因为父进程没有做任何重要的事情,并且子错误应该传播到调度程序以进行准确的根本原因诊断。

注意

传播依赖于错误文件而不是异常处理来支持函数和二进制启动。

例子:

# process tree on a host (container)
0: scheduler-init-process:
           |- 1: torchelastic_agent:
                    |- 2: trainer_0 (ok)
                    |- 3: trainer_1 (fail) -> error.json
                    |- ...
                    |- n+2: trainer_n (ok)
           |- n+3: other processes
           |- ...

在上面的示例中,trainer 1 的失败(写入 error.json)是根本原因,应该报告给调度程序的 init 进程。火炬弹性剂引起ChildFailedError("trainer", {1: "trainer_1/error.json"})在检测到训练器 1 的故障时,会将训练器 1 的错误文件的内容传播到调度程序的 init 进程。

相关用法


注:本文由纯净天空筛选整理自pytorch.org大神的英文原创作品 torch.distributed.elastic.multiprocessing.errors.ChildFailedError。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。