起因是因为在跑SAT这个项目的时候提到了torchrun,但是因为本人日常习惯在Pycharm debug,并且是远程连接服务器,搜遍了全网没有找到如何在torchrun这种分布式训练下debug··· 又因为我尝试了网上大部分torch.distributed.launch 如何调试的帖子,都没有用。所以浅浅记录一下
首先,你需要连接服务器,这个就不赘述了。
我需要debug的sh命令是这样的:
torchrun \
--nproc_per_node=1 \
--master_port 1234 \
inference.py \
--rcd_dir 'demo/inference_demo/results' \
--datasets_jsonl 'demo/inference_demo/demo.jsonl' \
--vision_backbone 'UNET-L' \
--checkpoint 'path to SAT-Pro checkpoint' \
--text_encoder 'ours' \
--text_encoder_checkpoint 'path to Text encoder checkpoint' \
--max_queries 256 \
--batchsize_3d 2
这段的意思是说需要使用torchrun多GPU的方式启动运行inference.py,torchrun和inference.py后面紧接着是分别是这两个需要指定的参数
如何运行torchrun:
1. 找到torch.distributed下面的run.py文件,记住是在本地的位置。通常情况下我的办法是在import torch那里ctrl+点击torch就能够知道torch的init.py文件的位置
2. 右键,点击Open in,然后filepath,就可以顺利索引到torch文件的位置
3. 点击torch文件夹,找到旗下distributed文件夹,再找到run.py
4. 使用pycharm打开run.py
5. Edit Configuration run.py【注意这里Parameter其中的inference.py需要使用在服务器上的绝对路径,因为run.py和inference.py位置相差很远,不能用相对路径表示】
6. 然后debug run.py即可