自学内容网 自学内容网

【分布式训练 debug】VS Code Debug 技巧:launch.json实用参数

VS Code Debug技巧:launch.json实用参数

在使用Visual Studio Code (VS Code)进行调试时,launch.json文件是一个强大的工具,它允许你自定义调试会话。以下是一些实用的参数,可以帮助你更有效地调试Python代码。

1. 调试第三方库代码

如果你需要调试第三方库中的代码,可以使用"justMyCode": false参数来禁用仅我的代码功能。这样,你就可以在库代码中设置断点。

{
    "version": "0.2.0",
    "configurations": [
        {
            "name": "Python: tutorial_train.py",
            "type": "debugpy",
            "request": "launch",
            "program": "${workspaceFolder}/tutorial_train.py",
            "justMyCode": false,
            "console": "integratedTerminal"
        }
    ]
}

2. 指定CUDA环境

在进行深度学习开发时,你可能需要指定CUDA设备。通过设置"env"中的"CUDA_VISIBLE_DEVICES",你可以控制哪些GPU设备对当前调试会话可见。

{
    "version": "0.2.0",
    "configurations": [
        {
            "name": "Python: tutorial_train.py",
            "type": "debugpy",
            "request": "launch",
            "program": "${workspaceFolder}/tutorial_train.py",
            "env": {
                "CUDA_VISIBLE_DEVICES": "1"
            },
            "justMyCode": false,
            "console": "integratedTerminal"
        }
    ]
}

3. 指定Conda环境

如果你的项目依赖于特定的Conda环境,可以通过"python"参数指定Conda环境的Python解释器路径。

{
    "version": "0.2.0",
    "configurations": [
        {
            "name": "Python 调试程序: 当前文件",
            "type": "debugpy",
            "request": "launch",
            "program": "${file}",
            "console": "integratedTerminal",
            "justMyCode": false,
            "python": "/root/miniconda3/envs/xxx/bin/python"
        }
    ]
}

4. 使用accelerate.launch替代

accelerate库提供了一个命令行工具来启动分布式训练。在launch.json中,你可以使用"module"参数来指定accelerate.commands.launch模块,并通过"args"参数传递必要的命令行参数。

{
    "version": "0.2.0",
    "configurations": [
        {
            "name": "Python 调试程序: 训练脚本",
            "type": "debugpy",
            "request": "launch",
            "module": "accelerate.commands.launch",
            "args": [
                "--config_file", "/path/accelerate/default_config.yaml",
                "/path/train_xxx_deepspeed.py",
                "--config", "/path/test_xxx.yaml"
            ],
            "console": "integratedTerminal",
            "env": {
                "CUDA_VISIBLE_DEVICES": "4,5,6,7"
            },
            "justMyCode": false
        }
    ]
}

5. 设置当前工作目录

使用"cwd"参数,你可以为调试会话设置当前工作目录。这对于需要在特定目录下运行脚本的情况非常有用。

{
    "version": "0.2.0",
    "configurations": [
        {
            "name": "Python 调试程序: 当前文件",
            "type": "debugpy",
            "request": "launch",
            "program": "/root/TensorRT/demo/Diffusion/demo.py",
            "console": "integratedTerminal",
            "cwd": "/root/TensorRT/demo/Diffusion",
            "env": {
                "PYTHONPATH": "/root/TensorRT/demo/Diffusion"
            }
        }
    ]
}

通过这些launch.json参数,你可以更灵活地控制VS Code的调试环境,无论是调试第三方库、管理CUDA设备、使用特定Conda环境,还是进行分布式训练。


原文地址:https://blog.csdn.net/weixin_44212848/article/details/142684478

免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!