如何绘制caffe loss weight训练过程中的loss和accurary的曲线

九、Go语言库之strconv包--GO语言笔记
编辑:www.fx114.net
本篇文章主要介绍了"九、Go语言库之strconv包--GO语言笔记",主要涉及到九、Go语言库之strconv包--GO语言笔记方面的内容,对于九、Go语言库之strconv包--GO语言笔记感兴趣的同学可以参考一下。
package main
import "fmt"
import "strconv"
func main() {
由于将字符串转为其他数据类型可能会出错,strconv 包定义了两个 error 类型的变量:ErrRange 和 ErrSyntax。
其中,ErrRange 表示值超过了类型能表示的最大范围,比如将 "128" 转为 int8 就会返回这个错误;ErrSyntax 表示语法错误,比如将 "" 转为 int 类型会返回这个错误。
func syntaxError(fn, str string) *NumError {
return &NumError{fn, str, ErrSyntax}
func rangeError(fn, str string) *NumError {
return &NumError{fn, str, ErrRange}
/* 字符串转为整数
func ParseInt(s string, base int, bitSize int) (i int64, err error)
func ParseUint(s string, base int, bitSize int) (n uint64, err error)
func Atoi(s string) (i int, err error)
n, err := strconv.ParseInt("128", 10, 8)
if err != nil {
fmt.Println(err)
fmt.Println(strconv.ParseInt("134", 10, 64))
func FormatUint(i uint64, base int) string
// 无符号整型转字符串
func FormatInt(i int64, base int) string
// 有符号整型转字符串
func Itoa(i int) string
//还可以用 fmt.Sprintf("%d",i) 来转化 ,但是我们分别循环转换了10000次。Sprintf 的时间是 3.549761ms,而 Itoa 的时间是 848.208us,相差 4 倍多。
字符串和布尔值之间的转换
// 接受 1, t, T, TRUE, true, True, 0, f, F, FALSE, false, False 等字符串;
// 其他形式的字符串会返回错误\
func ParseBool(str string) (value bool, err error)
// 直接返回 "true" 或 "false"
func FormatBool(b bool) string
// 将 "true" 或 "false" append 到 dst 中
// 这里用了一个 append 函数对于字符串的特殊形式:append(dst, "true"...)
func AppendBool(dst []byte, b bool)
字符串和浮点数之间的转换
func ParseFloat(s string, bitSize int) (f float64, err error)
func FormatFloat(f float64, fmt byte, prec, bitSize int) string
func AppendFloat(dst []byte, f float64, fmt byte, prec int, bitSize int)
strconv.FormatFloat(, 'e', 3, 32) // 结果:1.223e+03
strconv.FormatFloat(, 'g', 3, 32) // 结果:1.22e+03
//由于浮点数有精度的问题,精度不一样,ParseFloat 和 FormatFloat 可能达不到互逆的效果。如:
s := strconv.FormatFloat(, 'g', 6, 64)
strconv.ParseFloat(s, 64)
//如果要输出这样一句话:This is "" website. 该如何做?
fmt.Println(`This is "" website`)
fmt.Println("This is", strconv.Quote(""), "website")
一、不得利用本站危害国家安全、泄露国家秘密,不得侵犯国家社会集体的和公民的合法权益,不得利用本站制作、复制和传播不法有害信息!
二、互相尊重,对自己的言论和行为负责。
本文标题:
本页链接:2164人阅读
MATLAB(3)
caffe(10)
公司机器上,我是非管理员账户,python画图缺少一些库,但是又没有权限安装,所以考虑matlab。
使用MATLAB画caffe的训练日志,其实就是找规律;
代码如下:
function plot_log(logName)
fid = fopen(logName, 'r');
test_loss = fopen('test_loss.txt', 'w');
train_loss = fopen('train_loss.txt', 'w');
train_lr = fopen('train_lr.txt','w');
tline = fgetl(fid);
while ischar(tline)
k = strfind(tline, 'Iteration');
if ~isempty(k)
iter_start = k+10;
iter_end = strfind(tline(k:end),',');
iter = tline(iter_start:iter_end+k-2);
lr_k = strfind(tline, 'lr');
if ~isempty(lr_k)
lr_tart = lr_k + 5;
lr = tline(lr_tart : end);
fprintf(train_lr, '%s\t%s\n', iter,lr);
train_k = strfind(tline, 'loss');
if ~isempty(train_k)
train_tart = train_k + 7;
loss_train = tline(train_tart : end);
fprintf(train_loss, '%s\t%s\n', iter,loss_train);
test_k = strfind(tline, 'Testing');
if ~isempty(test_k)
tline = fgetl(fid);
while(ischar(tline) && flag)
test_k = strfind(tline, 'loss');
if ~isempty(test_k)
test_start = test_k + 7;
test_end = strfind(tline(test_start:end),'(')-3;
loss_test = tline(test_start : test_end+test_start);
fprintf(test_loss, '%s\t%s\n', iter,loss_test);
tline = fgetl(fid);
tline = fgetl(fid);
fclose(fid);
fclose(test_loss);
fclose(train_loss);
fclose(train_lr);
train_loss=importdata('train_loss.txt');
if(~isempty(train_loss))
plot(train_loss(:,1),train_loss(:,2));
title('train_loss vs. Iterations')
test_loss=importdata('test_loss.txt');
if(~isempty(test_loss))
plot(test_loss(:,1),test_loss(:,2));
title('test_loss vs. Iterations')
train_lr=importdata('train_lr.txt');
if(~isempty(train_lr))
plot(train_lr(:,1),train_lr(:,2));
title('train_lr vs. Iterations')
&&相关文章推荐
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:433336次
积分:5244
积分:5244
排名:第5690名
原创:118篇
转载:11篇
评论:460条
(1)(6)(12)(18)(1)(3)(4)(10)(2)(8)(5)(2)(7)(4)(12)(2)(1)(4)(13)(2)(2)(3)(1)(2)(5)caffe绘制训练过程的loss和accuracy曲线 - CSDN博客
caffe绘制训练过程的loss和accuracy曲线
转载自:http://blog.csdn.net/u/article/details/
在caffe的训练过程中,大家难免想图形化自己的训练数据,以便更好的展示结果。如果自己写代码记录训练过程的数据,那就太麻烦了,caffe中其实已经自带了这样的小工具 caffe-master/tools/extra/parse_log.sh &caffe-master/tools/extra/extract_seconds.py和 caffe-master/tools/extra/plot_training_log.py.example ,使用方法如下:
1.记录训练日志
在训练过程中的命令中加入一行参数 ,实现Log日志的记录
TOOLS=./build/tools&&GLOG_logtostderr=0&GLOG_log_dir=deepid/deepid2/Log/&\&&$TOOLS/caffe&train&\&&&&–solver=deepid/deepid2/deepid_solver.prototxt&&TOOLS=./build/tools
GLOG_logtostderr=0 GLOG_log_dir=deepid/deepid2/Log/ \
$TOOLS/caffe train \
--solver=deepid/deepid2/deepid_solver.prototxt
其中目录改成自己系统的目录,这样训练结束之后,会在Log文件夹中生成每次训练的Log日志
2.解析训练日志
将最上面说的3个脚本文件拷贝到Log 文件夹下,执行:
./parse_log.sh&caffe.wujiyang-ubuntu.wujiyang.log&&./parse_log.sh caffe.wujiyang-ubuntu.wujiyang.log
后面的参数为log文件名,这样就会在当前文件夹下生成一个.train文件和一个.test文件
3.生成图片
./plot_training_log.py.example&0&&save.png&caffe.wujiyang-ubuntu.wujiyang.log&&./plot_training_log.py.example 0
save.png caffe.wujiyang-ubuntu.wujiyang.log
就可以生成训练过程中的Test accuracy& vs. Iters 曲线,其中0代表曲线类型, save.png 代表保存的图片名称
caffe中支持很多种曲线绘制,通过指定不同的类型参数即可,具体参数如下
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&&Notes:
1. Supporting multiple logs.
2. Log file name must end with the lower-cased ".log".
Supported chart types:
0: Test accuracy
1: Test accuracy
vs. Seconds
2: Test loss
3: Test loss
vs. Seconds
4: Train learning rate
5: Train learning rate
vs. Seconds
6: Train loss
7: Train loss
vs. Seconds
最后,看一下效果
本文已收录于以下专栏:
相关文章推荐
0、参考文献
[1] http://blog.csdn.net/u/article/details/
http://blog.csdn.net/YhL...
在caffe的训练过程中,大家难免想图形化自己的训练数据,以便更好的展示结果。如果自己写代码记录训练过程的数据,那就太麻烦了,caffe中其实已经自带了这样的小工具 caffe-master/tool...
训练模型并保存日志文件
       首先建立一个训练数据的脚本文件train.sh,其内容如下,其中,2&&1   | tee examples/mnist/mnist_train_log.log ...
在caffe的训练过程中,大家难免想图形化自己的训练数据,以便更好的展示结果。如果自己写代码记录训练过程的数据,那就太麻烦了,caffe中其实已经自带了这样的小工具 caffe-master/tool...
在caffe的训练过程中,大家难免想图形化自己的训练数据,以便更好的展示结果。如果自己写代码记录训练过程的数据,那就太麻烦了,caffe中其实已经自带了这样的小工具 caffe-master/tool...
转自:http://blog.csdn.net/u/article/details/
在caffe的训练过程中,大家难免想图形化自己的训练数据,以便更好的展示结果。...
#!/usr/bin/env python
# 导入绘图库
from pylab import *
import matplotlib.pyplot as plt
# 导入&咖啡&
import c...
在训练过程中画出accuracy
和loss曲线能够更直观的观察网络训练的状态,以便更好的优化网络的训练。本文主要介绍在基于caffe框架训练网络时,如何利用caffe自带的一些实用的工具包来绘制曲...
记录下使用caffe自带工具绘制accuracy、loss曲线,方法简单,方便展示。
之前已经编译了matcaffe 和 pycaffe
caffe中其实已经自带了这样的小工具 caffe-master/tools/extra/parse_log.sh  caffe-master/t...
他的最新文章
讲师:宋宝华
讲师:何宇健
您举报文章:
举报原因:
原文地址:
原因补充:
(最多只允许输入30个字)caffe自带工具绘制训练accuracy、loss曲线 - CSDN博客
caffe自带工具绘制训练accuracy、loss曲线
在caffe的训练过程中,大家难免想图形化自己的训练数据,以便更好的展示结果。如果自己写代码记录训练过程的数据,那就太麻烦了,caffe中其实已经自带了这样的小工具 caffe-master/tools/extra/parse_log.sh& caffe-master/tools/extra/extract_seconds.py和caffe-master/tools/extra/plot_training_log.py.example ,通过训练指令记录下训练过程,完成训练后通过日志绘制出曲线,具体使用方法如下:
1.记录训练日志
在训练命令中加入一行参数,实现Log日志的记录,以如下finutuning训练为例:
TOOLS = ./build/tools&
GLOG_logtostderr = 0& GLOG_log_dir = examples/foam/Log/ \&
$TOOLS/caffe train \&
& -solver examples/foam/ solver.prototxt& -weightsmodels/bvlc_reference_caffenet/bvlc_reference_caffenet.caffemodel
其中目录改成自己系统的目录,这样训练结束之后,会在Log文件夹中生成每次训练的Log日志caffe.smith-PC..834.3126 和caffe.smith-PC.smith.log.WARNING.834.3126。将第一个文件重命名为curve.log,用于绘曲线。
2.解析训练日志
将最上面说的3个脚本文件拷贝到Log 文件夹下,一个不能少,cd入Log文件夹,执行:
./parse_log.sh curve.log&
后面的参数为log文件名,这样就会在当前文件夹下生成一个.train文件和一个.test文件
3.生成图片
./plot_training_log.py.example 0 curve.png curve.log&
就可以生成训练过程中的Test accuracy& vs. Iters 曲线,其中0代表曲线类型,save.png 代表保存的图片名称,保存在Log文件夹下。
caffe中支持很多种曲线绘制,通过指定不同的类型参数即可,具体参数如下
&&&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&
最后,看一下效果
本文已收录于以下专栏:
相关文章推荐
在训练过程中画出accuracy 和loss曲线能够更直观的观察网络训练的状态,以便更好的优化网络的训练。本文主要介绍在基于caffe框架训练网络时,如何利用caffe自带的一些实用的工具包来绘制曲线...
在caffe的训练过程中,大家难免想图形化自己的训练数据,以便更好的展示结果。如果自己写代码记录训练过程的数据,那就太麻烦了,caffe中其实已经自带了这样的小工具 caffe-master/tool...
训练模型并保存日志文件
       首先建立一个训练数据的脚本文件train.sh,其内容如下,其中,2&&1   | tee examples/mnist/mnist_train_log.log ...
在caffe的训练过程中,大家难免想图形化自己的训练数据,以便更好的展示结果。如果自己写代码记录训练过程的数据,那就太麻烦了,caffe中其实已经自带了这样的小工具 caffe-master/tool...
之前已经编译了matcaffe 和 pycaffe
caffe中其实已经自带了这样的小工具 caffe-master/tools/extra/parse_log.sh  caffe-master/t...
在caffe的训练过程中,大家难免想图形化自己的训练数据,以便更好的展示结果。如果自己写代码记录训练过程的数据,那就太麻烦了,caffe中其实已经自带了这样的小工具 caffe-master/tool...
1. 保存输出到log文件
更改脚本文件 train_caffenet.sh
#!/bin/bash
LOG=examples/test/log-`date +%Y-%m-%d-%H-%M-%S`.l...
转自:http://blog.csdn.net/u/article/details/
在caffe的训练过程中,大家难免想图形化自己的训练数据,以便更好的展示结果。...
曾经用caffe自带的提取训练log的脚本以及画图的脚本,发现plot_traning_lo.py老报错。  就改用Spyder直接运行Python 脚本的方式了。
本文参考了 徐其华的blog ...
由于最近使用caffe训练一个网络,学习了如何使用训练过程中生成的log来绘制loss函数曲线,主要用于观察所训练的网络是否收敛。
前提:安装完caffe后已经对pycaffe和matcaffe编译...
他的最新文章
讲师:宋宝华
讲师:何宇健
您举报文章:
举报原因:
原文地址:
原因补充:
(最多只允许输入30个字)171被浏览19871分享邀请回答#!/bin/bash
LOG=log/train-`date +%Y-%m-%d-%H-%M-%S`.log
CAFFE=~/caffe/build/tools/caffe
$CAFFE train --solver=solver.prototxt --gpu=0 2&&1 | tee $LOG
397 条评论分享收藏感谢收起}

我要回帖

更多关于 caffe loss 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信