一般方式
lunch.json文件
1 | |
因为是分布式训练,会起多个进程同时进行train,因此这里我们可以看到左边有多个子进程,我们可以单独对每个子进程进行debug

attach + debugpy
第一种
- 在lunch.json中加入这一段,使用attach的方式进行调试
1 | |
- 然后下载debugpy
1 | |
- 在入口代码中添加上这段代码
1 | |
之后使用命令启动的时候,左边的调试那里启动调试连接到9501端口就行,这种方式会比较方便,不过需要临时在代码中加入上面的这段代码
因为分布式训练的时候会开多个子进程,有时候需要对多个进程同时调试,但是这种添加代码的方式貌似不能对子进程调试,不知道是不是我哪里没设置好
因此我通常会使用命令行的方式来启动,而不是在入口中添加代码,如下所示,和上面的等价,但是这种方式可以对多个子进程进行调试
1 | |
第二种
第一种是debugpy来监听某个端口等待我们的调试客户端连接上这个端口
而第二种则是反过来了,调试客户端监听某个端口,debugpy来连接对应的端口
lunch.json中这样配置
1 | |
同样在代码中可以加入这样的代码
1 | |
然后我们首先vscode调试客户端先启动然后再运行代码即可,同样这种写在代码中的方式也不可以对多个子进程进行调试,因此我们同样可以使用命令行的方式,等价于上面的代码
1 | |
- 本文作者: leftover
- 版权声明: 本文版权归leftover所有,如需转载清标明来源!