Pycharm和Vscode是最受欢迎的Python编辑工具,这边文章就主要讲解Pycharm的使用,包括Pycharm连接远程服务器、Pycharm运行深度学习模型以及Pycharm的使用总结。
大家在实际的学习工作中都可能会遇到这种情况:自己的轻薄笔记本没有显卡,或者显卡性能过低,在运行深度学习项目的时候很浪费时间。如果大家所在的实验室或者单位有用于深度学习的服务器的话,那么就积极地去使用这些资源吧,毕竟服务器的显卡算力要远远高于笔记本的显卡算力的,下面就介绍一下Pycharm如何连接远程服务器。
Deployment英文名称为部署,在pycharm中就是将本地的Python项目文件部署到服务器那个文件夹中。
(1)首先点击file->settings->Build, Execution, Deployment->Deployment打开部署页面,点击加号,选择SFTP,并在弹出的对话框输入部署的名称(这个名称可以随便起)。
(2)接下来是对右边箭头指向的两部分内容(连接和映射)进行配置。
Connection配置主要配置SSH configuration,点击SSH configuration之后,在弹出的面板进行配置,配置内容说明:
Host 为服务器的访问路由,输入你的服务器IP即可。
User name 为你在该服务器上分配的用户名。
Authentication type 未认证方式,我这里选择Password。
Password 你的用户名对应的密码。
其余的保持下图所示即可。
Mappings配置本地和远程服务器对应的文件夹映射关系(因为你要把本地代码在服务器上运行,服务器上肯定需要映射你的本地代码),这里可以首先在服务器创建一个文件夹用于映射本地的文件。
Local path 表示本地的文件夹路径。
Deployment path 表示要映射到服务器上的文件夹路径。
Excluded Paths 为不进行映射的文件(可能在你的项目中,你不想让一些文件映射到服务器上,你可以在这里设置,由于我没有用到,因此这里不做配置)。Connection和Mappings配置完成之后,点击ApplyDeployment配置就OK了。
(1)点击 file->settings->Project->Python Interpreter,进入Python翻译器选择界面:
(2)点击右侧的设置图标,点击Add,进入Python翻译器添加界面,选择其中的SSH:
(3)选择New server configuration,Host和Username分别是上面提到的服务器Ip地址和你在该服务器上分配的用户名,填写之后点击Next。
(4)输入密码,点击Next。
(5)进入选择Python解释器页面。
这里主要配置两个内容 Interpreter和Sync folders
Interpreter 指的是你要是用的服务器上的Python环境,我这里使用的是服务器上anaconda安装的pytorch1.10环境。
Sync folders指的是本地项目和服务器端项目的映射,我这里选的和Deployment配置步骤的服务器端项目文件夹一致。
配置完成之后点击Finish
进入项目Run/Debug的配置页面,在configuration面板中,可以看到Python Interpreter选项,点开之后发现我们刚刚配置的远程Python环境已经在里面了,选中该环境。
再运行项目的时候,查看Run的日志输出,发现项目已经在远程服务器上运行了。
注意,每次在pycharm上更改完代码之后都需要将更改上传到服务器上,否则服务器不会运行你在pycharm上做的更改,上传到服务器上的方法如下图所示:
运行深度学习项目通常首先需要配置环境,然后下载需要使用到的数据集,并将数据集放置于合适的位置,最后是配置项目运行的各种参数。
现在常用的深度学习框架有TensorFlow和Pytorch两个,可以根据自己的情况选择安装任何一个合适版本的深度学习框架,深度学习环境现在通常使用anaconda创建,这里就不详细展开环境如何搭建,如果大家感兴趣,我可以后期出一个环境搭建的教程。
如果你要复现一篇定会的论文,你首先要找到该论文使用的数据集,然后查询数据集下载方法,将下载好的数据集放置到合适的位置,并修改模型内的参数,去使用该数据集。数据集下载的方法以及难度因其本身而异,这里也不再展开。
(1)如果在Windows系统上运行,最简单的方式就是在pycharm运行项目的时候配置参数,在项目Run/Debug的配置页面进行参数配置。
点击Parameters最右侧的图标,进入参数编辑页面,在该页面将项目需要配置的参数进行添加即可:
添加完成之后点击运行,项目就能成功跑起来。
(2)如果在Linux服务器上运行,通常会指定一个配置文件或者一个可执行的.sh文件,通过运行该配置文件的方式就能顺利启动该项目。
上图展示了一个项目的JSON格式的配置文件,在该文件中对项目需要的所有参数进行配置,运行的时候使用该配置文件即可,下面代码是在jupyter上执行的,在启动项目的时候,携带参数config,这个config对应的是参数配置的JSON文件的路径,通过这种方式为项目进行参数配置。
%run main.py --config ./config/conll03.json
当然也可以通过一个.sh文件更方便进行项目参数配置和启动:
下图展示一个项目的.sh配置文件,该配置文件对项目参数进行了配置,而且对项目数据集的使用也进行了处理,非常方便,在Linux服务器里,cd到该.sh文件所在的目录,然后使用./run_mtmner_crf.sh即可运行项目。
我们都知道快捷键能够有效提高开发效率,所以首先讲解一下Pycharm好用的快捷键,后续会持续更新
// 在当前文件搜索(字符串)
ctrl+f
// 在当前项目所有文件搜索
ctrl+shift+f
// 替换字符串
ctrl+r
// 智能提示,对报错信息以及引用信息进行智能提示
alt+enter
// 任意位置换行,无论光标是不是在该行的末尾,使用shift+enter均能实现换行
shift+enter
// 复制当前行到下一行
ctrl+d
//剪切当前行
ctrl+x
//删除当前行
ctrl+y
//查看函数的参数信息
ctrl+p
//包裹代码
ctrl+alt+t
//单行注释和块注释
ctrl+/ ctrl+shift+/
// 逐步选择代码
ctrl+w
//逐步取消选择代码
ctrl+shift+w
//代码格式化
ctrl+alt+l
//代码向后缩进
tab
//代码向前取消缩进
shift+tab
// 运行代码
shift+f10
// 调试代码
shift+f9
调试是在程序设计过程中非常重要的方法,很多初学者往往使用print打印输出,忽略了调试的作用,实际上,学会调试才更有利于对程序的掌握
调试的过程
1、打断点
2、以调试的方式运行程序
3、在调试中具体查看程序运行的各个变量的信息
常用的调试操作有step over、step into、step out、Resume program六种。
step over(F8):如果在单步执行时遇到子函数,则将子函数作为一步,运行完再停止,在没有子函数的情况下和step into一样。
step into(F7):如果有子函数,跳入子函数再执行。
step into my code (alt+shift+F7):遇到子函数就进入,并继续单步执行,但不会进入源码中(让debug回到自己的代码中)。
step out(shift+F8):跳出当前函数体
Resume program(F9):继续恢复程序,直接运行到下一个端点处。
这个模块以后会记录自己在使用pycharm中遇到的问题以及解决方法,方便后续查看解决问题。
这篇文章主要讲解了Pycharm连接远程服务器,Pycharm运行深度学习项目以及Pycharm的使用总结,使用总结目前包括两部分:Pycharm好用的快捷键总结和Pycharm调试总结。以后会持续更新pycharm使用总结和错误解决办法。