基于学校的K8s平台,在本地 PyCharm IDE 上使用远程服务器的 Python 解释器和环境进行调试和运行。
准备工作
K8s平台账号
Pycharm专业版
远程服务器
创建容器
登录学校的K8s系统平台,点击左侧导航栏中的机器学习容器管理创建容器
按照要求填写方框中内容,完成后点击创建容器。
注:
- 镜像可以选择平台公开的三个镜像,也可以在镜像市场中搜索同学上传过得镜像。
- 数据卷默认选择GPFS共享卷,容器内部路径设置为/data。
- 填写好数据卷后一定记得点一下蓝色➕进行数据挂载。
端口映射
创建完容器后,我们需要对容器端口进行映射,点击左侧导航栏中的机器学习校园访问创建端口映射
按照要求填写方框中内容,完成后点击创建。
注:
- 名称一般命名为容器名-ssh。
- 在容器一栏选择刚刚所创建的容器。
- 记录下校园IP和校园端口,在pycharm配置中会用到
本地
安装pycharm专业版
- 在Pycharm官网下载Pycharm专业版并安装。
- Pycharm专业版为收费软件,可以用学校邮箱激活免费用1年,到期后可以再续,具体教程可自行百度。
配置解释器
打开Pycharm专业版中项目解释器配置框
- MAC:点击上方导航栏中PyCharmPreferencesProject:项目名Project interpreter
- Windows:点击上方导航栏中FileSettingsProject:项目名Project interpreter
mac中窗口
点击图中右上角红框中的按钮,选择AddSSH interpreter
- Host填写之前记录的校园IP,port填写校园端口
- Username填写root
点击Next
- Password为容器密码,默认1234
点击Next
- Interpreter填写Python所在路径,可在K8s平台中容器管理,点击容器详情,在容器内命令行界面输入以下代码查看
whereis python
- Sync folders为文件夹映射路径,点开后左边选择所要上传项目所在路径,右边点开在服务器上挂载数据卷的文件路径(/data),在该路径下创建自己的文件夹(例如wwb),选择映射数据到该文件夹路径(即/data/wwb)。
- Automatically upload project files to the server选项可以不勾选,勾选后会自动上传项目文件夹的所有内容
配置完成后,应用所配置的远程解释器
数据显示
- 点击上方导航栏中ToolsDeploymentConfiguration,会出现刚刚配置过的解释器的SFTP,将其中ConnectionRoot Path改为映射在远程服务器上自己存放数据的路径(即/data/wwb)。
- 点击ToolsDeploymentBrowse Remote Host,会在右侧出现Remote Host,点击下方小箭头,选择刚刚配置的SFTP,即可看到在远程服务器端我们存放的数据。
运行,上传,下载
- 点击本地的py文件,右键点击run即可。直接run对远程服务器上的py文件会报错。
- 每次本地文件进行更改后,都要右击该文件,点击DeploymentUpload to,选择自己的server对更改后的文件进行上传,否则run的时候服务器运行的还是没有更改的旧文件。不能直接对远程文件进行修改,会报错。
- 上传的时候可以上传单个文件,也可以上传整个文件夹,但是注意空文件夹无法直接上传。可以直接在Remote Host所需创建文件夹的路径下右击,点击New创建。
- 通过运行代码保存的文件会保存在服务器端,需要右击该文件,点击Download from here下载到本地。如果在服务器端不显示,点击刷新按钮刷新目录。
- 用matplotlib画图时,用plt.show()在远程服务器无法看到所画的图片,可以使用plt.savefig()将图片保存在远程服务器,再下载到本地。
- 运行文件时,记得在run窗口查看是否用了远程解释器。如果没有使用,可以点击上部导航栏中运行按钮左侧的小箭头,点击Edit Configurations,查看Python interpreter是否选择了远程解释器。
- 第一次应用解释器的时候需要更新,速度会很慢,耐心等待即可
错误及解决方案
- CUDA out of memory
解决方案:该错误为GPU显存不足。可以尝试减小代码参数,降低Batch Size大小或者换更大显存的GPU。
网友评论