您好,登錄后才能下訂單哦!
mean.binaryproto轉mean.npy
使用Caffe的C++接口進行操作時,需要的圖像均值文件是pb格式,例如常見的均值文件名為mean.binaryproto;但在使用python接口進行操作時,需要的圖像均值文件是numpy格式,例如mean.npy。所以在跨語言進行操作時,需要將mean.binaryproto轉換成mean.npy,轉換代碼如下:
import caffe import numpy as np MEAN_PROTO_PATH = 'mean.binaryproto' # 待轉換的pb格式圖像均值文件路徑 MEAN_NPY_PATH = 'mean.npy' # 轉換后的numpy格式圖像均值文件路徑 blob = caffe.proto.caffe_pb2.BlobProto() # 創建protobuf blob data = open(MEAN_PROTO_PATH, 'rb' ).read() # 讀入mean.binaryproto文件內容 blob.ParseFromString(data) # 解析文件內容到blob array = np.array(caffe.io.blobproto_to_array(blob))# 將blob中的均值轉換成numpy格式,array的shape (mean_number,channel, hight, width) mean_npy = array[0] # 一個array中可以有多組均值存在,故需要通過下標選擇其中一組均值 np.save(MEAN_NPY_PATH ,mean_npy)
已知圖像均值,構造mean.npy
如果已知圖像中每個通道的均值,例如3通道圖像每個通道的均值分別為104,117,123,我們也可以通過其構造mean.npy。代碼如下:
import numpy as np MEAN_NPY_PATH = 'mean.npy' mean = np.ones([3,256, 256], dtype=np.float) mean[0,:,:] = 104 mean[1,:,:] = 117 mean[2,:,:] = 123 np.save(MEAN_NPY, mean)
載入mean.npy
上面我們用兩種方式構造了均值文件mean.npy,在使用時載入mean.npy的代碼如下:
import numpy as np mean_npy = np.load(MEAN_NPY_PATH) mean = mean_npy.mean(1).mean(1)
以上這篇Caffe均值文件mean.binaryproto轉mean.npy的方法就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持億速云。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。