Caffe深度學習操作流程

2021-07-27 10:35:46 字數 3230 閱讀 4423

caffe模型訓練流程

準備訓練集與測試集,把相應的放在對應的目錄下。如:訓練目錄:e:/data/train/ ,測試目錄: e:/data/test/。同時編寫相應的指令碼檔案存放所對應的列表清單,即train.txt和test.txt(列表清單中與對應的進行一一對應);

step2:轉換為對應的lmdb資料格式;

深度學習(caffe)原始資料格式為(jpg,jpeg,png,tif),同時大小格式不統一。而在(caffe)深度學習中經常使用的資料型別是lmdb或leveldb,因此需要把轉換為相對應的資料庫格式(lmdb為常用格式,效率較高)。

caffe工具自帶的有convert_imageset.exe可執行工具,需要輸入相對應的引數格式即可生成。

#!/usr/bin/en sh

data=e:/testdata/second-train-model   

rm -rf $data/img_train_lmdb

e:/caffe-gpu-matlab/caffe-master/build/x64/release/convert_imageset.exe --shuffle \

--resize_height=256 --resize_width=256 \

e:/testdata/second-train-model/train/  \

$data/train.txt  \

$data/img_train_lmdb

以上是訓練資料格式的轉換,同理把測試轉換為相應的lmdb資料格式。

step3:計算均值檔案並儲存

減去均值再訓練,會提高訓練速度和精度,因此,一般都會有這個操作。caffe程式提供了乙個計算均值的檔案compute_image_mean.exe,直接呼叫。

編輯以下檔案並儲存;

data=e:/testdata/second-train-model

tools=e:/caffe-gpu-matlab/caffe-master/build/x64/release

$tools/compute_image_mean.exe $data/img_train_lmdb \

$data/imagenet_mean.binaryproto

echo "done."

step4:建立模型並編寫配置檔案

caffe自帶四個模型檔案位於...\caffe-master\models資料夾下面,在這我們使用caffenet模型。複製其中的solver.prototxt train_val.prototxt,修改其中的配置檔案符合自己的程式需要!

solver.prototxt配置檔案如下:

net:"e:/testdata/second-train-model/train_val.prototxt"   #訓練檔案路徑

test_iter: 10                 #test_iter* batchsize(測試集的)=測試集的大小                     

test_interval: 2              #表示訓練的時候,每迭代500次就進行一次測試

base_lr: 0.001                #學習率

lr_policy: "step"             #學習率變化規律                            

gamma: 0.1                    #學習率變化指數

stepsize: 100000              #學習率變化頻率

display: 20                   #螢幕顯示間隔

max_iter: 1000                #總迭代次數1000

momentum: 0.9                 #動量

weight_decay: 0.0005          #權重衰減

snapshot: 500                 #500次儲存一次快照              

snapshot_prefix:"e:/testdata/second-train-model/caffenet_train"   #模型儲存路徑

solver_mode: gpu                 #cpu或gpu  

注:配置檔案預設採用sgd(梯度下除法模式);                                

train_val.prototxt配置檔案如下:

name: "caffenet"

layer }

dim:10表示對待識別樣本進行資料增廣的數量,該值的大小可自行定義。但一般會進行5次crop,將整幅影象分為多個flip。該值為10則表示會將待識別的樣本分為10部分輸入到網路進行識別。如果相對整幅影象進行識別而不進行影象資料增廣,可將該值設定為1

layer {

name: "fc8"

type: "innerproduct"

bottom: "fc7"

top: "fc8"

inner_product_param {

num_output: 5     #設定成自己的樣本種類個數

layer {

name: "prob"

type: "softmax"

bottom: "fc8"

top: "prob"

編寫指令碼檔案並儲存為.sh或.bat執行

深度學習caffe搭建

經過乙個月的時間,從開始接觸深度學習到環境搭建終於成功了!發表第一篇部落格 慶祝一下 按照21天實戰caffe 進行架構搭建出現的錯誤大致的解決辦法,ubuntu用的是14.04 按照裡面第三天的要求進行操作 後來到第五天發現這些依賴包沒什麼用 直接到第5天 protobuffer 出現錯誤 caf...

Python 深度學習Caffe

提到 深度學習庫 就不可能不說到caffe。事實上,自從你開啟這個頁面學習深度學習庫,我就敢打保票你肯定聽說caffe。那麼,究竟caffe是什麼呢?caffe是由berkeley vision and learning center bvlc 建立的深度學習框架。它是模組化的,速度極快。而且被應用...

深度學習 caffe入門學習

目錄下有個caffe.exe net examples mnist lenet train test.prototxt 定義網路結構檔案,也就是我們上一步編寫的檔案 test iter 100 test interval 500 每隔500次用測試資料,做一次驗證 base lr 0.01 學習率 ...