Hi, I am currently trying to train with https://github.com/open-mmlab/mmdetection using ClearML, and executing remotely. The recommended way of training multi-gpu/-process by mmdetection is to use torch.distributed.launch and I'm using torch.distributed.run . My training script which connects clearml is here: https://github.com/levan92/mmdet_clearml/blob/main/tools/dist_train_clearml.py .
torch.distributed.launch / run takes in the training_script , and also training_script_args as argparse.REMAINDER https://github.com/pytorch/pytorch/blob/a31aea8eaa99a5ff72b5d002c206cd68d5467a5e/torch/distributed/run.py#L534-L544 .
I am having an issue with passing the training script args over to the training script only when using ClearML remote execution , because (I suspect that) ClearML is converting the list of args into string instead, so for example, a list of args ['--launcher','pytorch'] becomes a string of "['--launcher','pytorch']" instead. And therefore, when the torchrun script extends the args https://github.com/pytorch/pytorch/blob/a31aea8eaa99a5ff72b5d002c206cd68d5467a5e/torch/distributed/run.py#L683 , it gets treated as a list of characters instead, resulting in the training script getting wrong args.