import caffe
import numpy as np
import sys
if len(sys.argv) != 3:
print "Usage: python convert_protomean.py proto.mean out.npy"
sys.exit()
blob = caffe.proto.caffe_pb2.BlobProto()
data = open( sys.argv[1] , 'rb' ).read()
blob.ParseFromString(data)
arr = np.array( caffe.io.blobproto_to_array(blob) )
out = arr[0]
np.save( sys.argv[2] , out )
# Make sure that caffe is on the python path:caffe_root = '/home/blcv/LIB/caffe/' # this file is expected to be in {caffe_root}/examplesimport syssys.path.insert(0, caffe_root + 'python')import caffeimport numpy as np
#Convert mean file produced by Caffe to numpy array, assume 3 chanels#python bin_to_npy.py dim_image_mean path_to_mean_caffe name_output
channels = 3
a = caffe.io.caffe_pb2.BlobProto()with open(sys.argv[2],'rb') as f: a.ParseFromString(f.read())
means=a.datameans=np.asarray(means)print means.shapes = int(sys.argv[1])means=means.reshape(channels,s,s)np.save(sys.argv[3],means)