pycharm 远程连接服务器并且debug, 支持torch.distributed.launch debug

news2024/12/23 4:34:32

未经允许,本文不得转载,vx:837007389

文章目录

    • step1:下载专业版本的pycharm
    • step2 配置自动同步文件夹,即远程的工程文件和本地同步
      • 2.1 Tools -> Deployment -> configuration
      • 2.2 设置同步文件夹
      • 2.3 同步服务器上代码到本地
      • 2.3 设置代码同步,Tools->Deploment->Automatic Upload Always
    • step3 配置解释器
      • 3.1 一般可以直接debug
      • 3.2 pytorch的分布式训练, 可以直接跑但是不能debug
      • 3.3 pytorch的分布式训练, 可以debug

step1:下载专业版本的pycharm


https://www.jetbrains.com/pycharm/download/other.html
首先,你需要有个专业版本的pycharm。什么ji huo 码可以私我,或者样例可以看这里链接。
https://www.cnblogs.com/yanghailin/p/17577621.html

step2 配置自动同步文件夹,即远程的工程文件和本地同步

我现在代码在远程服务器上。所以需要把远程服务器代码和我本地一个新建文件夹同步。
新建文件夹remote_0724_new并用pycharm打开,最新版本的pycharm2023.1.4打开空文件夹会自动新建一个main.py文件了。

2.1 Tools -> Deployment -> configuration

点左上角“+”,选择SFTP,随便命名一个server,“port_30975”

输入远程服务器ip,用户名密码端口号,并测试是否链接成功

2.2 设置同步文件夹


最右边的Excluded Paths是不需要同步的文件夹,比如数据文件夹等不需要同步。

2.3 同步服务器上代码到本地

这里打开多级设置,还不好截图了,只能手机拍照了。这里在文件夹上面右击如下:

最下面的File Transfer会显示传输日志信息

代码就同步过来了。

2.3 设置代码同步,Tools->Deploment->Automatic Upload Always

就是你pycharm本地修改的代码自动也在服务器上修改


这里图上下面Browse Remote Host点开,可以在侧边栏显示远程服务器的文件目录,也可以直接在侧边栏打开

代码同步功能需要自己测试一下,比如就在pycharm修改代码,看远程服务器上面代码有没有自己同步过来。

在最下面栏,Terminal然后^可以打开远程的终端,可以vim查看代码是否同步过来了。

step3 配置解释器

3.1 一般可以直接debug

File -> Settings->Project->Python interpreter->Add interpreter->On SSH

输入密码端口号用户等信息,然后next,然后第4步project director and python
这里我设置的是第二个system interpreter,我远程环境就是直接用的系统目录下的python的,没有用conda虚拟环境。
设置python的路径,可以在远程环境下which python看看用的哪里的python
sync folders还是设置的之前的本地和远程的同步文件夹

这里理论上可以运行debug远程服务器上代码了,但是我这个比较特殊,是运行的pyorch的分布式训练的代码。运行的指令是

python -m torch.distributed.launch --nproc_per_node=1 main.py

直接点运行会报错

/usr/bin/python /code_src_debug/main.py 
./logs/test

  File "/_src_debug/src/data.py", line 807, in compile_data
    train_sampler = DistributedSampler(traindata)
  File "/usr/local/lib/python3.6/dist-packages/torch/utils/data/distributed.py", line 65, in __init__
    num_replicas = dist.get_world_size()
  File "/usr/local/lib/python3.6/dist-packages/torch/distributed/distributed_c10d.py", line 625, in get_world_size
    return _get_group_size(group)
  File "/usr/local/lib/python3.6/dist-packages/torch/distributed/distributed_c10d.py", line 220, in _get_group_size
    _check_default_pg()
  File "/usr/local/lib/python3.6/dist-packages/torch/distributed/distributed_c10d.py", line 211, in _check_default_pg
    "Default process group is not initialized"
AssertionError: Default process group is not initialized

Process finished with exit code 1

这里需要格外的关注pycharm第一行给我们实际运行的指令

/usr/bin/python /code_src_debug/main.py 

3.2 pytorch的分布式训练, 可以直接跑但是不能debug

可以看到pycharm实际运行的指令少了分布式的那些指令,python -m torch.distributed.launch --nproc_per_node=1 main.py,所以加上:
Run ->Edit Configurations…,在Interpreter optiins:这栏填写-m torch.distributed.launch --nproc_per_node=1

点运行按钮,可以直接运行跑了!! 这回pycharm给出的运行指令是:

/usr/bin/python -m torch.distributed.launch --nproc_per_node=1 /code_src_debug/main.py 
./logs/test

3.3 pytorch的分布式训练, 可以debug

按照上面3.2,debug运行,报错

/usr/bin/python -m torch.distributed.launch --nproc_per_node=1 /root/.pycharm_helpers/pydev/pydevd.py --multiprocess --qt-support=auto --client localhost --port 60888 --file /code_src_debug/main.py  
Traceback (most recent call last):
  File "/root/.pycharm_helpers/pydev/pydevd.py", line 2016, in main
    setup = process_command_line(sys.argv)
  File "/root/.pycharm_helpers/pydev/_pydevd_bundle/pydevd_command_line_handling.py", line 146, in process_command_line
    raise ValueError("Unexpected option: " + argv[i])
