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只是一个窗口。
相关推荐
say_fall5 小时前
【Linux网络编程】UDP套接字编程:系统编程组件、基础回显服务、InetAddr与地址转换、翻译服务与线程池聊天室
linux·服务器·网络·udp·vr
2601_967980116 小时前
世界上最好的Python编辑器是什么?我投PyCharm一票
ide·python·pycharm·数据科学·jupyter notebook
江湖有缘6 小时前
基于Ubuntu部署SoduWork:企业级 AI 原生协同平台实战全流程
linux·人工智能·ubuntu·ai·soduwork
无奈笑天下15 小时前
银河麒麟上nproc命令教程详解
linux·运维·服务器
承渊政道18 小时前
【Python编程—从入门到实践】(记分与闯关:用Python+Pygame,打造越战越精彩的太空大战!)
开发语言·python·pycharm·游戏程序·pygame
火云代理18 小时前
更换网络后为什么会退出登录?分清 IP、Cookie 与会话的关系
服务器·网络·网络协议·tcp/ip·php·ip
威嵌神州19 小时前
嵌入式排故实录:高并发下串口数据“超时丢包”的根因剖析与架构优化
运维·服务器·嵌入式硬件·缓存
火云代理1 天前
同一个网站,有的网络能打开、有的打不开?认识 IPv4 与 IPv6 的访问差异
服务器·网络·网络协议·tcp/ip·测试工具·php·状态模式
坤坤子吖1 天前
Linux网络编程:TCP 粘包与半包问题,如何正确处理 TCP 流式数据?
linux·服务器·网络·笔记·网络协议·学习
星恒随风1 天前
MySQL 从零入门(六):复合查询详解——多表查询、自连接、子查询与 UNION
linux·服务器·数据库·mysql