远程训练模型的一些技巧和注意事项

less than 1 minute read

Published:

远程训练模型的一些技巧

一般用vscode+ssh远程连接服务器来工作,但是想让关闭ssh连接后程序仍然运行怎么办? nohup命令可以做到

nohup python -u train.py &

命令,nohup后面跟的是要运行的指令。在不重定向程序输出的情况下,原本输出到命令行的结果会自动的追加到运行目录下的nohup文件后。 -u命令意味着输出不缓冲,方便及时查看运行结果。否则有时候经常要等一个epoch全部跑完才看得到一批结果。

这样可能导致的问题是,你想关掉它比较困难,这就需要涉及到后台进程管理,尤其是当你打开了一个新的shell或者重新启动ssh时

最简单的办法是

ps -aux

其中参数-a查看全部,-u按用户来查看,-x不管是不是当前终端都查看。 找到那个进程,然后

kill -9 PID

Tensorboard的小技巧

关于tensorboard具体怎么用不再赘述,网上一大堆攻略。值得注意的是vscode会自动把远程端口转发到本地端口,所以在本机也能查看训练情况。

但是往往发现的问题是tensorboard刷新半天才显示。这其实也是由于输出缓冲的缘故。 在你想刷新缓冲区的时候,比如多少个batch,writer.flush()一下输出缓冲区,这样就不会出现总是刷新半天tensorboard都不更新的情况了。