Caffe 初識,揭開面紗

2021-07-08 14:02:10 字數 2953 閱讀 2388

這一段時間把caffe官網上的例子跑了一下,對caffe有了乙個大概的了解。如果你想對caffe有個比較清晰的了解,建議認真閱讀官網上的資料,尤其在caffe資料極少的情況下,這種方法是最有效的途徑,可以讓你少走許多彎路,不要上來就在網上隨便找個教程配置環境,上來就想跑例子。。博主就是赤裸裸的例子,在配置環境的時候浪費了好多時間

一、caffe的基本組成 

乙個caffe的工程主要包含兩個部分:網路模型,引數配置,分別對應***.prototxt , ****_solver.prototxt檔案。

網路模型:

即定義你網路的每一層,下圖是用caffe中 /python/draw_net.py畫出的的siamese的模型,非常清晰

層包含:

data: 一般指輸入層,包含資料路徑,批處理資料大小batch_size,scale表示資料表示在[0,1],0.00390625即 1/255

convoluation:卷積層,blobs_lr:1 , blobs_lr:2分別表示weight 及bias更新時的學習率,這裡權重的學習率為solver.prototxt檔案中定義的學習率真,bias的學習率真是權重學習率的2倍,這樣一般會得到很好的收斂速度。

num_output表示濾波的個數,kernelsize表示濾波的大小,stride表示步長,weight_filter表示濾波的型別

pooling: 池化層

inner_product: 其實表示全連線,不要被名字誤導

relu:啟用函式,非線性變化層 max( 0 ,x ),一般與convolution層成對出現

引數配置檔案:

***_solver.prototxt檔案定義一些模型訓練過程中需要到的引數,比較學習率,權重衰減係數,迭代次數,使用gpu還是cpu等等

訓練出的模型被存為***.caffemodel,可供以後使用。

二、使用caffe訓練模型包含以下幾個步驟:

準備資料

重建lmdb/leveldb檔案,caffe支援三種資料格式輸入:images, levelda, lmdb

定義.prototxt , solver.prototxt檔案

訓練模型

三、caffe中比較有用且基礎的介面

1、訓練模型,比如使用mnist的例子

1

./build/tools/caffe train --solver=examples/mnist/lenet_solver.prototxt

2、觀察各個階段的執行時間可以使用

3、使用已有模型提取特徵

./build/tools/extract_features.bin models/bvlc_reference_caffenet/bvlc_reference_caffenet.caffemodel examples/_temp/imagenet_val.prototxt conv5 examples/_temp/features 10
conv5表示提取第五個卷積層的特徵, examples/_temp/feaures表示存放結果的目錄

4、對已有模型進行find-tuning,比如我們現在有乙個1000類的分類模型,但目前我們的需求僅是20類,此時我們不需要重新訓練乙個模型,只需要將最後一層換成20類的softmax層,然後使用已有資料對原模型進行fine-tuning即可

./build/tools/caffe train -solver models/finetune_flickr_style/solver.prototxt -weights models/bvlc_reference_caffenet/bvlc_reference_caffenet.caffemodel -gpu 0
如果使用cpu模式,那麼最後的-gpu省略

5、還有乙個是python下面的介面,draw_net.py可以根據.prototxt檔案將模式用圖示的方法表示出來,博文開始的模型圖即用該介面所繪

./python/draw_net.py ./examples/siamese/mnist_siamese.prototxt   ./examples/siamese/mnist_siamese.png
第乙個引數為模型檔案,第二個引數為所繪模型圖的儲存位址

四、執行caffe自帶例子需要注意的問題

1、需要在caffe_root路徑下執行所有操作,因為所有的操作都是基於該路徑的,如資料的路徑等

2、建議在sudo許可權下執行,一般使用者許可權下執行時有時會報錯

3、在執行程式前確定你的環境配置正確,以免在後面浪費時間,環境配置見caffe + ubuntu14.04 + cuda 6.5 無gpu配置

Caffe 初識,揭開面紗

這一段時間把caffe官網上的例子跑了一下,對caffe有了乙個大概的了解。如果你想對caffe有個比較清晰的了解,建議認真閱讀官網上的資料,尤其在caffe資料極少的情況下,這種方法是最有效的途徑,可以讓你少走許多彎路,不要上來就在網上隨便找個教程配置環境,上來就想跑例子。博主就是赤裸裸的例子,在...

揭開信貸神秘面紗

貸款信用保險是指保險人對銀行或其他金融機構與企業之間的借貸合同進行擔保,以承保借款人信譽風險的保險。在貸款信用保險中,貸款方 即債權人 是投保人。但保單簽發後,貸款方即成為被保險人。當企業無法歸還貸款時,債權人可以從保險那裡獲得補償。貸款人在獲得保險人的補償後,必須將債權轉讓給保險人,由保險人向借款...

揭開Zookeeper神秘面紗

zookeeper是乙個開源的分布式的,為分布式應用提供協調服務的apache專案。hadoop 和hbase的重要元件。它是乙個為分布式應用 提供一致性服務 的軟體,提供的功能包括 配置維護 網域名稱服務 分布式同步 組服務 等。1 zookeeper 乙個領導者 leader 多個跟隨者 fol...