1. Pytorch分布式训练
Pytorch支持多机多卡分布式训练,参与分布式训练的机器用Node表述(Node不限定是物理机器,还是容器,例如docker,一个Node节点就是一台机器),Node又分为Master Node、Slave Node,Master Node只有一个,Slave Node可以有多个,假定现在有两台机器参与分布式训练,每台机器有4张显卡,分别在两台机器上执行如下命令(以yolov5训练为例):
Master Node执行如下命令:
python -m torch.distributed.launch \
--nnodes 2 \
--nproc_per_node 4 \
--use_env \
--node_rank 0 \
--master_addr "192.168.1.2" \
--master_port 1234 \
train.py \
--batch 64 \
--data coco.yaml \
--cfg yolov5s.yaml \
--weights 'yolov5s.pt'
Slave Node执行如下命令:
python -m torch.distributed.launch \
--nnodes 2 \
--nproc_per_node 4 \
--use_env \
--node_rank 1 \
--master_addr "192.168.1.2" \
--master_port 1234 train.py