caffe parse_log.sh
画loss曲线需要用到此shell脚本
#!/bin/bash
# Usage parse_log.sh caffe.log
# It creates the following two text files, each containing a table:
# caffe.log.test (columns: '#Iters Seconds TestAccuracy TestLoss')
# caffe.log.train (columns: '#Iters Seconds TrainingLoss LearningRate') # get the dirname of the script
DIR="$( cd "$(dirname "$0")" ; pwd -P )" if [ "$#" -lt ]
then
echo "Usage parse_log.sh /path/to/your.log"
exit
fi
LOG=`basename $`
grep -B 'Test ' $ > aux.txt
grep 'Iteration ' aux.txt | sed 's/.*Iteration \([[:digit:]]*\).*/\1/g' > aux0.txt
grep 'Test net output #0' aux.txt | awk '{print $11}' > aux1.txt
grep 'Test net output #1' aux.txt | awk '{print $11}' > aux2.txt # Extracting elapsed seconds
# For extraction of time since this line contains the start time
grep '] Solving ' $ > aux3.txt
grep 'Testing net' $ >> aux3.txt
$DIR/extract_seconds.py aux3.txt aux4.txt # Generating
echo '#Iters Seconds TestAccuracy TestLoss'> $LOG.test
paste aux0.txt aux4.txt aux1.txt aux2.txt | column -t >> $LOG.test
rm aux.txt aux0.txt aux1.txt aux2.txt aux3.txt aux4.txt # For extraction of time since this line contains the start time
grep '] Solving ' $ > aux.txt
grep ', loss = ' $ >> aux.txt
grep 'Iteration ' aux.txt | sed 's/.*Iteration \([[:digit:]]*\).*/\1/g' > aux0.txt
grep ', loss = ' $ | awk '{print $9}' > aux1.txt
grep ', lr = ' $ | awk '{print $9}' > aux2.txt # Extracting elapsed seconds
$DIR/extract_seconds.py aux.txt aux3.txt # Generating
echo '#Iters Seconds TrainingLoss LearningRate'> $LOG.train
paste aux0.txt aux3.txt aux1.txt aux2.txt | column -t >> $LOG.train
rm aux.txt aux0.txt aux1.txt aux2.txt aux3.txt
$1表示第一个参数,即命令行输入的第一个参数,parse_log.sh caffe.log,caffe.log就是第一个参数。
grep是linux搜索命令,grep '] Solving ' $1 > aux.txt就是在第一参数里找] Solving,然后把这个所在行重定向到aux.txt文件。
bnrc@bnrc:~$ grep '] Solving ' /home/bnrc/fast-rcnn/caffe-fast-rcnn/tools/extra/out.log
I0619 ::38.261850 solver.cpp:] Solving deeplab_largeFOV
这是自己在电脑上直接执行的grep命令,可以看到,在文件中查询,会返回这个字符串所在的整个这一行。
grep -B 1 'Test ' $1 > aux.txt :在第一个参数所在文件中搜索有'Test '的行,显示这些行,并显示第一个有'Test '的行的前1行。如果换成2就是前2行。-A是向后显示。
这个脚本是前面一段是提取.test的日志,后半部分是提取.train的日志,两个都用到了aux.txt这几个临时文件,都把他们生成然后删除了。
来自: http://man.linuxde.net/grepgrep的-A, -B, -C选项分别可以显示匹配行的后,前,后前多少行内容
caffe parse_log.sh的更多相关文章
- 5.caffe:train.sh 和 test.sh (训练与测试 )
一,train.sh #!/usr/bin/env sh ./build/tools/caffe train --solver=myself/00b/solver.prototxt # cd CAFF ...
- 6.caffe:create_txt.sh(数据预处理成txt文本文件)
#!/usr/bin/env sh DATA=/home/wp/CAFFE/caffe-master/myself/00b MY=/home/wp/CAFFE/caffe-master/myself/ ...
- 8.caffe:make_mean.sh( 数据平均化 )
个人实践代码如下: #!/usr/bin/env sh # Compute the mean image from the imagenet training lmdb # N.B. this is ...
- 7.caffe:create_lmdb.sh(数据预处理转换成lmdb格式)
个人实践代码如下: #!/usr/bin/env sh # Create the imagenet lmdb inputs # N.B. set the path to the imagenet tr ...
- caffe绘制训练过程的loss和accuracy曲线
转自:http://blog.csdn.net/u013078356/article/details/51154847 在caffe的训练过程中,大家难免想图形化自己的训练数据,以便更好的展示结果.如 ...
- Caffe和py-faster-rcnn日常使用备忘录
罗列日常使用中遇到的问题和解决办法.包括: { caffe使用中的疑惑和解释: 无法正常执行 train/inference 的情况: Caffe基础工具的微小调整,比如绘loss曲线图: 调试pyt ...
- Caffe 根据log信息画出loss,accuracy曲线
在执行训练的过程中,若指定了生成log信息,log信息包含初始化,网络结构初始化和训练过程随着迭代数的loss信息. 注意生成的log文件可能没有.log后缀,那么自己加上.log后缀.如我的log信 ...
- caffe操作技巧
查看网络结构: (1)利用caffe自带的Python,可以将*.prototxt保存为一张图片, sudo python python/draw_net.py *.prototxt *.png ...
- caffe 中 plot accuracy和loss, 并画出网络结构图
plot accuracy + loss 详情可见:http://www.2cto.com/kf/201612/575739.html 1. caffe保存训练输出到log 并绘制accuracy l ...
随机推荐
- 数据库路由中间件MyCat - 源代码篇(5)
此文已由作者张镐薪授权网易云社区发布. 欢迎访问网易云社区,了解更多网易技术产品运营经验. 3. 连接模块 如之前所述,MyCat的连接分为前端和后端,下面是连接基本相关类图: 3.1 Closabl ...
- sessionStorage二种存值取值的方法
//方法一 sessionStorage.setItem('id1','这是一个测试id1'); //存入一个值key:value console.log(sessionStorage.getItem ...
- u17 u18共存
公司用的Unity版本是2017版本的,由于需要尝试一些实验性的新功能,我就安装了Unity2018版本,结果发现Unity2018版本破解之后,Unity2017版本不能用了.那么怎么解决两个版本的 ...
- ai技术体系
- 关于fiddler抓取HTTPS请求443的问题
1.环境:fiddler4.IOS10.3以上 2.需求:使用fiddler抓取IOS上的https请求 3.解决方案 步骤一:设置fiddler 步骤二:手机端安装证书 手机设置代理,打开手机浏览器 ...
- python爬虫——web前端基础(1)
1.HTML的基本结构 <html>内容</html>:HTML文档是由<html></html>包裹,这是HTML文档的文档标记,也称为HTML开始标 ...
- Java代码读取文件
用Java代码读取文件时,保持文件本来的格式(主要是保持换行),这点有时候比较重要.用代码实现也相当简单. private static void readFile() { StringBuilder ...
- 福昕阅读器把pdf某一页保存出来
第一步: 第二步: 第三步: 第四步:点击保存即可
- Python多继承C3算法
Python3 多继承的MRO算法选择.MRO(Method Resolution Order):方法解析顺序. Python3 只保留了C3算法! C3算法解析: 1.C3算法解析 C3算法:MRO ...
- jQuery基础(3)
摘要:jQuery的位置信息,JS的事件流的概念(重点),事件对象,jQuery的事件绑定和解绑,时间委托(时间代理) 一.jQuery的位置信息 jQuery的位置信息跟JS的client系列.of ...