Faster-RCNN_TF的loss曲线可视化(tensorflow版本,Faster RCNN的loss曲线可视化)
2018-04-03 10:17
591 查看
我用的Faster-RCNN是tensorflow版本,github地址:Faster-RCNN_TF
查到网上的loss曲线都是直接从log的txt里读取,我的代码不生成txt,所以得自己改。我的思路是每cfg.TRAIN.SNAPSHOT_ITERS步生成一个csv文件,最后读取这个文件再画图。
具体操作如下:
在for iter in range(max_iters):这句的上下对应修改,改后代码如下:
最后画出的结果如下:
额 是不是lr有点大了。。
我只画了all_loss的曲线,其他loss可以相应画出。
有什么问题欢迎交流,谢谢~
查到网上的loss曲线都是直接从log的txt里读取,我的代码不生成txt,所以得自己改。我的思路是每cfg.TRAIN.SNAPSHOT_ITERS步生成一个csv文件,最后读取这个文件再画图。
具体操作如下:
1. 修改train.py
在/lib/fast rcnn/train.py中,train_model(self, sess, max_iters)函数里:在for iter in range(max_iters):这句的上下对应修改,改后代码如下:
####add all_loss = [] rpn_cls_loss = [] rpn_box_loss = [] cls_loss = [] box_loss = [] for iter in range(max_iters): # get one batch blobs = data_layer.forward() # Make one SGD update feed_dict={self.net.data: blobs['data'], self.net.im_info: blobs['im_info'], self.net.keep_prob: 0.5, \ self.net.gt_boxes: blobs['gt_boxes']} run_options = None run_metadata = None if cfg.TRAIN.DEBUG_TIMELINE: run_options = tf.RunOptions(trace_level=tf.RunOptions.FULL_TRACE) run_metadata = tf.RunMetadata() timer.tic() rpn_loss_cls_value, rpn_loss_box_value,loss_cls_value, loss_box_value, _ = sess.run([rpn_cross_entropy, rpn_loss_box, cross_entropy, loss_box, train_op], feed_dict=feed_dict, options=run_options, run_metadata=run_metadata) timer.toc() ####add loss log all_loss.append(rpn_loss_cls_value + rpn_loss_box_value + loss_cls_value + loss_box_value) rpn_cls_loss.append(rpn_loss_cls_value) rpn_box_loss.append(rpn_loss_box_value) cls_loss.append(loss_cls_value) box_loss.append(loss_box_value) if cfg.TRAIN.DEBUG_TIMELINE: trace = timeline.Timeline(step_stats=run_metadata.step_stats) trace_file = open(str(long(time.time() * 1000)) + '-train-timeline.ctf.json', 'w') trace_file.write(trace.generate_chrome_trace_format(show_memory=False)) trace_file.close() if (iter+1) % (cfg.TRAIN.DISPLAY) == 0: print 'iter: %d / %d, total loss: %.4f, rpn_loss_cls: %.4f, rpn_loss_box: %.4f, loss_cls: %.4f, loss_box: %.4f, lr: %f'%\ (iter+1, max_iters, rpn_loss_cls_value + rpn_loss_box_value + loss_cls_value + loss_box_value ,rpn_loss_cls_value, rpn_loss_box_value,loss_cls_value, loss_box_value, lr.eval()) print 'speed: {:.3f}s / iter'.format(timer.average_time) if (iter+1) % cfg.TRAIN.SNAPSHOT_ITERS == 0: last_snapshot_iter = iter self.snapshot(sess, iter) ###add dataframe = pd.DataFrame({'all_loss': all_loss,'rpn_cls_loss':rpn_cls_loss, 'rpn_box_loss':rpn_box_loss,'cls_loss':cls_loss,'box_loss':box_loss}) dataframe.to_csv("xxxxxxxx/loss%d.csv" %(iter+1))
2. 画图
代码如下:#!/usr/bin/env python import os import sys import numpy as np import matplotlib.pyplot as plt import math import re import pylab from pylab import figure, show, legend from mpl_toolkits.axes_grid1 import host_subplot import pandas as pd train_iterations = [] train_loss = [] df = pd.read_csv('xxxxxxxxx/loss2500.csv') train_iterations = df['index'] train_loss = df['all_loss'] host = host_subplot(111) plt.subplots_adjust(right=0.8) # set labels host.set_xlabel("iterations") host.set_ylabel("RPN loss") # plot curves p1, = host.plot(train_iterations, train_loss, label="train RPN loss") host.legend(loc=1) # set label color host.axis["left"].label.set_color(p1.get_color()) host.set_xlim([-150,2500]) host.set_ylim([0., 4]) plt.draw() 4000 plt.show()
最后画出的结果如下:
额 是不是lr有点大了。。
我只画了all_loss的曲线,其他loss可以相应画出。
有什么问题欢迎交流,谢谢~
相关文章推荐
- Faster-Rcnn的loss曲线可视化
- faster RCNN的Python的画出来loss曲线图
- win7下配置faster-rcnn的tensorflow版本(gpu版本)
- Tensorflow框架下Faster-RCNN实践(一)——Faster-RCNN所需数据集制作(附代码)
- 用自己的数据训练Faster-RCNN,tensorflow版本(二)
- tensorflow版本 Faster RCNN训练自己的数据集
- 用自己的数据训练Faster-RCNN,tensorflow版本(一)
- 浅入浅出TensorFlow 7 - 行人检测之Faster-RCNN
- 【caffe-MATLAB】自己编译faster-rcnn的MATLAB版本
- ubuntu14.04配置py-faster-rcnn(GPU版本)
- 目标检测之RCNN,fast RCNN,faster RCNN
- faster_rcnn c++版本的 caffe 封装,动态库(2)
- RCNN系列学习笔记(4):Faster R-CNN
- Faster-RCNN+ZF用自己的数据集训练模型(Python版本)
- Faster RCNN训练出现问题:Matlab版本训练
- Faster-RCNN+ZF用自己的数据集训练模型(Python版本)
- r-cnn faster-rcnn 升级之路
- py-faster-rcnn中demo.py代码与C++版本的代码对比: part03 处理图片:减掉平均值, resize
- tf-faster-rcnn代码理解之trianval_net.py
- tensorflow之faster rcnn 安装(ubuntu16.04版)