You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

在GCP用4GPU训练Detectron2出现MASTER_ADDR未设置ValueError如何解决

错误含义及解决方法

错误含义

这个报错是因为多GPU分布式训练需要PyTorch分布式框架做通信协调,而框架依赖MASTER_ADDR(主节点IP地址)和MASTER_PORT(主节点通信端口)这两个环境变量来建立GPU间的连接,但当前这两个变量未被设置。单GPU训练不需要跨GPU通信,所以不会触发这个检查。

解决方法

方法1:使用Detectron2官方推荐的启动方式(优先选择)

直接通过终端调用官方的分布式启动脚本,它会自动配置好所有需要的环境变量:

# 方式A:用PyTorch自带的分布式启动工具
python -m torch.distributed.launch --nproc_per_node=4 你的训练脚本.py

# 方式B:用Detectron2内置的launch工具
python detectron2/engine/launch.py --num_gpus=4 你的训练脚本.py

注意:不要在脚本里再手动写launch(main, num_gpus_per_machine=4),保持训练脚本的main函数逻辑即可。

方法2:手动设置环境变量(仅用于特殊场景)

如果必须在代码内调用launch函数,需要在代码开头手动设置环境变量:

import os
# 本地训练用127.0.0.1即可
os.environ.setdefault("MASTER_ADDR", "127.0.0.1")
# 选一个未被占用的端口,比如29500
os.environ.setdefault("MASTER_PORT", "29500")

if __name__ == "__main__":
    launch(main, num_gpus_per_machine=4)

额外检查

确保GCP实例的GPU环境正常:

  • 运行nvidia-smi确认4块GPU都被识别
  • 确认PyTorch版本与CUDA驱动版本匹配,torch.cuda.is_available()返回True

内容的提问来源于stack exchange,提问作者Nitya Rakhe

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.22 16:34:59