1. 程式人生 > >caffe的python介面示例

caffe的python介面示例


import caffe #匯入caffe的python介面
 
 
caffe.set_mode_gpu()  #設定成gpu模式或者設定成cpu模式 caffe.set_mode_cpu()
 
 
net = caffe.Classifier(
model_file='deploy prototxt檔案路徑',
pretrained_file='生成的二進位制caffemodel模型的路徑',
mean=np.load('均值檔案的路徑'),
raw_scale=255 #若使用的原始影象值在0-255,則保留該引數
) #至此,初始化caffe的分類器模型,儲存到變數
 
 
nettransformer = caffe.io.Transformer({'data': net.blobs['data'].data.shape}) # caffe.io.Transformer 是用於預處理的類。事先填寫進行預處理的要求。
transformer.set_transpose('data', (2,0,1)) #將 高x寬x通道,轉化為,通道x高x寬的格式
 
 
img=caffe.io.load_image('圖片路徑') #讀取影象
newImg=transformer.preprocess('data',img ) #設定data層的資料,這裡以單張影象為例。將讀取的影象傳入,獲得按之前設定的預處理方式處理好的新影象(通道x高x寬)。
 
 
net.blobs['data'].reshape(影象數,原來訓練時定義的通道數,訓練時影象的高,訓練時影象的寬) #
net.blobs['data'].data[...] = newImg #讓網路模型的資料層獲取預處理好的影象,要傳入多張影象,參考numpy的教程,將影象堆疊成多維矩陣(影象數x通道x高x寬)。
 
out = net.forward() #讓資料通過整個訓練好的模型,前向傳播
 
 
filters = net.params['層的名稱,如檔案中定義好的conv1'][0].data #獲取指定層的filters
feat = net.blobs['conv1'].data #獲取conv1層的特徵圖譜
prediction=out['loss'].argmax() #直接得到模型輸出的最終結果
--------------------- 
作者:godissleeping 
來源:CSDN 
原文:https://blog.csdn.net/godissleeping/article/details/50475952 
版權宣告:本文為博主原創文章,轉載請附上博文連結!