ValueError: Unexpected option: --local_rank=0
Usage:
	pydevd.py --port N [(--client hostname) | --server] --file executable [file_options]
Traceback (most recent call last):
  File "/usr/lib/python3.6/runpy.py", line 193, in _run_module_as_main
    "__main__", mod_spec)
  File "/usr/lib/python3.6/runpy.py", line 85, in _run_code
    exec(code, run_globals)
  File "/usr/local/lib/python3.6/dist-packages/torch/distributed/launch.py", line 260, in <module>
    main()
  File "/usr/local/lib/python3.6/dist-packages/torch/distributed/launch.py", line 256, in main
    cmd=cmd)
subprocess.CalledProcessError: Command '['/usr/bin/python', '-u', '/root/.pycharm_helpers/pydev/pydevd.py', '--local_rank=0', '--multiprocess', '--qt-support=auto', '--client', 'localhost', '--port', '60888', '--file', '/code_src_debug/main.py  ']' returned non-zero exit status 1.

Process finished with exit code 1

分析: 可以看到现在debug模式pycharm给出的运行指令不一样了,

/usr/bin/python -m torch.distributed.launch --nproc_per_node=1 /root/.pycharm_helpers/pydev/pydevd.py --multiprocess --qt-support=auto --client localhost --port 60888 --file /code_src_debug/main.py  

经过一系列折腾,终于可以了,此处省略万字,

然后可以看到pycharm给出的debug的运行指令:

/usr/bin/python /root/.pycharm_helpers/pydev/pydevd.py --multiprocess --qt-support=auto --client localhost --port 50009 --file /usr/local/lib/python3.6/dist-packages/torch/distributed/launch.py --nproc_per_node=1 main.py 
Connected to pydev debugger (build 231.9225.15)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/801137.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【Docker】初识Docker以及Docker安装与阿里云镜像配置

目录 一、初识Docker 二、安装Docker 三、Docker架构 四、配置Docker镜像加速器 一、初识Docker Docker是一个开源的应用容器引擎&#xff0c;诞生于2013年&#xff0c;基于Go语言实现&#xff0c;dotCloud公司出品&#xff0c;Docker开源让开发者打包他们的应用以及依赖包到…

SpringMVC-mybatis,SQL语句中误用了desc关键字,导致报错。

17-Jul-2023 21:26:22.295 淇℃伅 [RMI TCP Connection(2)-127.0.0.1] org.apache.catalina.core.ApplicationContext.log 1 Spring WebApplicationInitializers detected on classpath 17-Jul-2023 21:26:22.621 淇℃伅 [RMI TCP Connection(2)-127.0.0.1] org.apache.catalin…

TOP命令参数详解

非常详细的top命令介绍&#xff0c;感谢网友分享&#xff0c;参考地址如下 1、TOP命令参数详解---10分钟学会top用法 - 知乎 摘录几个之前不常用的&#xff0c;可能会用到的命令&#xff1a; 1、MEM vs SWAP 第四第五行分别是内存信息和swap信息&#xff0c;所有程序的运行都…

计算机网络网--应用层

目录 应用层概述1.进程通信2. 供应用程序使用的运输服务3.因特网提供的运输服务 一.网络应用模型1.1 C/S模型&#xff08;client/server&#xff0c;客户/服务器模型&#xff09;定义工作原理功能特点优势应用 1.2 P2P&#xff08;peer to peer&#xff09;模型 与 P2P文件分发…

Golang安装

目录 Go安装下载安装Go Go安装 下载安装Go 地址&#xff1a;https://studygolang.com/dl 1、根据系统来选择下载包。 2、我是Window&#xff0c;所以直接下载windows的安装包来安装。 3、在控制台窗口输入“go version”可查看Go版本&#xff0c;检测是否安装成功。 4、配置…

浅谈es5如何保证并发请求的返回顺序

最近在公司实习写的是es5&#xff0c;在和回调地狱经过一番拉扯之后写下这篇文章&#xff0c;也算是体验了一把没有promise的时代 假设我们的div有一个日历列表&#xff0c;但是由于大小关系只能每次显示2天的信息&#xff0c;项目限制只能使用es5&#xff0c;不能使用es6的pro…

WMS是什么意思,WMS有什么功能

阅读本篇文章&#xff0c;您可以了解到&#xff1a;1、WMS的定义&#xff1b;2、WMS的功能&#xff1b;3、WMS的好处&#xff1b;4、WMS的未来。 一、WMS的定义 WMS全称为Warehouse Management System&#xff0c;即仓库管理系统&#xff0c;是一种用于管理和控制仓库操作的软…

Java 中的 ArrayList 和 LinkedList

一、Java 中的列表 1.1 介绍 列表是一种数据结构&#xff0c;为了方便理解&#xff0c;我们可以认为它是动态的数组。众所周知&#xff0c;数组的大小在定义的时候就固定了&#xff0c;不可改变&#xff0c;那么它就无法存储超过它容量的数据&#xff0c;而列表的容量是无限大…

