背景
跑深度学习的model需要用到GPU加速,而自己电脑却是核显,无法使用GPU加速运算,需要连接到学校的服务器上运行代码。
pycharm专业版才支持服务器的连接,社区版不提供这个功能。假定已经安装了专业版的pycharm,而且服务器上的anaconda环境已经搭建完成。
一、新建SFTP
在专业版pycharm中:Tools -> Deployment -> Configuration...
这时会出现下面窗口:
因为我之前已经连接服务器了,所以有一个lab_server项,不影响我们接下来的操作。点击就"+"新建一个SFTP,并命名为demo(根据个人喜好),SFTP是为了将本地文件传到服务器上,毕竟模型是要到服务器上训练的:
点击 ==SSH configuration== 旁边的三个点,并新建SSH configuration:
==Host== 就是你服务器的ip地址,注意端口号。==User name== 就是登录服务器的用户名(一般来说学校的服务器是。多人使用的,每个人有自己的用户名和密码,用户名为root是管理员的权限了),==Password== 就是你用户名对应的密码。这些项填写完成后,点击 ==Test Connection== 按钮测试是否能连接,连接成功会出现相应的弹窗:
若连接失败,就要排查ip地址,端口号,用户名和密码的正确性,并且要保证你电脑处于联网状态。除此之外,学校的服务器可能需要用内网访问,要挂上学校的VPN。
接下来要配置 ==Mappings== ,==Local path== 是你本地项目的路径,==Deployment path== 是你想上传到服务器的路径:
==Exclude Paths== 是设置不想上传到服务器的文件的路径。
二、配置解释器
因为要用到服务器上的python解释器,需要配置解释器,依次进入:File->Settings->Project->Project Interpreter:
点击add添加解释器,如果是第一次连接远程服务器,那么你pycharm里面保存的解释器列表中就不会出现远程解释器的选项。选择 ==SSH Interpreter== 项,选择 ==Existing server configuration== ,点击旁边的"...",选择我们之前创建的demo。
点击"OK"后,正常情况下是可以点击"Next"按钮,但是当创建的demo第一次被使用时Pycharm会提示需要将其加入"IDE setting"中,按照提示的要求来就行。我们点击"Next"后开始选择服务器上的解释器,所以需要对服务器上的文件路径比较熟。
这里有两项需要我们完成,一个是 ==Interpreter== ,就是我们需要使用到的python解释器,一般我是用 ==anaconda== 来对虚拟环境进行管理,所以python解释器会在anaconda目录下。另外,与windows不同,linux系统下anaconda将虚拟环境的python解释器放在 ==bin== 文件夹里面。
另一个就是要完成文件映射关系,这里我不是太懂,之前在配置mappings时已经配置了文件映射关系,但是在这里再配置一遍后并不会报错。
完成文件映射,我个人习惯喜欢用 ==sftp== 软件直接将项目文件传送到服务器上,然后选定文件夹即可。点击"Finishi"完成配置工作,这时你可以看到服务器上虚拟环境中安装的包都可以在Package中查看到。
点击运行时会发现控制台的解释器已经更换成你服务器端的python解释器:
三、文件更新
在调试代码时难免会更改代码,要想本地代码和服务器代码保持一致,可以勾选:Tools->Deployment->Automatic Upload(always),每次修改后ctrl+s保存代码时会自动更新到服务器上。
可以在"File Transfer"处查看文件上传的历史记录:
若是无法自动上传,也可以用sftp软件连接服务器,直接把文件拖进去也可以。
三、错误记录
点击运行报错无法在服务器找到对应文件,但是确实已经成功上传了项目文件,可能是因为你多个项目用了同一个服务器的虚拟环境,可以在pycharm的配置解释器的地方删除多余的解释器即可。