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

v2-04e9082793a06127be44c79cbf1fbfe8_1440w.jpg?source=172ae18b

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

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

环境

  • PyTorch 1.1.0
  • PyCharm 2020.1

分析Readme参数设置

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

python 

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.launch这个文件,并将它软链接到我们的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 进入参数配置界面

v2-caf316af628461d33038acf3f0745642_b.png

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

--nproc_per_node=4 
tools/train.py --cfg xxx.yaml

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

  • 4
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
PyCharm出现"No module named 'Torch'"的问题通常有两种可能的原因。首先,可能是因为你没有安装PyTorch。你可以通过运行conda create -n pytorch python=3.8来创建一个基于Python 3.8的conda环境,并安装PyTorch。这样可以确保你的环境PyTorch可用。 另一种可能是你没有将Anaconda环境导入到PyCharm。确保你在PyCharm正确配置了Anaconda环境。你可以在PyCharm设置找到Anaconda环境,并将其与你的项目关联起来。这样PyCharm就能够正确地引用Anaconda环境的库和模块。 如果你遇到了"No module named 'matplotlib'"的问题,可以尝试运行conda install matplotlib命令来安装matplotlib。这样可以确保你的环境有matplotlib库可用。 总结起来,要解决在PyCharm出现的PyTorch相关问题,你需要确保已经安装了PyTorch,并正确配置了Anaconda环境。如果遇到其他缺少模块的问题,你可以使用conda命令安装所需的模块。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *3* [Pycharm安装pytorch](https://blog.csdn.net/weixin_45081871/article/details/127112798)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *2* [pycharm配置pytorch](https://blog.csdn.net/qq_41511783/article/details/124454132)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值