Я запустил программу, и она выведет индикатор выполнения. Я сделал это так
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 строки. Однако когда я открыл этот текстовый файл размером 5 МБ в текстовом редакторе, там было примерно 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
Мои вопросы:
Как мне, не останавливая мой текущий прогресс в обучении, извлечь желаемые детали из предположительно "3" строк train.log
? Имейте в виду, что это обучение будет проходить непрерывно еще 10 эпох, поэтому я не хочу открывать весь редактор прогресса в редакторе.
В будущем, как я должен сохранить свой лог-файл (вместо вызова python train.py |& tee train.log
) так, чтобы хотя я мог видеть индикатор выполнения в терминале, я только сохранял важную информацию в текстовом файле?
Редактировать 1: Вот ссылка на файл train.log