终端训练模型日志重定向

在终端中要执行模型的训练时,我们有时候既需要把模型执行的日志输出到终端展示,又想把训练日志保存到日志文件中:

终端训练模型日志重定向_第1张图片
假设执行的代码时trian.py

python -u train.py | tee -a ./train.log

-u:这是 Python 解释器的一个选项,用于强制标准输出和标准错误流是无缓冲的。在这种模式下,输出会直接写入到它的目标,不会在内存中积累。这通常用于确保实时输出,尤其是当 Python 脚本的输出被重定向时,比如通过管道操作。
|:这是 Unix 管道符号,它的作用是将前一个命令的标准输出作为下一个命令的标准输入。
tee:这是一个 Unix 命令,用于读取标准输入并将其内容写入到标准输出和一个或多个文件。这使得您可以查看数据的同时也将其保存下来。
-a:这是 tee 命令的一个选项,意味着追加。当使用这个选项时,tee 会将标准输入追加到文件里,而不是覆盖文件内容。

综合起来,python -u train.py | tee -a ./train.log 这个命令会运行 train.py 脚本,以无缓冲的方式直接输出结果。输出不仅会显示在终端上,还会被追加到当前目录下的 train.log 文件中。这意味着您可以即时地在终端看到输出,并且所有的输出都会被记录在 train.log 文件中,即使您关闭了终端窗口。

你可能感兴趣的:(深度学习中的技巧,linux,模型训练,日志重定向,shell脚本)