电子商务网站问题与解决方案,创建全国文明城市活动,电商名字创意名称,传承网页设计公司launch.json文件如下cwd ${fileDirname}表示代码调试的根目录是当前你调试的文件#xff0c;也就是pretrain.py所在的目录。其他路径参数都是相对这个目录的
如果改成cwd ${workspaceFolder} 表示代码调试的根目录是打开的工… launch.json文件如下cwd ${fileDirname}表示代码调试的根目录是当前你调试的文件也就是pretrain.py所在的目录。其他路径参数都是相对这个目录的
如果改成cwd ${workspaceFolder} 表示代码调试的根目录是打开的工作目录也就是你vscode打开的工程文件夹的目录
program参数是是我们要运行的文件默认是program: ${file},也就是你要调试的文件本身
比如不调试分布式的话就是pretrain.py分布式的话要改成program: /root/miniconda3/lib/python3.10/site-packages/torch/distributed/run.py表示我们其实是要运行这个文件然后加入args参数把pretrain.py作为一个参数
注意pytorch1.9之后torch.distributed.launch 即将被废弃取而代之的是torch.distributed.run
https://www.cnblogs.com/tencent-cloud-native/p/15186403.html
而torchrun脚本就是torch.distributed.run的内容,所以在终端运行的话
python -m torch.distributed.run --nproc_per_node8 pretrain.py --config ./configs/Pretrain.yaml --output_dir output/Pretrain
和
torchrun --nproc_per_node8 pretrain.py --config ./configs/Pretrain.yaml --output_dir output/Pretrain
二者是等价的终端直接输入torchrun
rootautodl-container-115911b7ae-3dcde09d:~# torchrun
usage: torchrun [-h] [--nnodes NNODES] [--nproc_per_node NPROC_PER_NODE][--rdzv_backend RDZV_BACKEND] [--rdzv_endpoint RDZV_ENDPOINT][--rdzv_id RDZV_ID] [--rdzv_conf RDZV_CONF] [--standalone][--max_restarts MAX_RESTARTS] [--monitor_interval MONITOR_INTERVAL][--start_method {spawn,fork,forkserver}] [--role ROLE] [-m] [--no_python][--run_path] [--log_dir LOG_DIR] [-r REDIRECTS] [-t TEE][--node_rank NODE_RANK] [--master_addr MASTER_ADDR][--master_port MASTER_PORT]training_script ...
torchrun: error: the following arguments are required: training_script, training_script_args
rootautodl-container-115911b7ae-3dcde09d:~# which torchrun
/root/miniconda3/bin/torchrun 但vscode调试配置如下如果直接用program: /root/miniconda3/bin/torchrun也是可以的 name: Python: Current File, 可以改成 name: Python: torchrun 不过这个不影响只是调试窗口名字
{// 使用 IntelliSense 了解相关属性。 // 悬停以查看现有属性的描述。// 欲了解更多信息请访问: https://go.microsoft.com/fwlink/?linkid830387version: 0.2.0,configurations: [{name: Python: Current File,type: python,request: launch,program: /root/miniconda3/lib/python3.10/site-packages/torch/distributed/run.py,console: integratedTerminal,justMyCode: false,cwd: ${fileDirname},args: [--nproc_per_node1,pretrain.py,--config./configs/pretrain.yaml,--output_diroutput/Pretrain],// env: {CUDA_VISIBLE_DEVICES:0},}]
}
最后建议在每个工程都创建一个.vscode文件夹在里面建一个lanuch.json文件因为每个工程运行脚本肯定都不一样不要在/root目录搞一个.vscode文件夹不然你每次都是打开/root文件夹都要修改lanuch.json的内容每次VSCODE都只打开一个工程不要直接打开root目录