Ubuntu服务器+win10+PyCharm远程深度学习开发

文章目录

目标与思路

  • 目标场景:项目代码以及数据集在Ubuntu远程服务器上,使用ssh和sftp协议连接服务器,在个人电脑上进行远程编辑、调试与运行,并使用远程的资源,包括GPUs和CPU以及内存等。
  • 本人使用PyCharm较为习惯,之前有过使用vscode在较大C++项目上出问题的情况,所以偏向于使用P有Charm,注意如果要使用remote功能,需要专业版PyCharm(去某宝)。但是PyCharm在实现上述场景时需要本地有代码备份(不需要数据集备份)。

Ubuntu服务器

  • 服务器通过ssh连接+用户名+用户密码,需要注意,要么使用校园vpn或者在校园网内,记住服务器ipv4地址,如果出现连接不上,但是能ping服务器的情况,可能是服务器端没有安装sshd(ssh server,记得安装并开启服务)。
  • 每个人的个人用户没有权限查看其他用户的文件,也没有root权限,所以无法安装一些ubuntu包,但是可能的解决方案是找到pypi中可替代的包,比如实时监测服务器显卡资源占用情况的NVITOP。
  • 每个用户自己安装一个conda(miniconda比较合适)

Win10

  • 我希望使用win10系统,借助PyCharm完成深度学习或者其他python项目的开发,首先需要安装专业版PyCharm(某宝),随后进行ssh configuration ,然后Deployment → \rightarrow →Remote host , 选择相应的ssh configuration并配置mapping。至此如果一切正常,则你可以访问到远程的文件资源,并且由于设置了路径映射,所以你可以进行项目文件同步,并且值得一提的是,不要吧数据集同步,因为数据集太大,如果批量修改了文件,那么会很麻烦,需要时间太长,并且在本地端存数据集太不优雅了。注意设置Tools → \rightarrow →Deployment → \rightarrow →Options → \rightarrow →设置自动同步。
  • 关于PyCharm我还有些自己喜欢的配置:设置free distraction mode(View → \rightarrow →Appearance),并且去除不常用的side bars和main menu中不需要的选项,在进入free distraction mode之后,代码编辑框的left margin会很大,可以进入setting设置。
  • 此时通过Tools可以开启SSH session terminal,可以进行代码运行等操作,创建好自己的conda环境。但是无法单步调试,考虑到我们需要需要使用远程资源并且调试,我们需要设置remote interpreter(设置ssh interpreter,找到conda目录下envs中你自己环境的python,将其设置为你的remote interpreter)。
  • 此外,PyCharm的remote terminal可以用,但是推荐再装一个专门做连接的软件Mobaxterm,传文件之类的会比较快,可以常开一个监控GPUs资源占用的窗。
  • 使用ssh terminal时,有个小技巧是,有时候网络不稳定会导致terminal断开连接,此时东西都丢失了,这时可以使用类似于screen之类的终端复用器,让终端在远程运行,而本地开的terminal只是一个窗口。
相关推荐
wdfk_prog1 分钟前
Wi-Fi Direct 源码分析(11):P2P-GROUP-STARTED 之后——Group Interface、IP 配置与真实数据通路
运维·服务器·网络协议·tcp/ip·asp.net·p2p·wifi-direct
MicrosoftCloud7 分钟前
用户权限 02|/etc/passwd、/etc/shadow、/etc/group:三个文件讲透 Linux 用户体系
linux·运维·ubuntu·用户管理·权限·useradd
崽崽..13 分钟前
【Linux】ping命令刨析
linux·运维·服务器·网络
沫璃染墨31 分钟前
《从零入门Linux系统篇(五十六):线程篇·九——生产者消费者模型:从条件变量到BlockingQueue实现》
linux·服务器·c++·驱动开发·设计模式·架构·系统架构
张小姐的猫34 分钟前
【Linux】网络编程 —— 五种IO模型
linux·运维·服务器·网络·c++·人工智能·php
程序员-Benothing35 分钟前
Shell脚本调试与最佳实践:set -eux、shellcheck实战
linux·运维·服务器
qetfw1 小时前
Debian iSCSI Target 与 open-iscsi:LVM 后端、ACL 与客户端验证
linux·服务器·debian·php
谷哥的小弟1 小时前
Linux服务器网络服务与端口
linux·运维·服务器·端口
Mortalbreeze2 小时前
MySQL 基础篇(四):表的约束
linux·服务器·数据库·mysql