深度学习中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日志文件