Linux深度学习训练logdebug⼯作流
程序运⾏输出重定向:
这⾥我使⽤的脚本是./translate_enzh_train.sh,根据具体情况修改这个。⼀般会结合nohup或者disown使⽤。
./translate_enzh_train.sh 1>& 2>&
linux重定向⼀般情况下log信息都会保存在⾥⾯,⼜由于⼀般debug的时候会重复使⽤这个命令,所以我个⼈习惯在⽂件名上加个时间戳,具体实现如下:
./translate_enzh_train.sh 2>>err_`date'+%s'`.txt
这⾥date '+%s'是在shell下得到时间戳
对Log进⾏实时观测
watch -n 10 tail -n
每10秒就在屏幕上打印输出log的最后15⾏
对GPU的状态进⾏实施观测
watch -n 5 nvidia-smi
每5秒更新⼀次nvidia-smi的输出结果
⼀点点关于disown和nohup的⼩记
disown这个命令在tcsh⾥⾯是没有的,所以你想⽤它的时候系统会反馈给你
disown: Command not found.
所以⽬前在tcsh⾥⾯貌似我们只能⽤nohup了,⼤概格式是
nohup YOU-COMMAND > output.log &
使⽤nohup其实也等同于让该进程运⾏在background并且切断了它和本terminal的连接(disown)。
这⾥有⼀段摘⾃别的⽹站上的关于nohup的描述
What nohup does, on the other hand, is to effectively separate the process from the terminal:
It closes standard input (the program will not be able to read any input, even if it is run in the foreground. it is not halted, but will receive an error code or EOF).
It redirects standard output and standard error to the file nohup.out, so the program won’t fail for writing to standard output if the terminal fails, so whatever the process writes is not lost.
It prevents the process from receiving a SIGHUP (thus the name).
以及另外⼀个很好的,⾥⾯很清楚地讲了disown is not defined by POSIX。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论