caffe使用日志文件绘制Loss Accuracy图像
来源:互联网 发布:哪种商品禁止淘宝出售 编辑:程序博客网 时间:2024/06/05 05:16
在使用caffe训练数据集时通常需要对训练过程中损失值、准确率等进行可视化,使用python接口可视化的步骤可以参考博文caffe的python接口学习(7):绘制loss和accuracy曲线,本文将会介绍一种使用命令行训练数据,并利用训练过程的输出进行可视化的方法。
一、caffe 模型训练
在制作好数据集、贴好标签、并将数据集转为lmdb格式之后,就可以对网络进行训练,训练命令如下:
/path_to_caffe/caffe/build/tools/caffe train \ -solver ./solver.prototxt \ #求解文件 -snapshot ./train_iter_18200.solverstate \#使用从snapshot开始训练 >> log.txt 2>&1 #将输出写入到log.txt文件中
二、由log文件绘制Loss&Accuracy图像
在得到命令行输出重定向文件log.txt之后,使用python提取其中损失值与准确率的信息,并绘制在图像中。个人感觉此处代码较为繁琐,如果简便方法欢迎提出。
#coding:utf-8import sysimport reimport matplotlib.pyplot as pltimport numpy as npin_log_path='./log.txt' #输入日志文件的位置out_fig_path='./log.jpg' #输出图片的位置f=open(in_log_path,'r')accuracy=[]train_loss=[]test_loss=[]max_iter=0test_iter=0test_interval=0display=0target_str=['accuracy = ','Test net output #1: loss = ','Train net output #0: loss = ', 'max_iter: ','test_iter: ','test_interval: ','display: ']while True: line=f.readline() # print len(line),line if len(line)<1: break for i in range(len(target_str)): str=target_str[i] idx = line.find(str) if idx != -1: num=float(line[idx + len(str):idx + len(str) + 5]) if(i==0): accuracy.append(num) elif(i==1): test_loss.append(num) elif(i==2): train_loss.append(num) elif(i==3): max_iter=float(line[idx + len(str):]) elif(i==4): test_iter=float(line[idx + len(str):]) elif(i==5): test_interval=float(line[idx + len(str):]) elif(i==6): display=float(line[idx + len(str):]) else: passf.close()# print test_iter# print max_iter# print test_interval# print len(accuracy),len(test_loss),len(train_loss)_,ax1=plt.subplots()ax2=ax1.twinx()#绘制train_loss曲线图像,颜色为绿色'g'ax1.plot(display*np.arange(len(train_loss)),train_loss,color='g',label='train loss',linestyle='-')#绘制test_loss曲线图像,颜色为黄色'y'ax1.plot(test_interval*np.arange(len(test_loss)),test_loss,color='y',label='test loss',linestyle='-')#绘制accuracy曲线图像,颜色为红色'r'ax2.plot(test_interval*np.arange(len(accuracy)),accuracy,color='r',label='accuracy',linestyle='-')ax1.legend(loc=(0.7,0.8)) #使用二元组(0.7,0.8)定义标签位置ax2.legend(loc=(0.7,0.72))ax1.set_xlabel('iteration')#设置X轴标签ax1.set_ylabel('loss') #设置Y1轴标签ax2.set_ylabel('accuracy') #设置Y2轴标签plt.savefig(out_fig_path,dpi=100) #将图像保存到out_fig_path路径中,分辨率为100plt.show() #显示图片
结果截图:
参考资料
- caffe的python接口学习(7):绘制loss和accuracy曲线
- matplotlib 教程
- shell 重定向
阅读全文
0 0
- caffe使用日志文件绘制Loss Accuracy图像
- caffe 绘制loss/ accuracy曲线
- caffe绘制loss,accuracy错误
- caffe绘制loss,accuracy曲线
- 【Caffe】利用log文件绘制loss和accuracy(转载)
- Caffe学习:使用pycaffe绘制loss、accuracy曲线
- Caffe学习:使用pycaffe绘制loss、accuracy曲线
- caffe 绘制accuracy和loss曲线
- Caffe 绘制训练过程loss,accuracy曲线
- matlab 绘制caffe accuracy与loss曲线
- caffe绘制loss和accuracy曲线
- caffe学习 绘制loss和accuracy
- caffe工具 绘制 loss accuracy曲线
- Windows+Python3下绘制Caffe训练日志中的Loss和Accuracy曲线图
- Caffe学习:绘制loss和accuracy曲线(使用caffe工具包)
- Caffe学习:绘制loss和accuracy曲线(使用caffe的python接口)
- caffe使用自带的工具绘制accuracy和loss曲线
- Python:如何使用jupyter绘制caffe训练过程中的loss和accuracy曲线?n
- 前端跨域访问--PHP设置(含laravel设置方法)
- guacamole谷歌浏览器全屏时白屏问题
- jQuery选择器,操作元素,工具方法,事件操作
- selenium报错Element is not clickable at point及四种解决方法
- vim编辑文章后不能修改
- caffe使用日志文件绘制Loss Accuracy图像
- 事务配置-基于tx/aop配置切面增强事务
- linux下编程输入密码不回显
- Java虚拟机学习之Java内存模型
- react-native之Androidstudio安装问题总结
- 验证正则表达式(一),同时验证手机号码和固定电话号码
- 不相交集ADT
- Error while performing database login with the Mysql connector driver;Unknown database 'test'
- [bzoj3590]SNOI2013 Quare