在运行单机多卡训练与测试的时候,直接执行训练/测试脚本遇到如下报错:
Traceback (most recent call last):...torch.distributed.init_process_group(backend="nccl")File "/usr/local/lib/python3.6/dist-packages/torch/distributed/distributed_c10d.py", line 500, in init_process_groupstore, rank, world_size = next(rendezvous_iterator)File "/usr/local/lib/python3.6/dist-packages/torch/distributed/rendezvous.py", line 166, in _env_rendezvous_handlerraise _env_error("RANK")
ValueError: Error initializing torch.distributed using env:// rendezvous: environment variable RANK expected, but not set
通过python -m torch.distributed.launch
执行脚本,报错解决:
python -m torch.distributed.launch xxx.py # xxx.py为要执行的脚本文件名
python -m
将其后的模块作为脚本来运行,其后的xxx.py
是作为位置参数传递给该脚本,以此来启动分布式训练/测试。python -m torch.distributed.launch
除了接受待执行脚本作为位置参数,同时支持一些可选参数以配置分布式训练/测试,部分参数及其含义解释如下: 参数 | 说明 |
---|---|
--nnodes | 节点数量,或以<minimum_nodes>:<maximum_nodes> 形式给出的节点范围 |
--nproc_per_node | 每个节点的进程(worker )的数量,允许的值:[auto, cpu, gpu, int] ,单机多卡时可将其理解为使用GPU的数量 |
--node_rank | 多节点分布式训练的节点序号(rank ) |
--master_addr | 主节点(rank 为0 )的r地址。对于单节点多进程训练,可以简单地为127.0.0.1 ;IPv6应具有模式[0:0:0:0:0:0:0:1] |
--master_port | 主节点(rank 为0 )上的端口,用于分布式训练期间的通信 |
--use_env | 使用环境变量传递local rank 。其值默认为False ,如果设置为True ,脚本将不会传递--local_rank 作为参数,而是设置LOCAL_RANK |
本文发布于:2024-02-05 08:21:00,感谢您对本站的认可!
本文链接:https://www.4u4v.net/it/170728052564873.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
留言与评论(共有 0 条评论) |