从进度输出中删除进度条,将其重定向到日志文件中
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了从进度输出中删除进度条,将其重定向到日志文件中相关的知识,希望对你有一定的参考价值。
我正在运行一个程序,它将输出进度条。我是这样的
python train.py |& tee train.log
train.log
看起来如下。
这是第1行
Training ...
这是第2行
...
[000] valid: 100%|█████████████████████████████████████████████████████████████▉| 2630/2631 [15:24<00:00, 2.98 track/s]
[000] valid: 100%|██████████████████████████████████████████████████████████████| 2631/2631 [15:25<00:00, 3.02 track/s]
Epoch 000: train=0.11940351 valid=0.10640465 best=0.1064 duration=0.79 days
这是第3行...
[001] valid: 100%|█████████████████████████████████████████████████████████████▉| 2629/2631 [15:11<00:00, 2.90
[001] valid: 100%|█████████████████████████████████████████████████████████████▉| 2630/2631 [15:11<00:00, 2.89
[001] valid: 100%|██████████████████████████████████████████████████████████████| 2631/2631 [15:12<00:00, 2.88
Epoch 001: train=0.10971066 valid=0.09931737 best=0.0993 duration=0.79 days
在终端上,应该将它们视为替换自身,因此,在日志文件中,存在很多重复。因此,当我执行wc -l train.log
时,它仅返回3行。但是,当我在文本编辑器中打开此5MB文本文件时,大约有20000行。
我的目标是仅获取这些详细信息:
Epoch 000: train=0.11940351 valid=0.10640465 best=0.1064 duration=0.79 days
Epoch 001: train=0.10971066 valid=0.09931737 best=0.0993 duration=0.79 days
我的问题是:
我如何在不停止当前培训进度的情况下,从
train.log
的“ 3”行中提取所需的详细信息?请记住,此培训将持续进行10个以上的时期,因此我不想在编辑器中打开整个进度条。[将来,我应该如何存储我的日志文件(而不是调用
] >python train.py |& tee train.log
),以便虽然我可以在终端中看到进度条,但只将重要信息保留在文本文件中?
编辑1:
我正在运行一个程序,它将输出进度条。我这样做是这样的python train.py |&tee train.log train.log看起来如下。这是第1行的培训...这是...
答案
进度条可能已写入stderr,您可以使用tee
将其与stdout一起发送到|&
。
另一答案
好,我已经解决了。
以上是关于从进度输出中删除进度条,将其重定向到日志文件中的主要内容,如果未能解决你的问题,请参考以下文章