如何增加pytorch超时时间?

iovurdzv  于 2023-02-04  发布在  其他
关注(0)|答案(1)|浏览(371)

我在用yolov 5训练ML模型这是我的命令-

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

30分钟后会切断,因为默认的pytorch超时时间是1800 s。我怎么增加它呢?
https://pytorch.org/docs/stable/distributed.html#torch.distributed.init_process_group
谢谢

mzillmmw

mzillmmw1#

您可以通过在www.example.com命令中指定--timeout参数来增加PyTorch超时时间,该参数接受以秒为单位的值,用于设置训练过程的超时时间。torch.distributed.run command. The argument accepts a value in seconds, which sets the timeout for the training process.
例如,如果要将超时增加到2小时(7200秒),则可以按如下所示修改命令:

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 --timeout 7200

这将把训练过程的超时设置为2小时(7200秒)。注意--timeout参数区分大小写,因此在指定时请确保使用正确的大小写。

更新

在评论区回答你的错误。
您收到的错误消息表明www.example.com脚本无法识别--timeout参数。要解决此问题,您需要修改train.py脚本以接受--timeout参数。下面是一个简单的示例,说明如何将--timeout参数添加到脚本中:train.py script. To fix this issue, you'll need to modify the train.py script to accept the --timeout argument. Here's a simple example of how you could add the --timeout argument to the script:

import argparse

parser = argparse.ArgumentParser()
parser.add_argument('--timeout', type=int, default=1800, help='timeout in seconds')
args = parser.parse_args()

您收到的错误消息表明www.example.com脚本无法识别--timeout参数。要解决此问题,您需要修改train.py脚本以接受--timeout参数。train.py script. To fix this issue, you'll need to modify the train.py script to accept the --timeout argument.
下面是一个简单的例子,说明如何将--timeout参数添加到脚本中:
python复制代码导入argparse
解析器=参数解析器。参数解析器()解析器. add_argument('--timeout',类型= int,默认值= 1800,帮助='超时(秒)')args =解析器. parse_args()此代码使用argparse模块将--timeout参数添加到脚本中,type参数指定--timeout参数应为整数,默认参数将默认值设置为1800秒(30分钟)。帮助参数提供该参数的说明。
一旦将--timeout参数添加到脚本中,就可以使用args.timeout访问它的值,并在训练过程中使用它。
例如:

import time

start_time = time.time()
while True:
    # training logic
    if time.time() - start_time > args.timeout:
        break

相关问题