---
title: 在模型运行时遇到报错“RuntimeError: context has already been set”-昇腾社区
description: 报错文本：
keywords: RuntimeError,在模型运行时,遇到报错,昇腾社区,问题现象描述,原因分析,解决措施,PyTorch
url: https://www.hiascend.com/document/caselibrary/detail/ptacase_0039
section: (其他)
---

# 在模型运行时遇到报错“RuntimeError: context has already been set”-昇腾社区

URL: https://www.hiascend.com/document/caselibrary/detail/ptacase_0039
描述: 报错文本：
关键词: RuntimeError,在模型运行时,遇到报错,昇腾社区,问题现象描述,原因分析,解决措施,PyTorch

昇腾文档 [了解详情](https://www.hiascend.com/document)

故障案例 [了解详情](https://www.hiascend.com/document/caselibrary)

在模型运行时遇到报错“RuntimeError: context has already been set”

在模型运行时遇到报错“RuntimeError: context has already been set”

2025/03/18

949

问题信息

| 问题来源 | 产品大类 | 产品子类 | 关键字 |
| --- | --- | --- | ---|
| 官方 | 模型训练 | PyTorch | -- |

#### 问题现象描述

报错文本：

```
Traceback (most recent call last):
  File "bad.py", line 6, in <module>
    mp.set_start_method('spawn')
  File "/usr/local/python3.8.5/lib/python3.8/multiprocessing/context.py", line 243, in set_start_method
    raise RuntimeError('context has already been set')
RuntimeError: context has already been set
[ERROR] 2024-11-28-14:57:00 (PID:731691, Device:-1, RankID:-1) ERR99999 UNKNOWN application exception
```

#### 原因分析

昇腾NPU依赖python的multiprocessing.get_context多进程管理能力，受限于python本身的约束，用户如果使用mp.set_start_method('spawn')再次设置多进程启动方式，python会抛异常。

#### 解决措施

使用try-except语句进行异常处理，具体操作如下：

```
import torch
import torch_npu
import multiprocessing as mp
if __name__ == "__main__":
    try:
        mp.set_start_method('spawn')
    except:
        print("context has already been set")
```

本页内容

- 问题信息
- 问题现象描述
- 原因分析
- 解决措施
