在caffe中,如果使用的是c++接口,均值文件默認為.binaryproto格式,而如果使用的是python接口,均值文件默認的是numpy的.npy格式,在工作中有時需要將兩者進行互相轉換,具體方式如下:
binaryproto -> npy
import numpy as npimport caffeimport sysblob = caffe.proto.caffe_pb2.BlobProto()data = open( 'mean.binaryproto' , 'rb' ).read()blob.ParseFromString(data)arr = np.array( caffe.io.blobproto_to_array(blob) )out = arr[0]np.save( 'mean.npy' , out )
npy -> binaryproto
data_mean is 1*H*W
import numpy as npimport caffeimport sysblob = caffe.proto.caffe_pb2.BlobProto()with open('mean.npy','rb') as f: data_mean = numpy.load(f)blob.channels=1blob.height = data_mean.shape[0]blob.width = data_mean.shape[1]blob.data.extend(data_mean.astype(float).flat)binaryproto_file = open('mean.binaryproto', 'wb' ) binaryproto_file.write(blob.SerializeToString())binaryproto_file.close()
以上這篇caffe binaryproto 與 npy相互轉換的實例講解就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持武林站長站。
新聞熱點
疑難解答