我在研究self-supervised muchine learning code。
我想用python debugger
而不是pdb.set_trace()
来调试代码。这是用于ubuntu终端的python命令。
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
为了使用VScode调试代码,我尝试将launch.json修改为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"]
}
]
}
我就知道这行不通...
你能给我一些建议吗?
谢谢你抽出时间。
2条答案
按热度按时间fnatzsnv1#
指定要与
"module": "torch.distributed.launch"
一起运行的模块您可以忽略
-m
标志,将其他所有内容放在args
项下。**注意:**确保在参数列表中包括
--nproc_per_node
和文件名(main_swav.py
)在此阅读更多信息:https://code.visualstudio.com/docs/python/debugging#_module
pexxcrt22#
这是我用来调试Python模块的
launch.json
的一个例子。它有一个额外的配置来调试“当前文件”(而不是作为模块),这对保留很有用。
这将复制一个终端命令来运行Python模块,如下所示: