caffe模型、迭代损失可视化

安装配置完caffe后,一般都是拿官方的例子跑跑,然后终端输出一串一串的字母,感觉很神奇,因为初学caffe,所以很好奇这些信息能不能够图形化显示出来,这里记录下在ubuntu下caffe的相关图形显示。

首先便是模型的可视化,在caffe安装好后,在caffe/python/目录下有一个draw_net.py的python脚本文件,这是官方提供的一个模型可视化的脚本文件,运行这个文件,可以将模型的文件可是化,即使用图表的形式表示模型的网络。

cd caffe#进入caffe目录
python ./python/draw_net.py  (这里输入你的网络模型文件路径)  (图片存放的路径)

比如在我的电脑上运行如下命令:

python ./python/draw_net.py ./examples/myfile/train_val.prototxt ./examples/myfile/a.png

运行上面这行代码后就会在examples/myfile/目录下生成a.png的一张图片,我的如下所示。

这个就是你在模型文件train_val.prototxt中定义的网络模型。还可以在后面加上 --rankdir=BT命令,则图片显示的是从下到上的方式,可选的有(BT / TB / LR)默认的是LR形式。

定义好了模型就要训练啊,但是训练的时候信息都是显示在终端,刷刷的就刷屏了,然后又没有图像,很不直观。在caffe中官方还是很人性化的,在caffe/tools/extra/目录下官方提供了两个文件:

plot_training_log.py.example和parse_log.py这两个脚本文件,使用第一文件我们可以将相关日志文件图形化显示出来。

在终端输入:

python ./tools/extra/plot_training_log.py.example

终端会输出如下提示:

This script mainly serves as the basis of your customizations.
Customization is a must.
You can copy, paste, edit them in whatever way you want.
Be warned that the fields in the training log may change in the future.
You had better check the data files and change the mapping from field name to
 field index in create_field_index before designing your own plots.
Usage:
    ./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 learning rate  vs. Iters
    5: Train learning rate  vs. Seconds
    6: Train loss  vs. Iters
    7: Train loss  vs. Seconds

从中可以看出这个文件执行的格式。数字0-7表示你想要显示的类型。以及文件要求的格式文件为.log的日志文件,所以我们首先需要的是日志文件.

在调用caffe可执行文件train的时候在后面加入一小段代码便可生成我们需要的日志文件。

一般我们训练时的命令如下:

sudo ./build/tools/caffe train -solver examples/myfile/solver.prototxt

运行上述命令后,终端会刷刷的出现很多信息,根本来不及看,我们在命令后面加入一小段代码后,便可生成我们需要的日志文件,然后就可以使用./tools/extra/plot_training_log.py.example这个工具来显示相关数据了。命令如下:

sudo ./build/tools/caffe train -solver examples/myfile/solver.prototxt 2>&1 | tee examples/myfile/a.log

>是重定向的意思&是在后台运行,tee是linux的一个命令,不知道的话可以百度,后面便是日志文件.log的存放路径了。运行后会在examples/myfile/目录下生成一个a.log的日志文件。这样我们便可以使用工具来显示我们想要的信息了。

在终端输入:

python ./tools/extra/plot_training_log.py.example 6 ./examples/myfile/6.png ./examples/myfile/a.log

屏幕便会显示如下图片。

这是训练损失与迭代次数的关系图。其中的6则是通过工具提示内容输入的,后面依次是图片存放的路径 、日志文件的路径。如果想看测试的精度与迭代次数的关系将数字6改为0即可。

parse_log.py文件的作用就是:将你的日志文件分解成两个txt的文件。

终端输入如下命令

python ./tools/extra/parse_log.py ./examples/myfile/a.log  ./examples/myfile/

便会在myfile/目录下产生a.log.train 和a.log.test的文件,根据这两个文件你可以使用matplotlib库画出你想要的图像。

时间: 2024-10-12 05:02:13

caffe模型、迭代损失可视化的相关文章

pytorch模型转caffe模型

Pytorch模型转换Caffe模型踩坑指南,代码使用的是Github上的工程,地址:https://github.com/longcw/pytorch2caffe 操作环境:ubuntu = 14.04 miniconda 3 caffe pytorch = 0.2.0 torchvision = 0.1.8 python = 2.7 环境配置: 第一步 : 在miniconda创建一个虚拟环境pytorch2caffe : conda create -n pytorch2caffe pyth

