博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
caffe parse_log.sh
阅读量:4925 次
发布时间:2019-06-11

本文共 2304 字,大约阅读时间需要 7 分钟。

画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 scriptDIR="$( cd "$(dirname "$0")" ; pwd -P )"if [ "$#" -lt 1 ]thenecho "Usage parse_log.sh /path/to/your.log"exitfiLOG=`basename $1`grep -B 1 'Test ' $1 > aux.txtgrep 'Iteration ' aux.txt | sed  's/.*Iteration \([[:digit:]]*\).*/\1/g' > aux0.txtgrep 'Test net output #0' aux.txt | awk '{print $11}' > aux1.txtgrep 'Test net output #1' aux.txt | awk '{print $11}' > aux2.txt# Extracting elapsed seconds# For extraction of time since this line contains the start timegrep '] Solving ' $1 > aux3.txtgrep 'Testing net' $1 >> aux3.txt$DIR/extract_seconds.py aux3.txt aux4.txt# Generatingecho '#Iters Seconds TestAccuracy TestLoss'> $LOG.testpaste aux0.txt aux4.txt aux1.txt aux2.txt | column -t >> $LOG.testrm aux.txt aux0.txt aux1.txt aux2.txt aux3.txt aux4.txt# For extraction of time since this line contains the start timegrep '] Solving ' $1 > aux.txtgrep ', loss = ' $1 >> aux.txtgrep 'Iteration ' aux.txt | sed  's/.*Iteration \([[:digit:]]*\).*/\1/g' > aux0.txtgrep ', loss = ' $1 | awk '{print $9}' > aux1.txtgrep ', lr = ' $1 | awk '{print $9}' > aux2.txt# Extracting elapsed seconds$DIR/extract_seconds.py aux.txt aux3.txt# Generatingecho '#Iters Seconds TrainingLoss LearningRate'> $LOG.trainpaste aux0.txt aux3.txt aux1.txt aux2.txt | column -t >> $LOG.trainrm 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.logI0619 20:43:38.261850 23209 solver.cpp:189] Solving deeplab_largeFOV

这是自己在电脑上直接执行的grep命令,可以看到,在文件中查询,会返回这个字符串所在的整个这一行。

 

grep -B 1 'Test ' $1 > aux.txt :在第一个参数所在文件中搜索有'Test '的行,显示这些行,并显示第一个有'Test '的行的前1行。如果换成2就是前2行。-A是向后显示。

 

这个脚本是前面一段是提取.test的日志,后半部分是提取.train的日志,两个都用到了aux.txt这几个临时文件,都把他们生成然后删除了。

-b 在显示符合范本样式的那一行之外,并显示该行之前的内容。
来自: grep的-A, -B, -C选项分别可以显示匹配行的后,前,后前多少行内容

 

 

-b 在显示符合范本样式的那一行之外,并显示该行之前的内容。
来自:

 

转载于:https://www.cnblogs.com/ymjyqsx/p/7060779.html

你可能感兴趣的文章
AWS Credentials 使用
查看>>
iOS 多线程,ARC
查看>>
Javascript小技巧,去掉小数位并且不会四舍五入
查看>>
指定初始化方法
查看>>
使用eclipse进行重构
查看>>
vs mfc 静态文本 改变字体大小
查看>>
Hidden Word
查看>>
radios组件
查看>>
Android客户端采用Http 协议Post方式请求与服务端进行数据交互
查看>>
《浙大版-数据结构(第二版)》习题2.5 两个有序链表序列的合并(15 分)<有疑问?变化之后 L1 L2没办法NULL >...
查看>>
Ubuntu18.04 安装Chrome浏览器
查看>>
Linux命令总结_文件的输入与 输出
查看>>
[ZJOI2010]数字计数
查看>>
BW顾问必需要清楚的:时间相关数据建模场景需求分析
查看>>
JSON.parse()与JSON.stringify()的区别
查看>>
idea设置
查看>>
java几种常用的算法
查看>>
关于图书管理系统简单的定位
查看>>
MSIL指令大全
查看>>
Java基础_面向对象之接口
查看>>