caffe的python介面示例
阿新 • • 發佈:2018-12-05
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 版權宣告:本文為博主原創文章,轉載請附上博文連結!