caffe 保存log绘曲线

在训练过程中画出accuracy 和loss曲线能够更直观的观察网络训练的状态,以便更好的优化网络的训练。本文主要介绍在基于caffe框架训练网络时,如何利用caffe自带的一些实用的工具包来绘制曲线。

step1:保存日志文件 
在训练过程中把终端输出的结果保存为一个日志文件,注意文件的后缀名必须是.log,这是因为后面再解析日志文件时有这个要求。如何把终端保存到日志文件,例子如下:

$TOOLS/caffe train --solver=$SOLVERFILE 2>&1 |tee out.log
 
 
  • 1
  • 1

step2:解析日志文件 
这一步利用caffe中tools/extra文件夹下的parse_log.py来解析日志文件。具体例子如下:

python parse_log.py out.log ./ #两个参数,一个是日志文件,另一个是保存的路径
 
 
  • 1
  • 1

运行结束之后会发现在你保存的路径中会生成两个文件out.log.train和out.log.test

step3:绘制accuracy 和loss曲线。 
利用caffe中tools/extra文件夹下的plot_training_log.py文件来绘制。

python plot_training_log.py 2 testloss.png out.log
 
 
  • 1
  • 1

这里要解释下,如果你直接运行这个是会报错的。因为在out.log.test文件是这样的。

NumIters,Seconds,TestAccuracy,TestLoss
0.0,2.318823,-1,0.360432
200.0,10.975734,-1,0.0757681
400.0,19.634317,-1,0.0610909
600.0,28.295885,-1,0.0554078
800.0,36.953475,-1,0.0510606
1000.0,45.644651,-1,0.0463909
 
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

load_data的时候第一行是不读的,要么你自己第一行加个#,要么就直接不读第一行。另外在split的时候不是用空格而是用‘,’因此做如下修改。

def load_data(data_file, field_idx0, field_idx1):
    data = [[], []]
    with open(data_file, 'r') as f:
        num=len(f)
        for line_num in range(1,num):#此处修改
            line = f[line_num].strip()
            #if line[0] != '#':#此处修改
            fields = line.split(',')#此处修改
            data[0].append(float(fields[field_idx0].strip()))
            data[1].append(float(fields[field_idx1].strip()))
    return data
 
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11

上面还有个地方需要解释就是那个2是什么意思,这个你直接运行下Python plot_training_log.py就会打出帮助信息,就能看见了。

以上就是利用caffe自带的工具包绘制曲线的方法。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值