# -*- coding:utf-8 -*-
import numpy as np
import matplotlib.pyplot as plt
# matplotlib inline
import sys
reload(sys)
sys.setdefaultencoding('utf8')
#設定預設顯示引數
plt.rcparams['figure.figsize'] = (10, 10) # 影象顯示大小
plt.rcparams['image.interpolation'] = 'nearest' # 最近鄰差值: 畫素為正方形
plt.rcparams['image.cmap'] = 'gray' # 使用灰度輸出而不是彩色輸出
# caffe模組要在python的路徑下;
# 這裡我們將把caffe 模組新增到python路徑下.
import sys
caffe_root = '/home/lxw/caffe/' #該檔案要從路徑/examples下執行,否則要調整這一行。
sys.path.insert(0, caffe_root + 'python')
import caffe
import os
if os.path.isfile(caffe_root + 'models/bvlc_reference_caffenet/bvlc_reference_caffenet.caffemodel'):
print 'caffenet found.'
else:
print 'downloading pre-trained caffenet model...'
# !../scripts/download_model_binary.py ../models/bvlc_reference_caffenet
caffe.set_mode_cpu()
model_def = caffe_root + 'models/bvlc_reference_caffenet/deploy.prototxt'
model_weights = caffe_root + 'models/bvlc_reference_caffenet/bvlc_reference_caffenet.caffemodel'
net = caffe.net(model_def, # 定義模型結構
model_weights, # 包含了模型的訓練權值
caffe.test) # 使用測試模式(不執行dropout)
# 載入imagenet影象均值 (隨著caffe一起發布的)
mu = np.load(caffe_root + 'python/caffe/imagenet/ilsvrc_2012_mean.npy')
mu = mu.mean(1).mean(1) #對所有畫素值取平均以此獲取bgr的均值畫素值
print 'mean-subtracted values:', zip('bgr', mu)
# 對輸入資料進行變換
transformer = caffe.io.transformer()
transformer.set_transpose('data', (2,0,1)) #將影象的通道數設定為outermost的維數
transformer.set_mean('data', mu) #對於每個通道,都減去bgr的均值畫素值
transformer.set_raw_scale('data', 255) #將畫素值從[0,255]變換到[0,1]之間
transformer.set_channel_swap('data', (2,1,0)) #交換通道,從rgb變換到bgr
# 設定輸入影象大小
net.blobs['data'].reshape(50, # batch 大小
3, # 3-channel (bgr) images
227, 227) # 影象大小為:227x227
# 載入影象(caffe自帶的)並進行預處理
caffe練習例項(3) 使用訓練好的模型
input data input shapelayer include opencv2 dnn.hpp include opencv2 imgproc.hpp include opencv2 highgui.hpp using namespace cv using namespace cv dnn ...
使用caffe訓練好的模型測試單張手寫數字
使用caffe訓練好的模型測試單張手寫數字 初次學習caffe的時候都會按照網上的教程,對caffe經典案例手寫字型識別進行訓練一下,很滿意,訓練完後可以獲得99 的準確率,而且可以獲得乙個訓練好的lenet iter 10000.caffemodel這麼乙個模型。很多人會有困惑,有這麼乙個模型,我...
測試乙個訓練好的caffe模型
在學習caffe的過程中,訓練了出了模型出來,出了當時的準確率和loss值,並沒有看到給定輸入看到真正的輸出,這個時候需要測試一下訓練出來的模型,實際檢視一下效果,其中用到的配置檔案和網路模型在caffe的目錄下都有,自己測試自己的模型時需要修改為自己的 prototxt和 caffemodel u...