当前位置: 首页 > article >正文

【分布式训练 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环境,还是进行分布式训练。


http://www.kler.cn/news/330042.html

相关文章:

  • Grafana链接iframe嵌入Web前端一直跳登录页面的问题记录
  • RabbitMQ 延迟消息
  • 51单片机系列-按键检测原理
  • 【CSS3】css开篇基础(1)
  • 算法笔记(五)——分治
  • 【C++】多态(下)
  • C#基础(4)封装——成员方法
  • CSS文本格式化
  • 分层图 的尝试学习 1.0
  • 基于Python的自然语言处理系列(19):基于LSTM的语言模型实现
  • 51单片机的宠物自动投喂系统【proteus仿真+程序+报告+原理图+演示视频】
  • 【代码记录】多线程示例代码
  • C语言+单片机
  • docker -私有镜像仓库 - harbor安装
  • 10.4 Linux_并发_线程
  • 深入探讨 Docker:远程登录与镜像管理
  • C++容器之list基本使用
  • 上海我店:创新模式引领本地生活新风尚
  • c#使用winscp库实现FTP/SFTP/SCP的获取列表、上传和下载功能
  • 大数据比懂知识点:Parquet、ORC还是Avro作为数据存储格式,哪种在性能和压缩率上更优
  • 【C++二分查找 前缀和】1712. 将数组分成三个子数组的方案数|2078
  • 深入解析开源大模型的GPU资源需求与优化策略
  • 程序员如何通过专业与软技能提升核心竞争力
  • 特权访问管理阻力最小的途径
  • 付费计量系统通用功能(9)
  • 企望制造ERP系统存在RCE漏洞
  • UniVue大版本更新:UniVue2.0.0-preview
  • 10月2日笔记(内网资源探测篇)
  • 前端的全栈混合之路Meteor篇:运行在浏览器端的数据库-MiniMongo介绍及其前后端数据实时同步示例
  • 矩阵系统源码搭建,OEM贴牌,源头技术开发