OSI 7层模型 TCPIP四层模型

7层模型&#xff1a; 各层的用途&#xff1a; 应用层&#xff1a;实现各应用之间信息交换的服务&#xff0c;定义了各个应用传输信息格式&#xff0c;即&#xff0c;定义了传输信息的协议&#xff08;如Web应用的传输信息协议 HTTP、远程登录协议Telnet、安全的网络传输协议SS…

机器人制作开源方案 | 可变式智能正姿椅

作者&#xff1a;吴菁菁 徐乐 张志强 单位&#xff1a;河海大学 指导老师&#xff1a;施敏虎 赵建华 一、作品简介 1. 作品介绍 久坐本身及其导致的各种错误坐姿行为常常会引发一系列健康问题&#xff0c;不利于人体健康。 椅子作为人在久坐状态下与人体接触时间最长的工具则…

【Unity实用插件篇】| A* Pathfinding Project - A*寻路插件 的使用教程

前言【Unity实用插件篇】| A*寻路插件学习使用一、A*算法 简述二、A* Pathfinding Project 介绍2.1 A* Pathfinding Project 功能2.2 相关链接2.3 标准版和Pro版区别2.4 A* Pathfinding Project Free与Navigation的对比三、快速搭建一个自己的场景测试寻路3.1 寻路场景搭建3.2 …

大型系统的任务调度模块实现思路

产品需求&#xff1a;需要一个任务调度模块&#xff0c;用户可以通过页面去新建任务&#xff0c;任务主要就是定时发送邮件&#xff0c;或者每周几去发送邮件&#xff0c;用户可以自定义发送的规则&#xff0c;且用户可以暂停任务、删除任务&#xff0c;也能知道任务的执行情况…

查找-多路查找详解篇

多路查找树 多路查找树&#xff08;Multway Search Tree&#xff09;是一种高级的树形数据结构&#xff0c;它 允许每个节点有多个子节点&#xff08;通常大于等于2&#xff09;。多路查找树的每个节点 可以存储多个关键字和对应的值。分类 2-3树&#xff08;2-3 Tree&#x…

红队打靶,红日系列,红日靶场5

文章目录 靶场详情外网渗透端口扫描漏洞发现与利用获取shell 内网渗透提权内网信息收集 横向移动上线msf路由转发与代理通道Psexec 攻击 靶场详情 此次靶场虚拟机共用两个&#xff0c;一个外网一个内网&#xff0c;用来练习红队相关内容和方向&#xff0c;主要包括常规信息收集…

Eurographics 2023最新综述:图形学中的神经-符号模型

随着 CVPR 2023 Best Paper 的公布&#xff0c;其中一篇名为 VISPROG 的工作引起了广泛关注。这项工作利用自然语言指令解决复杂且组合性的视觉任务&#xff0c;重新将神经-符号方法带回了人们的视野&#xff0c;并证明了计算机视觉社区对这种方法的认可。实际上&#xff0c;VI…

Unity自定义后处理——用偏导数求图片颜色边缘

大家好&#xff0c;我是阿赵。   继续介绍屏幕后处理效果的做法。这次介绍一下用偏导数求图形边缘的技术。 一、原理介绍 先来看例子吧。   这个例子看起来好像是要给模型描边。之前其实也介绍过很多描边的方法&#xff0c;比如沿着法线方向放大模型&#xff0c;或者用Ndo…

数据结构和算法——排序算法的比较和排序综测测验

目录 排序算法的比较 排序综合测验 快又稳定 元素错位 有序排序 排序结果 排序算法的比较 排序方法平均时间复杂度最坏情况下时间复杂度额外空间复杂度稳定性简单选择排序不稳定冒泡排序稳定直接插入排序稳定希尔排序不稳定堆排序不稳定快速排序不稳定归并排序稳定基数排…

SCT2632——65V输出3A非同步整流DCDC转换器

SCT2632是一款3A降压转换器&#xff0c;具有宽输入电压&#xff0c;从4.2V到60V&#xff0c;集成了220mΩ高压侧MOSFET。SCT2632采用峰值电流模式控制&#xff0c;支持脉冲跳过调制&#xff08;PSM&#xff09;&#xff0c;以帮助转换器在轻负载或待机状态下实现高效率条件。SC…

矿用人员定位系统在矿山事故预防中的效果评估

矿业行业的高风险和复杂环境使得采矿安全成为一项重要的挑战。为了保障矿工的安全并减少事故风险&#xff0c;矿用人员定位系统成为了关键技术之一。 在这篇文章中&#xff0c;华安联大便和大家各位朋友一起探讨矿用人员定位系统的重要性、工作原理、作用&#xff0c;并通过真…

Packet Tracer - 配置和验证 NTP

Packet Tracer - 配置和验证 NTP 地址分配表 设备 接口 IP 地址 子网掩码 N1 NIC 209.165.200.225 255.255.255.0 R1 G0/0 209.165.200.226 255.255.255.0 R2 G0/0 209.165.200.227 255.255.255.0 目标 在本练习中&#xff0c;您将在 R1 和 R2 中配置 NTP 以…