最新在ubuntu下训练caffe模型时,保存了输出日志的同时,无法使用ctrl+C保存模型,诸多不便,采用的shell命令如下:

modelroot=...
log=train-`date +%Y-%m-%d-%H-%M-%S`.log
./build/tools/caffe train -solver $modelroot/solver.prototxt 2>1 | tee $log $@

查阅相关资料,
问题1,找到问题2,进而找到问题3,
出现的问题为tee命令将ctrl+c可能做了转换处理,使得caffe命令无法接收到正确的中断命令。
解决的方法有:
方法1:
不使用tee命令来保存日志,生成的日志事后需要重新命名。

GLOG_log_dir=/path/to/log/dir $CAFFE_ROOT/bin/caffe.bin train 
—solver=/path/to/solver.prototxt

方法2:
继续使用tee命令保存日志,使用kill命令来给caffe命令发送中断命令。

kill -s SIGINT <proc_id>

倾向于第二种方法,亲测有效。

同时,在训练时加入-SIGINT_effect snapshot导致使用ctrl+c时,caffe命令不会中断,会保存模型,之后继续训练,需要使用kill proc_id来强行关闭进程。

Logo

北京人形旗下天工造物具身智能开源社区,聚焦具身天工与慧思开物两大平台

更多推荐