使用SSH连接远端服务器训练
1. 租用机器
DeepShare平台:https://gpu.deepshare.net/home
选择一个有你需要环境的机器
先租用CPU上传代码,配置环境,再转换为GPU以节省资费(质押可以不花费DBC,可以一直白嫖Linux环境)
租用CPU(至少30G空间)
支付订单(支付完要点击已支付)
2. 使用CPU容器配置环境
根据收到的邮件信息,连接服务器(终端),jupyter(没啥用开着吧)和网盘(用于传输文件,可能会比pycharm传输快)
打开网盘,将压缩后的工程文件上传到网盘
连接终端,可以使用conda命令查看环境和包
连接一下jupyter
输入命令,找一下路径
显然我们刚刚把文件放在上一级目录了,后面就可以用终端操作了
先解压文件
打开pycharm
然后创建一个远端python解释器
配置SSH,然后测试一下,没有问题就确认
对应到邮件信息:
根据邮件设置python解释器在服务器的路径,并且设置工程映射路径
也可以看一下远端是否同步工程文件(配置SSH解释器的同时会自动生成deployment配置)
然后就可以使用CPU跑一下代码看看代码有没有问题啦(batch不能太大,内存只有3G,超过会杀进程,没有问题就行)
若有时候发现同步有问题,即没有你上传的文件,需要删除所有配置然后从头来一遍,我也不知道是什么bug
3. 转用GPU容器训练模型
开启GPU
支付订单(时间尽量久一点,多了可以退,少了也能续)
然后就可以在终端查询到GPU信息了,使用命令 watch -n1 nvidia-smi
再转回pycharm训练即可
batch设置为12就把8G的显卡塞满了,可怕
4. 监控训练进程
使用tensorboard,输入命令 tensorboard --logdir=./runs(注意,一定要登陆服务器后进行,不然就是憨批)
再打开邮件中的tensorboard网址即可(我就失败了,打不开,也可以选择隔一段时间从服务器下载even文件在本地打开)
5. 挂后台训练
睡了一觉发现pycharm挂掉了(电脑休眠断网)
调试用pycharm,训练直接在screen挂后台训练
使用screen命令后台运行,不要在pycharm里面训练
使用命令 screen -ls 查看当前所有任务
使用命令 screen -S session_name 创建一个新的后台
attached表示已经连接上后台
使用命令 exit 退出并删去当前后台
使用命令 screen -d session_name 与目标后台脱离连接
使用命令 screen -r session_name 与目标后台建立连接
建立后台并且attached之后,直接在命令行运行python文件。之后再输入命令 screen -d session_name 与当前后台脱离(如果当前程序一直在print可以打开另外一个终端输入脱离命令)。
现在就算断连,服务器也不会停止训练了。(建议先脱离连接再建立连接,无论之前有没有attached,都先脱离一下再连接,不然程序容易没有跑在后台)
下次连接输入命令 screen -r session_name 连接后台,就可以看到当前程序运行了