一般都要计算均值,首先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
新闻热点
疑难解答