VisualDL icon indicating copy to clipboard operation
VisualDL copied to clipboard

请问多个log文件怎么合并

Open ggdonald opened this issue 3 years ago • 11 comments

我训练途中停止了,然后resume之前的最后一次model继续训练,但是就会产生新的log。 请问有什么办法可以合并多个log文件,或者visulaDL能直接读取多个log然后把结果合并起来吗?

===============update=================== 看了一下train.py文件,如果我在resume训练之前,在train.py里面的log_writer里面,把参数file_name调成已有的log文件名,就可以继续在此日志上续写。

但是如果之前没有修改的,已经跑过了然后生成了多个log file,请问需要怎么合并呢?好像因为log里面是二进制,所以直接copy/paste不行。 那么请问,可以直接用open(file, 'rb')读取多个log文件,然后直接二进制合并?还是必须要要用你们的logreader来合并,如果必须用这个,有具体的方法吗?谢谢了

ggdonald avatar Dec 07 '21 09:12 ggdonald

你看看能不能直接把多个文件连接在一起呢,二进制的形式情况下,直接读取第二个文件,写在第一个文件最后面。

rainyfly avatar Dec 07 '21 11:12 rainyfly

可以合并,但是问题是重新训练的时候,只能选某一个iter,比如iter_20000,就是第2w步。 但是下面的train step并不一定刚刚好是2w步,所以直接合并,会导致中间有一段重复的是可视化出来是乱的。 我是用notepad++打开所有log,找Evaluate/Acc来删除多余的step,但是里面是乱码,有些乱码代表的可能是前后的符号(比如逗号,括号),会导致删除多余步数过后的log合并了不能打开。

所以想问问有没有logreader和logwrite这方面可以直接使用的function,不然我看了下code,需要logreader读出所有的tag,然后在list里面挨着删,最后再一条一条用logwrite merge到一起

ggdonald avatar Dec 07 '21 14:12 ggdonald

嗯,如果是需要通过分析数据才能合并的话,思路应该是你这样的,用Logreader去读每一条记录,自己根据需要把要的记录再用logwriter来输出合并到一起。

rainyfly avatar Dec 08 '21 02:12 rainyfly

请问一下实现了吗?

lazyn1997 avatar Aug 12 '22 15:08 lazyn1997

请问这个功能有实现吗……

Disciple7 avatar Dec 29 '22 15:12 Disciple7

请问这个功能有实现吗……

你们是因为当训练断掉时候,然后重新resume训练的时候,生成了一个新的日志文件,希望把之前的日志文件和新的日志文件给整合到一起,才有这样的需求是么。 但是实际上,我觉得支持这一需求应该是在你的训练代码中来实现这一功能,因为VDL对于续写一个日志的功能是提供了的,写数据的接口里也是包含了step参数的。我觉得当需要续写一个日志,而且又需要接着之前断开时的step继续写的这种场景,应该在训练代码里,对于resume这种情况,且续写一个VDL日志,通过LogReader来读一下断开时候的step在哪个位置,然后从调用add_scalar之类的接口时候,step就从上次断开时候的值开始指定。或者你的训练代码里已经有resume断开时候step值的功能,这样就直接接着续写日志就行了。

rainyfly avatar Jan 13 '23 10:01 rainyfly

嗯,如果是需要通过分析数据才能合并的话,思路应该是你这样的,用Logreader去读每一条记录,自己根据需要把要的记录再用logwriter来输出合并到一起。

请问LogReader读取.log文件报错AttributeError: 'NoneType' object has no attribute 'startswith'该怎么解决呢

kongdebug avatar Feb 27 '23 11:02 kongdebug

Hi, 这个问题正好这几天修复了,不好意思哦,要不您先把版本给降到2.3.0的visualdl来读, pip install visualdl==2.3.0 pip install flask_babel==2.0.0 我们在最近应该会发个小版本,到时候修复这一问题。

rainyfly avatar Feb 27 '23 12:02 rainyfly

好的,谢谢啦

---原始邮件--- 发件人: @.> 发送时间: 2023年2月27日(周一) 晚上8:54 收件人: @.>; 抄送: @.@.>; 主题: Re: [PaddlePaddle/VisualDL] 请问多个log文件怎么合并 (Issue #1033)

Hi, 这个问题正好这几天修复了,不好意思哦,要不您先把版本给降到2.3.0的visualdl来读, pip install visualdl==2.3.0 pip install flask_babel==2.0.0 我们在最近应该会发个小版本,到时候修复这一问题。

— Reply to this email directly, view it on GitHub, or unsubscribe. You are receiving this because you commented.Message ID: @.***>

kongdebug avatar Feb 27 '23 13:02 kongdebug

遇到了相同的问题。训练异常中断,使用checkpoints继续训练,但是产生新的log。使用vdl可视化只能显示最新的log。请问这个问题可以处理吗?如果本地处理,要怎么做?

se7enXF avatar Dec 07 '23 07:12 se7enXF

遇到了相同的问题。训练异常中断,使用checkpoints继续训练,但是产生新的log。使用vdl可视化只能显示最新的log。请问这个问题可以处理吗?如果本地处理,要怎么做?

可以实现的,不过需要改一下训练过程中的代码。在断点继续训练的时候,读取之前保存的log文件,就可以续上,不会产生新的log

kongdebug avatar Dec 07 '23 08:12 kongdebug