如何在pycharm中运行和调试torch分布式训练

这篇文章给大家介绍如何在pycharm中运行和调试torch分布式训练,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。

创新互联建站是一家专业提供乌翠企业网站建设,专注与成都做网站、网站设计、HTML5、小程序制作等业务。10年已为乌翠众多企业、政府机构等服务。创新互联专业网站设计公司优惠进行中。

现在很多深度学习研究开源代码都会使用pytorch框架,原因之一就是在torch中,只要你定义好了一个module,你就可以轻易的用  torch.distributed  将其应用到单机多GPU或者多机多GPU的场景中,加速模型的收敛速度。    

但是在所有github项目的readme中,都是仅给出了如何在命令行模式下使用分布式的方法。对于需要在  Pycharm或其他IDE  进行调试的研究者就不太适用。

环境

    PyTorch 1.1.0    PyCharm 2020.1

分析Readme参数设置

首先,我们需要查看项目的Readme文件是如何使用分布式训练的,以备后面将参数设置在Pycharm中。

python -m torch.distributed.launch --nproc_per_node=4 tools/train.py --cfg xxx.yaml

python -m torch.distributed.launch --nproc_per_node=4 表示调用  torch.distributed.launch    这个.py文件进行分布式训练;  --nproc_per_node=4  说明创建节点数为4,这个值通常与训练使用的GPU数量一致。
tools/train.py --cfg xxx.yaml 是真正的训练文件,后面的  --cfg xxx.yaml    是train.py 使用时需要给出的执行参数名称和值。

软链接distributed文件

通过对调用分布式的命令分析,我们首先需要找到  torch.distributed.launc  h  这个文件,并将它软链接到我们的Pycharm项目目录下。为什么使用软链接而不是直接复制呢?因为软链接不会变更文件的路径,从而使得  launch.py  文件可以不做任何改动的情况下去  import  它需要的包。
在Ubuntu中,通过以下命令创建软链接

ln -s /yourpython/lib/python3.6/site-packages/torch/distributed/ /yourprogram/

以上命令没有直接链接launch.py而是它的父目录distributed,是因为这样比较容易知道launch.py是一个软链接,不与项目中的其他文件混淆。

设置Pycharm运行参数

打开Pycharm,依次点击Run->Edit Configurations 进入参数配置界面:

如何在pycharm中运行和调试torch分布式训练

如何在pycharm中运行和调试torch分布式训练

只需要配置Script path为launch.py路径;Parameters为launch.py运行参数,参考命令行调用的方法,设置如下。


--nproc_per_node=4tools/train.py --cfg xxx.yaml
通过以上步骤就可以在Pycharm中运行分布式训练了。  不过,如果是在调试模型最好还是修改一下trian.py文件,通过单GPU方式调试,并不是说分布式模式不能调试,仅仅是因为在单GPU方式下,对于数据流更好把控,减少调试时间。

关于如何在pycharm中运行和调试torch分布式训练就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。


标题名称:如何在pycharm中运行和调试torch分布式训练
分享URL:http://pwwzsj.com/article/peepsd.html