如何为Python模块创建VScode launch.json

mrwjdhj3  于 2023-02-21  发布在  Python
关注(0)|答案(2)|浏览(269)

我在研究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"]
        }
    ]
}

我就知道这行不通...
你能给我一些建议吗?
谢谢你抽出时间。

fnatzsnv

fnatzsnv1#

指定要与"module": "torch.distributed.launch"一起运行的模块

您可以忽略-m标志,将其他所有内容放在args项下。

**注意:**确保在参数列表中包括--nproc_per_node和文件名(main_swav.py

{
            "version": "0.2.0",
            "configurations": [
                {
                    "name": "Python: Current File",
                    "type": "python",
                    "module": "torch.distributed.launch",
                    "request": "launch",
                    "console": "integratedTerminal",
                    "args": [
                        "--nproc_per_node", "1", 
                        "main_swav.py",
                        "--data_path", "/dataset/imagenet/train",
                    ]
                }
            ]
        }

在此阅读更多信息:https://code.visualstudio.com/docs/python/debugging#_module

pexxcrt2

pexxcrt22#

这是我用来调试Python模块的launch.json的一个例子。
它有一个额外的配置来调试“当前文件”(而不是作为模块),这对保留很有用。

{
linkid=830387
  "version": "0.2.0",
  "configurations": [
    {
      "name": "Python: Module",
      "type": "python",
      "request": "launch",
      "module": "path.to.module",
      "args": ["run_example --arg <arg>"],
      "justMyCode": true
    },
    {
      "name": "Python: Current File",
      "type": "python",
      "request": "launch",
      "program": "${file}",
      "console": "integratedTerminal",
      "justMyCode": true
    }
  ]
}

这将复制一个终端命令来运行Python模块,如下所示:

python -m path.to.module run_example --arg <arg>

相关问题