在利用Caffe训练相应的网络模型后,往往需要绘制训练过程中的数据,这样可以更加直观地展示我们的实验结果,事实上,caffe自带了这样的小工具,当然你也可以自己写个代码,下面分别介绍这两种方法:

(一)利用caffe自带工具

(1)首先假设你生成的log文件名为train.log,利用你的~/caffe/tools/extra/parse_log.py来解析train.log文件,会生成两个文件,分别为:train.log.test、train.log.train。为了方便演示,这里将train.log文件拷贝到与~/caffe/tools/extra/parse_log.py相同的目录下,在该目录右键打开终端,执行以下命令即可(不要忘记了最后的“.”):

python parse_log_rs.py train.log .

注意:不要忘记了最后的“.”,代表的是你train.log.test、train.log.train文件的输出保存路径,这里的“.”代表的是当前目录,我的截图示例如下:

(2)利用你的~/caffe/tools/extra/plot_training_log.py.example来绘制相应的loss和accuracy曲线,这里建议你生成该文件的一个拷贝,保留原始文件,新文件名字为plot_training_log.py。执行命令:

cp plot_training_log.py.example plot_training_log.py

然后执行以下命令即可绘制相应曲线:

python plot_training_log.py 0 save.png train.log

参数“save.png”代表你保存绘制图像的文件名,train.log就是你最初训练获得log文件,其中的“0”代表地是其中一种类型,事实上这里有8中模式,具体模式如下,你可以依次尝试:

    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 learning rate  vs. Iters  5: Train learning rate  vs. Seconds  6: Train loss  vs. Iters  7: Train loss  vs. Seconds  

如果你在运行上述代码出现了以下错误,直接执行以下安装命令即可:

sudo apt-get install python-tk

最终打开保存的图片save.png,如下所示:

(二)自己写个小代码绘制曲线

其实caffe提供的工具已经非常完整了,我们还可以进去代码结合自己的需求进行相应的修改。唯一的不足时,上述方法往往是单个曲线的绘制,如果你想把loos与accuracy曲线叠加在一个图上,就可以采用下面的代码来完成:

注意:第一步还是需要利用~/caffe/tools/extra/parse_log.py来解析train.log文件,生成两个文件,分别为:train.log.test、train.log.train

注意:你可以更该相应的参数名来绘制你想要的曲线,例如:

ax1.plot(train_log["NumIters"], train_log["loss"], 'r')   # 绘制训练迭代次数与loss曲线,可以选择文件中其它的参数绘制曲线
ax2.plot(test_log["NumIters"], test_log["accuary"], 'm')  # 绘制测试迭代次数与准确率曲线

plot_loss_accuracy.py

#-*-coding:utf-8-*-import pandas as pd
import matplotlib.pyplot as plttrain_log = pd.read_csv("train.log.train")   # 你的文件名
test_log = pd.read_csv("train.log.test")     # 你的文件名_, ax1 = plt.subplots()
ax1.set_title("train loss and test loss")    # 标题
# ax1.plot(train_log["NumIters"], train_log["loss"], alpha=0.5)
ax1.plot(train_log["NumIters"], train_log["loss"], 'r')   # 绘制训练迭代次数与loss曲线,可以选择文件中其它的参数绘制曲线
# ax1.plot(test_log["NumIters"], test_log["loss"], 'g')   # 绘制测试迭代次数与loss曲线
ax1.set_xlabel('iteration')
ax1.set_ylabel('train loss')
plt.legend(loc='upper left')ax2 = ax1.twinx()
# ax2.plot(test_log["NumIters"], test_log["acc/top-1"], 'r')
# ax2.plot(test_log["NumIters"], test_log["acc/top-5"], 'm')
# ax2.plot(test_log["NumIters"], test_log["accuary"], 'r')
ax2.plot(test_log["NumIters"], test_log["accuary"], 'm')  # 绘制测试迭代次数与准确率曲线
ax2.set_ylabel('test accuracy')
plt.legend(loc='upper right')plt.show()print('Done.')

结果图为:

