1. caffe 网络结构可视化

http://ethereon.github.io/netscope/quickstart.html

将网络结构复制粘贴到左侧的编辑框,按Shift+Enter就可以显示出你的网络结构

2. caffe计算图片的均值

使用caffe自带的均值计算工具

./build/tools/compute_image_mean ROOT_OF_IMAGES  ROOT_TO_PLACE_MEAN_FILE

第一个参数:需要计算均值的图片路径,格式为LMDB训练数据

第二个参数:计算出来的结果保存路径

./build/tools/compute_image_mean project/SqueezeNet/SqueezeNet_v1.0/test_lmdb project/SqueezeNet/SqueezeNet_v1.0/test_mean.binaryproto

python格式的均值计算 

先用LMDB格式数据,计算出二进制格式均值,然后转换成python格式均值

  1. #!/usr/bin/env python
  2. import numpy as np
  3. import sys,caffe
  4.  
  5. if len(sys.argv)!=3:
  6. print "Usage: python convert_mean.py mean.binaryproto mean.npy"
  7. sys.exit()
  8.  
  9. blob = caffe.proto.caffe_pb2.BlobProto()
  10. bin_mean = open( sys.argv[1] , \'rb\' ).read()
  11. blob.ParseFromString(bin_mean)
  12. arr = np.array( caffe.io.blobproto_to_array(blob) )
  13. npy_mean = arr[0]
  14. np.save( sys.argv[2] , npy_mean )  

脚本保存为convert_mean.py

调用格式:

  1. sudo python convert_mean.py mean.binaryproto mean.npy

mean.npy是我们需要的python格式二进制文件

3. 可视化训练过程中的 training/testing loss

  •  NVIDIA-DIGITS: caffe训练可视化工具(数据准备,模型选择,学习曲线可视化,多GPU训练
  • 训练时 –solver=solver.ptototxt 2>&1 | tee train.log, 然后使用 ./tools/extra/parse_log.py train.log将其转为两个csv 文件分别包括train loss和test loss, 然后使用以下脚本画图:
  1. import pandas as pd
  2. from matplotlib import *
  3. from matplotlib.pyplot import *
  4.  
  5. train_log = pd.read_csv("./lenet_train.log.train")
  6. test_log = pd.read_csv("./lenet_train.log.test")
  7. _, ax1 = subplots(figsize=(15, 10))
  8. ax2 = ax1.twinx()
  9. ax1.plot(train_log["NumIters"], train_log["loss"], alpha=0.4)
  10. ax1.plot(test_log["NumIters"], test_log["loss"], \'g\')
  11. ax2.plot(test_log["NumIters"], test_log["acc"], \'r\')
  12. ax1.set_xlabel(\'iteration\')
  13. ax1.set_ylabel(\'train loss\')
  14. ax2.set_ylabel(\'test accuracy\')
  15. savefig("./train_test_image.png") #save image as png

  

版权声明:本文为vincentcheng原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://www.cnblogs.com/vincentcheng/p/8515111.html