一般都要計算均值,首先caffe自帶的compute_image_mean函數
這個函數有兩個參數,一個是caffe的lmdb文件,還有一個是生成的binaryPRoto格式均值文件
執行下列.sh腳本
#!/usr/bin/env sh# Compute the mean image from the imagenet training lmdb# N.B. this is available in data/ilsvrc12EXAMPLE=/home/xhj/hjxu-code/createlmdbfile/Metastaticfile#DATA=$EXAMPLE/train_lmdbTOOLS=/home/xhj/caffe/build/toolsecho "Create train_mean..."$TOOLS/compute_image_mean $EXAMPLE/train_lmdb / $EXAMPLE/train_mean.binaryprotoecho "Done"echo "Create test_mean..."$TOOLS/compute_image_mean $EXAMPLE/test_lmdb / $EXAMPLE/test_lmdb/mean.binaryprotoecho "Done."這個時候在EXAMPLE目錄下就可以得到train_lmdb和 test_lmdb兩個文件這是caffe得到的二進制文件,我們可能需要將他轉化為python可視化的.npy格式的文件
執行以下py文件
#!/usr/bin/env python#convert mean.binaryproto to mean,npyimport numpy as npimport syssys.path.append('/home/xhj/caffe/python')import caffeif len(sys.argv)!=3: print "Usage: python convert_mean.py mean.binaryproto mean.npy" sys.exit()blob = caffe.proto.caffe_pb2.BlobProto()bin_mean = open( sys.argv[1] , 'rb' ).read()blob.ParseFromString(bin_mean)arr = np.array( caffe.io.blobproto_to_array(blob) )npy_mean = arr[0]np.save( sys.argv[2] , npy_mean )然后在終端執行以下sudo python convert_mean.py /home/xhj/hjxu-code/createlmdbfile/Metastaticfile/train_mean.binaryproto /home/xhj/hjxu-code/createlmdbfile/Metastaticfile/train_mean.npy這個調用convert_mean.py這個函數,兩個參數,一個是binaryproto文件的位置,一個是生成.npy文件的位置,具體調用如下:python convert_mean.py train_mean.binaryproto train_mean.npy
新聞熱點
疑難解答