ubuntu16.04下Caffe绘制训练过程的loss和accuracy曲线相关推荐

  1. Python绘制训练过程的loss和accuracy曲线

    一:在训练好的模型下面加入绘图代码. model.compile(optimizer='adam',loss='categorical_crossentropy',metrics=['accuracy ...

  2. 【caffe】可视化网络的训练过程的loss和accuracy

    转载自https://blog.csdn.net/chen1234520nnn/article/details/102780652 前言:我们在训练网络的时候,网络训练完毕后,需要可视化训练过程中lo ...

  3. Ubuntu16.04下caffe CPU版的详细安装步骤

    一.caffe简介 Caffe,是一个兼具表达性.速度和思维模块化的深度学习框架. 由伯克利人工智能研究小组和伯克利视觉和学习中心开发. 虽然其内核是用C++编写的,但Caffe有Python和Mat ...

  4. ubuntu16.04下使用YOLOV3训练自己做的VOC数据集(VOC数据集制作+模型训练步骤+训练参数解析和问题解决+训练日志可视化(loss、IOU)+模型测试(单张、摄像头、批量测试))

    前序 1.环境配置 请自行参考其他博客 本机环境 ubuntu16.04 python3 英伟达显卡驱动:nvidia-396 OpenCV3.4.5 CUDNN7.0.5 CUDA9.0 2.ubu ...

  5. Ubuntu16.04下实现darknet-yolov3训练自己的数据(含loss图、mAP计算)

    记录一下本地编译darknet并用自己的数据集来训练yolov3的过程,最后补充了mAP的计算方法. 1.环境配置 首先CUDA和Cudnn是必备的,安装有很多教程就不多写了,opencv安装比较麻烦 ...

  6. Caffe---Pycaffe 绘制loss和accuracy曲线

    Caffe---Pycaffe 绘制loss和accuracy曲线 <Caffe自带工具包---绘制loss和accuracy曲线>:可以看出使用caffe自带的工具包绘制loss曲线和a ...

  7. ubuntu16.04下 1080ti显卡驱动384.98+cuda9.0+cudnn+caffe 安装过程,本人新测,没毛病

    ubuntu16.04下 显卡驱动384.98+cuda9.0+cudnn9.0+caffe 安装 我自己尝试的在16.04下安装如上所述,系统安装不多说,主要说显卡驱动往下的部分,和我自己遇到的问题 ...

  8. vscode linux新建c语言,Ubuntu16.04下配置VScode的C/C++开发环境

    1. Vscode安装 Visual studio code是微软发布的一个运行于 Mac OS X.Windows和 Linux 之上的,针对于编写现代 Web 和云应用的跨平台源代码编辑器.第一种 ...

  9. linux arm移远重启4g,如何在Ubuntu16.04下配置移远RM500工业模组(5G工业模组)

    如何在Ubuntu16.04下配置移远RM500工业模组(5G工业模组) 如何在Ubuntu16.04下配置移远RM500工业模组(5G工业模组) 最近由于工作原因入手了移远的5G(RM500H工业模 ...

最新文章

  1. 比尔·盖茨官宣离婚!除了孩子和基金会,一切都是浮云
  2. 全球首个Magic Leap One体验:吓到你不敢进房间
  3. Linux内核设计与实现学习笔记目录
  4. mysql galera cluster实现vip_2019年学MySQL,最佳的10本新书
  5. 负载均衡在分布式架构中是怎么玩起来的?
  6. shiro +spring + spring mvc+ mybatis整合【转】
  7. redis之(十一)redis实现缓存的功能
  8. 京东五星电器送扫地机器人_京东五星电器联手打造互联网小家电“孵化器”
  9. document.body、document.documentElement和window获取视窗大小的区别
  10. 381. O(1) 时间插入、删除和获取随机元素 - 允许重复
  11. js-JavaScript高级程序设计学习笔记2
  12. ubuntu下vscode字体高与缩进不成比
  13. cee怎么把大图片放进小盒子_celine box带子扣安装和打开教程,秒学会赛琳盒子包肩带如何调节长度...
  14. csu1706irrational root
  15. aip通用文档 服务器,为 Rights Management 连接器配置服务器 - AIP | Microsoft Docs
  16. python学习-reshape()函数理解
  17. 罗杰斯:不看好房地产股票 最佳投资是大宗商品
  18. huhu~~,商城项目终于测试接近尾声,即将上线了
  19. Hibernate SQL方言集合
  20. 手把手教你如何管理进程

热门文章

  1. POJ-Fence Repair 哈夫曼树
  2. IE9相比IE8丢失了什么?
  3. 三菱PLC编程软件:GX WORKS2和GX WORKS3的区别
  4. C++面试题-面向对象-构造函数和析构函数
  5. C语言typedef:给类型起一个别名
  6. 视觉平台搭建——LED光源介绍
  7. .NET基础编程之特性 - Attribute
  8. 使用mybatis-generator工具加快开发速度
  9. Jenkins进阶系列之——07Jenkins纳入版本控制
  10. 一个进程(Process)最多可以生成多少个线程(Thread)