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

如何延长PyTorch分布式训练的超时时间?

延长YOLOv5分布式训练的PyTorch超时时间

你的YOLOv5分布式训练在30分钟后中断,原因是PyTorch分布式初始化的默认超时时间为1800秒(30分钟)。以下两种方法可以解决这个问题:

方法一:通过环境变量快速调整

无需修改代码,在训练命令前添加TORCH_DIST_INIT_TIMEOUT环境变量,指定更长的超时时间(单位为秒)。例如设置为1小时(3600秒):

TORCH_DIST_INIT_TIMEOUT=3600 python3 -m torch.distributed.run --nproc_per_node 2 train.py --batch 100 --epochs 1000 --data /home/username/Documents/folder_name/numbers.yaml --weights yolov5s.pt --device 0,1 --hyp data/hyps/hyp.scratch-high.yaml --name folder_name --patience 0

方法二:修改YOLOv5训练代码

如果需要长期固定配置,可修改YOLOv5中分布式初始化的代码逻辑。找到train.py或相关模块里调用torch.distributed.init_process_group的位置,添加timeout参数:

import torch.distributed as dist
from datetime import timedelta

# 保留原有初始化参数,新增timeout设置
dist.init_process_group(
    backend='nccl',  # 保持你当前使用的后端不变
    timeout=timedelta(seconds=3600)  # 设置为1小时,可按需调整时长
)

注意事项

  • 超时时间需根据训练任务的实际耗时调整,确保能覆盖单轮训练、数据加载等环节的最长耗时。
  • 环境变量方式适合临时调整;代码修改方式适合需要固定配置的场景。

内容的提问来源于stack exchange,提问作者Pavol Bujna

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.02 14:55:29