BFM模型介绍及可视化实现(C++)

BFM模型介绍及可视化实现(C++) BFM模型基本介绍 Basel Face Model是一个开源的人脸数据库,其基本原理是3DMM,因此其便是在PCA的基础上进行存储的. 目前有两个版本的数据库(2009和2017). 官方网站:2009,2017 数据内容(以2009版本为例) 文件内容 01_MorphableModel.mat(数据主体) BFM模型由53490个顶点构成,其shape/texture的数据长度为160470(53490*3),因为其排列方式如下: shape: x_1

caffe模型各层数据和参数可视化

先用caffe对cifar10进行训练,将训练的结果模型进行保存,得到一个caffemodel,然后从测试图片中选出一张进行测试,并进行可视化. In [1]: #加载必要的库 import numpy as np import matplotlib.pyplot as plt %matplotlib inline import sys,os,caffe In [2]: #设置当前目录,判断模型是否训练好 caffe_root = '/home/bnu/caffe/' sys.path.inse

DL开源框架Caffe | 模型微调 (finetune)的场景、问题、技巧以及解决方案

转自:http://blog.csdn.net/u010402786/article/details/70141261 前言 什么是模型的微调?   使用别人训练好的网络模型进行训练,前提是必须和别人用同一个网络,因为参数是根据网络而来的.当然最后一层是可以修改的,因为我们的数据可能并没有1000类,而只有几类.把最后一层的输出类别和层的名称改一下就可以了.用别人的参数.修改后的网络和自己的数据进行训练,使得参数适应自己的数据,这样一个过程,通常称之为微调(fine tuning). 微调时候网

[caffe(二)]Python加载训练caffe模型并进行测试2

#coding=utf-8 import h5py import numpy as np import caffe #1.导入数据 filename = 'testdata.h5' f = h5py.File(filename, 'r') n1 = f.get('data') n1 = np.array(n1) print n1[0] n2=f.get( 'label_1d') n2 = np.array(n2) f.close() #2.导入模型与网络 deploy='gesture_depl

caffe模型参数解释

作者:wjmishuai 出处: http://blog.csdn.net/wjmishuai/article/details/50890214 原始数据是28*28 1:数据层: layer { name: "mnist"//数据层的名字是mnist type: "Data"//这个层的类型是data top: "data"//产生两个blob,一个是data blob top: "label"//一个是lable blob

吴裕雄 python 机器学习——模型选择损失函数模型

from sklearn.metrics import zero_one_loss,log_loss def test_zero_one_loss(): y_true=[1,1,1,1,1,0,0,0,0,0] y_pred=[0,0,0,1,1,1,1,1,0,0] print("zero_one_loss<fraction>:",zero_one_loss(y_true,y_pred,normalize=True)) print("zero_one_loss&

基于caffe与MATLAB接口的回归分析与可视化

如果遇到一些问题,可以在这里找下是否有解决方案.本文内容主要分为两部分,第一部分介绍基于caffe的回归分析,包括了数据准备.配置文件等:第二部分介绍了在MATLAB上进行的可视化.(话说本人最近有个课题需要做场景分类,有兴趣可以共同探讨一下). Preparation 预装好caffe on windows,并编译成功MATLAB接口. 通过caffe进行回归分析 通过caffe进行回归分析,在实验上主要分成HDF5数据准备.网络设计.训练.测试.该实验已经有网友做过,可以参考:http://

如何构建阿里小蜜算法模型的迭代闭环?

导读:伴随着AI的兴起,越来越多的智能产品诞生,算法链路也会变得越来越复杂,在工程实践中面临着大量算法模型的从0到1快速构建和不断迭代优化的问题,本文将介绍如何打通数据分析-样本标注-模型训练-监控回流的闭环,为复杂算法系统提供强有力的支持. 新技术/实用技术点: 实时.离线场景下数据加工的方案选型 高维数据的可视化交互 面对不同算法,不同部署场景如何对流程进行抽象 01. 背景 技术背景及业务需求 小蜜系列产品是阿里巴巴为消费者和商家提供的智能服务解决方案,分别在用户助理.电商客服.导购等方面