fater-rcnn绘制loss图

匿名 (未验证) 提交于 2019-12-03 00:26:01

py-fater-rcnn根据生成的log文件绘制loss图。

一般输出是下图中的第一幅图(对应位置为2,5,1),但本身并没有多大的意义,只有将其平均之后如(对应位置为2,5,6),才能看出loss是否还在下降。


# -*- coding: utf-8 -*- """ Created on Wed Jun 13 09:58:00 2018  @author: ygx """ # -*- coding:utf-8 -*- # !/usr/bin/env python import matplotlib.pyplot as plt f1=open('faster_rcnn_end2end_VGGcp_.txt.2018-06-12_17-51-16','r') lines=f1.readlines() i=0 Iteration=[] loss=[] loss_bbox=[] loss_cls=[] rpn_cls_loss=[] rpn_loss_bbox=[] for line in lines:       if line.find('solver.cpp:229] Iteration')>0:                Iteration.append(int(line.split('Iteration ')[1].split()[0].split(',')[0]))         loss.append(float(line.split(' ')[-1]))         i=i+1         print '***',i,'***'          if line.find('Train net output #0:')>0:                loss_bbox.append(float(line.split(' ')[-6]))     if line.find('Train net output #1:')>0:                loss_cls.append(float(line.split(' ')[-6]))     if line.find('Train net output #2:')>0:                rpn_cls_loss.append(float(line.split(' ')[-6]))     if line.find('Train net output #3:')>0:                rpn_loss_bbox.append(float(line.split(' ')[-6]))           ##总的loss图,我自己sovel文件中设置的是log文件中每20次显示一次        plt.subplot(251) plt.title('loss')  plt.plot(Iteration,loss,c='green')  plt.subplot(252) plt.title('loss_bbox')  plt.plot(Iteration,loss_bbox,c='green')  plt.subplot(253) plt.title('loss_cls')  plt.plot(Iteration,loss_cls,c='green')  plt.subplot(254) plt.title('rpn_cls_loss')  plt.plot(Iteration,rpn_cls_loss,c='green')  plt.subplot(255) plt.title('rpn_loss_bbox')  plt.plot(Iteration,rpn_loss_bbox,c='green')  ##平均的loss图 n=50 #(每20次显示一次loss平均一次loss)20*n表示真正的,这里1000次平均 k=len(Iteration)/n loss_avg_=[] loss_bbox_=[] loss_cls_=[] rpn_cls_loss_=[] rpn_loss_bbox_=[]  for i in range(k):     loss_avg_.append(sum(loss[i*n:(i+1)*n])/n) plt.subplot(256) plt.title('loss_avg')  plt.plot(range(k),loss_avg_,c='red')  for i in range(k):     loss_bbox_.append(sum(loss_bbox[i*n:(i+1)*n])/n) plt.subplot(257) plt.title('loss_bbox_avg') plt.plot(range(k),loss_bbox_,c='red')  for i in range(k):     loss_cls_.append(sum(loss_cls[i*n:(i+1)*n])/n) plt.subplot(258) plt.title('loss_cls_avg')  plt.plot(range(k),loss_cls_,c='red')  for i in range(k):     rpn_cls_loss_.append(sum(rpn_cls_loss[i*n:(i+1)*n])/n) plt.subplot(259) plt.title('rpn_cls_loss_avg')  plt.plot(range(k),rpn_cls_loss_,c='red')  for i in range(k):     rpn_loss_bbox_.append(sum(rpn_loss_bbox[i*n:(i+1)*n])/n)  plt.subplot(2,5,10 ) plt.title('rpn_loss_bbox_avg') plt.plot(range(k),rpn_loss_bbox_,c='red')  plt.show() f1.close()

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!