caffe中accuracy和loss用python从log日志里面获取

import re
import pylab as pl
import numpy as np

if __name__=="__main__":
   accuracys=[]
   losses=[]
   with open(r‘/home/wxl/bnscallog.txt‘,‘r‘) as f:
	lines=f.readlines();
	print len(lines)
	str="".join(lines)
	str=str.replace(‘\n‘,‘‘)
	print len(str)
	pattern1=r‘Iteration \d{4,5}, Testing net \(#0\)\w\d{1,6} \d{2}:\d{2}:\d{2}\.\d{1,6} \d{1,6} solver\.cpp:\d{2,5}]     Test net output #0: accuracy = 0\.\d{6}‘;
	pattern2=r‘Iteration \d+, loss = 0\.\d{6}‘;
	accuracys=re.findall(pattern1,str);
	losses=re.findall(pattern2,str);
	print len(accuracys),‘aaaa‘;
	print len(losses),‘===‘
   print accuracys

   with open(r‘/home/wxl/project/code/loss‘,‘w+‘) as f1:
	for ac in losses:
		f1.write(ac[10:15])
		f1.write(‘ ‘)
		f1.write(ac[23:]);
		f1.write(‘\n‘);
‘‘‘
   with open(r‘/home/wxl/project/code/loss‘,‘r‘) as f2:
	lines=f2.readlines();
	x=[];
	y=[]
	for line in lines:

		if "," in line:
			line=line.replace(‘,‘,‘‘);
		tmp=line.strip(‘\n‘).split(‘ ‘)
		x.append(int(tmp[0]))
		y.append(float(tmp[-1]))

	pl.plot(x,y)
	pl.show()

‘‘‘

注意:python对圆括号()前面要加上转移字符\,还有点号也要加上转意字符\

时间: 2024-10-27 13:41:53

caffe中accuracy和loss用python从log日志里面获取的相关文章

关于Pytorch中accuracy和loss的计算

这几天关于accuracy和loss的计算有一些疑惑,原来是自己还没有弄清楚. 给出实例 def train(train_loader, model, criteon, optimizer, epoch): train_loss = 0 train_acc = 0 num_correct= 0 for step, (x,y) in enumerate(train_loader): # x: [b, 3, 224, 224], y: [b] x, y = x.to(device), y.to(de

Python Django log日志

log日志 log开发日志 一.创建项目 1.python -m venv ll_env # 创建虚拟环境 2.source ll_env/bin/activate # 激活虚拟环境 3.pip install django # 安装django 4.django-admin.py startproject project . # 创建项目 5.python manage.py migrate # 创建数据库 6.python manage.py runserver # 测试项目 二.创建应用程

常用python日期、日志、获取内容循环的代码片段

近段时间对shell脚本和python进行了梳理,将一些脚本中常用的内容,考虑多种方法整理出来,形成有用的代码片段,这样就可以在需要的时候直接使用,也可以用于备忘和思考.本次整理的代码片段有: python中日期.时间常用获取方法: 记录处理日志的logging模块使用:从目录,文件,命名结果中,获取循环条件进行循环.我将这些有用的代码片段整理在一个Python脚本中了,并且测试可用.脚本内容如下: #!/usr/bin/env python #_*_coding:utf8_*_ #常用日期和时

如何在caffe中增加layer以及caffe中triple loss layer的实现

关于triplet loss的原理,目标函数和梯度推导在上一篇博客中已经讲过了,具体见:triplet loss原理以及梯度推导,这篇博文主要是讲caffe下实现triplet loss,编程菜鸟,如果有写的不优化的地方,欢迎指出. 1.如何在caffe中增加新的layer 新版的caffe中增加新的layer,变得轻松多了,概括说来,分四步: 1)在./src/caffe/proto/caffe.proto 中增加 对应layer的paramter message: 2)在./include/

caffe 中 python 数据层

caffe中大多数层用C++写成. 但是对于自己数据的输入要写对应的输入层,比如你要去图像中的一部分,不能用LMDB,或者你的label 需要特殊的标记. 这时候就需要用python 写一个输入层. 如在fcn 的voc_layers.py 中 有两个类: VOCSegDataLayer SBDDSegDataLayer 分别包含:setup,reshape,forward, backward, load_image, load_label. 不需要backward 没有参数更新. import

Caffe中增加新的layer以及Caffe中triplet loss layer的实现

关于Tripletloss的原理,目标函数和梯度推导在上一篇博客中已经讲过了,具体见:Tripletloss原理以及梯度推导,这篇博文主要是讲caffe下实现Tripletloss,编程菜鸟,如果有写的不优化的地方,欢迎指出. 尊重原创,转载请注明:http://blog.csdn.net/tangwei2014 1.如何在caffe中增加新的layer 新版的caffe中增加新的layer,变得轻松多了,概括说来,分四步: 1)在./src/caffe/proto/caffe.proto 中增

CAFFE中训练与使用阶段网络设计的不同

神经网络中,我们通过最小化神经网络来训练网络,所以在训练时最后一层是损失函数层(LOSS), 在测试时我们通过准确率来评价该网络的优劣,因此最后一层是准确率层(ACCURACY). 但是当我们真正要使用训练好的数据时,我们需要的是网络给我们输入结果,对于分类问题,我们需要获得分类结果,如下右图最后一层我们得到 的是概率,我们不需要训练及测试阶段的LOSS,ACCURACY层了. 下图是能过$CAFFE_ROOT/python/draw_net.py绘制$CAFFE_ROOT/models/caf

Caffe中对MNIST执行train操作执行流程解析

之前在 http://blog.csdn.net/fengbingchun/article/details/49849225 中简单介绍过使用Caffe train MNIST的文章,当时只是仿照caffe中的example实现了下,下面说一下执行流程,并精简代码到仅有10余行: 1.        先注册所有层,执行layer_factory.hpp中类LayerRegisterer的构造函数,类LayerRegistry的AddCreator和Registry静态函数:关于Caffe中Lay

如何在caffe中添加新的Layer

如何在caffe中添加新的Layer 本文分为两部分,先写一个入门的教程,然后再给出自己添加maxout与NIN的layer的方法 (一) 其实在Github上已经有答案了(https://github.com/BVLC/caffe/issues/684) Here's roughly the process I follow. Add a class declaration for your layer to the appropriate one of common_layers.hpp,