caffe工具 绘制 loss accuracy曲线

深度学习中loss和accuracy是十分重要的数据 …balabala
这篇博主根据http://blog.csdn.net/u013078356/article/details/51154847进行实测后记录下的

1 得到caffe训练的log日志文件

1.1

使用的是shell命令,如果你是windows还是先下一个Git(链接就在这)
GLOG_logtostderr=0 GLOG_log_dir=your_log_path/log/  \
your_caffe_path/caffe.exe train \
--solver=your_solver_path/solver.prototxt

read -n 1
‘your_log_path/log/’是你存放日志文件的文件夹路径

1.2

运行sh后在your_log_path/log路径下会有一个形如
caffe.exe.你的计算机名.你的用户名.log.INFO.时间.几位数字 的文件
你需要更改文件格式 把它重命名为 ******.log文件格式为log的文件

2 生成TRAIN、TEST文件

2.1

在你的caffe路径下\tools\extra中有
parse_log.py
plot_training_log.py.example
extract_seconds.py
将它们复制到你的日志文件夹下,
并且重命名 plot_training_log.py.example为 plot_training_log.py

2.2

在cmd下切换目录至log文件夹下运行

python parse_log.py  ******.log

将会在log文件夹下生成 ******.log.train和******.log.test文件
你可以用文本编辑器把它们打开
第一行会有键值类似这样 #Iters Seconds TestAccuracy TestLoss
下面是键值对应的参数
后面我们会用到键值顺序来修改plot_training_test.py文件

3 绘制loss accuracy曲线

3.1

用文本编辑器打开plot_training_log.py文件
找到create_field_index函数
按照train、test文件给出的键值顺序调整train_key、test_key
比如
我的train文件第一行:#Iters Seconds TrainingLoss LearningRate
我的test文件迪一行:#Iters Seconds TestAccuracy TestLoss
做出的调整如下:

def create_field_index():
    train_key = 'Train'
    test_key = 'Test'
    field_index = {train_key:{'Iters':0, 'Seconds':1, train_key + ' Loss':2,
                              train_key + ' Accuracy':3},
                   test_key:{'Iters':0, 'Seconds':1, test_key + ' Accuracy':2,
                             test_key + ' Loss':3}}
    fields = set()
    for data_file_type in field_index.keys():
        fields = fields.union(set(field_index[data_file_type].keys()))
    fields = list(fields)
    fields.sort()
    return field_index, fields

3.2

我们先看一下plot_training_log.py的参数
在cmd下切换目录至log文件夹下运行

python plot_training_log.py

可以得到:

./plot_training_log.py chart_type[0-7] /where/to/save.png /path/to/first.log ...
Notes:
    1. Supporting multiple logs.
    2. Log file name must end with the lower-cased ".log".
Supported chart types:
    0: Test Accuracy  vs. Iters
    1: Test Accuracy  vs. Seconds
    2: Test Loss  vs. Iters
    3: Test Loss  vs. Seconds
    4: Train Accuracy  vs. Iters
    5: Train Accuracy  vs. Seconds
    6: Train Loss  vs. Iters
    7: Train Loss  vs. Seconds

在cmd下切换目录至log文件夹下运行

python plot_training_log.py 0 ***.png *******.log

args说明:
0代表曲线类型,可以对照Supported chart types【由于前面整改过create_field_index函数,所以数字对应类型可能不同,请自行查看,根据你需要的曲线类型改变数字参数】
***.png曲线图文件名
******.log日志文件

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值