I'm researching self-supervised machine learning code.
And I have wanted to debug the code with python debugger
not pdb.set_trace()
.
This is python command for ubuntu terminal.
python -m torch.distributed.launch --nproc_per_node=1 main_swav.py \
--data_path /dataset/imagenet/train \
--epochs 400 \
--base_lr 0.6 \
--final_lr 0.0006 \
--warmup_epochs 0 \
--batch_size 8 \
--size_crops 224 96 \
--nmb_crops 2 6 \
--min_scale_crops 0.14 0.05 \
--max_scale_crops 1. 0.14 \
--use_fp16 true \
--freeze_prototypes_niters 5005 \
--queue_length 380 \
--epoch_queue_starts 15\
--workers 10
In order to debug the code with VScode, I tried to revise launch.json like below as referring stackoverflow question
{
"version": "0.2.0",
"configurations": [
{
"name": "Python: Current File",
"type": "python",
"module": "torch.distributed.launch --nproc_per_node=1 main_swav.py",
"request": "launch",
"console": "integratedTerminal",
"args": ["--data_path", "/dataset/imagenet/train"]
}
]
}
I knew this would not work...
Could you give me some advice?
Specify the module you want to run with "module": "torch.distributed.launch"
You can ignore the -m
flag. Put everything else under the args
key.
Note: Make sure to include --nproc_per_node
and the name of file (main_swav.py
) in the list of arguments
{
"version": "0.2.0",
"configurations": [
{
"name": "Python: Current File",
"type": "debugpy",
"module": "torch.distributed.launch",
"request": "launch",
"console": "integratedTerminal",
"args": [
"--nproc_per_node", "1",
"main_swav.py",
"--data_path", "/dataset/imagenet/train",
]
}
]
}
Read more here: https://code.visualstudio.com/docs/python/debugging#_module