pyskl源代码: https://github.com/kennymckormick/pyskl
开发环境: Pycharm远程Linux服务器
首先pyskl提供的训练脚本是写在dist_train.sh里的,而bash文件又不是很方便调试,所以直接调用写在bash中的命令。
打开dist_train.sh可以看到以下内容:
CONFIG=$1
GPUS=$2
PORT=${PORT:-29500}
MKL_SERVICE_FORCE_INTEL=1 PYTHONPATH="$(dirname $0)/..":$PYTHONPATH
python -m torch.distributed.launch --nproc_per_node=$GPUS --master_port=$PORT
$(dirname "$0")/train.py $CONFIG --launcher pytorch ${@:3}
调用dist_train.sh文件的命令:
bash tools/dist_train.sh {config_name} {num_gpus}
bash文件中的各个参数为:
config是配置文件,跟在train.py后面。
gpus是使用gpu数量,可以在参数nproc_per_node中设置。
port是进程端口号,可以在参数master_port中设置。
第四行是环境参数,在debug configurations的环境参数中设置(效果未知)。
第五行是python命令,调用分布式launch.py文件(现在改为使用run.py)。
第六行是train.py文件,参数-launcher默认pytorch,可忽略。
在pycharm配置步骤:
- 找到torch的分布式路径,建立软连接到pyskl项目中:
ln -s /home/usr/anaconda3/envs/python-37/lib/python3.7/site-packages/torch/distributed/ /home/usr/code/pyskl
# dist_train.sh中的launch.py就在该torch/distributed文件夹中
- 打开pycharm的Debug Configuration(右上角):
选择需要调试的xx.py脚本进行debug(或者鼠标右键脚本-debug xx.py)
Configuration -> Script path -> 选择本地的run.py(路径参考:D:Projectpyskldistributedrun.py)
Parameters输入 --nproc_per_node=2 --master_port=29510 D:Projectpyskltoolstrain.py D:Projectpysklconfigsstgcn++…joint.py
(joint.py中的dataset路径需要是ann_file=’/home/usr/code/pyskl/data/xxx/xxx.pkl’, work_dir=’/home/usr/code/pyskl/work_dirs/xxx’)
Environment variables输入PYTHONUNBUFFERED=1;CUDA_VISIBLE_DEVICES=0,1;MKL_SERVICE_FORCE_INTERL=1
Python interpreter选择当前项目的解释器
Working directory是D:Projectpyskldistributed - 打断点,debug。
需要注意的点是:Debug Configuration中的路径都是本地路径,脚本里面的路径是服务器中对应的路径。dist_test.sh同理。
最后
以上就是傲娇冥王星最近收集整理的关于pycharm中调试pyskl的训练脚本的全部内容,更多相关pycharm中调试pyskl内容请搜索靠谱客的其他文章。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复