訓練自己的資料

2021-07-15 20:27:48 字數 3114 閱讀 3874

為了完成畢業設計,還需要繼續學習caffe,並能夠成功地訓練自己的實驗資料,這裡整理caffe整個訓練過程。 

使用caffe訓練卷積神經網路主要包括以下幾個步驟:(1)預處理影象,一般是指將影象轉化為具有同樣大小的畫素;(2)根據設計好的網路結構配置相應的網路結構檔案和訓練引數檔案;(3)訓練模型並測試結果;(4)視覺化結果(如果需要)。

1.準備資料

caffe的訓練資料可以來自資料庫檔案leveldb和lmdb以及,對於caffe資料層以及引數的介紹可以進一步參考部落格 

有人做過實驗,說使用lmdb的讀取速度比leveldb快,這裡我選取lmdb實驗。進一步去做的是就生成帶有標籤的train和test檔案。

(1)生成標籤檔案

首先在examples下建立jd2資料夾,並進一步編寫shell檔案生成train.txt和test.txt

mkdir examples/jd2
gedit examples/jd2/create_filelist.sh
create_filelist.sh的檔案內容如下:

done對於轉化為leveldb和lmdb的方法,請參考部落格

執行shell檔案,sh examples/jd2/create_filelist.sh,生成檔案像下面: 

9090

(2)轉化lmdb

首先編寫shell檔案

gedit examples/jd2/create_lmdb.sh
#!/usr/bin/env sh

my=examples/jd2

rm -rf $my/img_train_lmdb

build/tools/convert_imageset \

--shuffle \

--resize_height=256 \

--resize_width=256 \

/home/whutwf/caffe/data/jd2/ \

$my/train.txt \

$my/img_train_lmdb

rm -rf $my/img_test_lmdb

build/tools/convert_imageset \

--shuffle \

--resize_width=256 \

--resize_height=256 \

/home/whutwf/caffe/data/jd2/ \

$my/test.txt \

$my/img_test_lmdb

執行shell檔案生成連個資料夾img_train_lmdb和img_test_lmdb

(3)生成均值檔案

減去均值再訓練,會提高訓練速度和精度。因此,一般都會有這個操作。 

首先建立shell檔案

#!/usr/bin/env sh

# create_mean.sh

build/tools/compute_image_mean examples/jd2/img_train_lmdb examples/jd2/mean.binaryproto

caffe有現有的網路檔案,我們可以使用,也可以去github尋找自己適合的網路檔案。

cp models/bvlc_reference_caffenet/solver.prototxt examples/jd2/

cp models/bvlc_reference_caffenet/train_val.prototxt examples/jd2/

修改solver.prototxt檔案

net: "examples/jd2/train_val.prototxt"

test_iter: 2

test_interval: 50

base_lr: 0.001

lr_policy: "step"

gamma: 0.1

stepsize: 100

display: 20

max_iter: 500

momentum: 0.9

weight_decay: 0.005

solver_mode: cpu #我使用的是cpu模式

對於train_val.prototxt只需修改檔案路徑和分類個數

name: "caffenet"

layer

transform_param

data_param

}layer

transform_param

data_param

}······

······

······

建立shell檔案並執行(訓練資料)

#!/usr/bin/env sh

# train.sh

build/tools/caffe train -solver examples/myfile/solver.prototxt

對於solver.prototxt配置請參考 

參考文獻: 

[1]denny的學習專欄-caffe學習系列(12):訓練和測試自己的

[2]薛開宇學習筆記

caffe訓練自己的資料

本文介紹如何使用 caffe 對自己的影象資料進行分類。1 資料庫準備 由於資料收集比較費時,為了簡單說明,我用了兩類,dog和 bird 每種約 300張。train200 張,val100張。新建乙個資料夾 mine 放自己的資料,在 mine 資料夾下新建 train 和val 資料夾,tra...

使用caffe訓練自己的資料

這裡先介紹採用image net來訓練自己的資料 假設放在 data train 假設放在 data val 格式樣例 格式樣例 假設這兩個檔案均放在 data 這裡將資料最好放在自己的使用者組裡面,放在別的使用者組,在呼叫image net的時候可能會涉及到許可權問題導致執行失敗。example ...

YOLO訓練自己的資料集

很高興現在已經有幾百人通過我的教程成功地使用yolo處理自己的資料集。最近一直在用cnn的模型做影象二分類,但苦於效果不佳,於是把影象分類問題轉作目標識別問題。做目標識別選擇了yolo you only look once 乙個最近推出的方法,突出的優點就是速度快。查詢了網上關於yolo的訓練自己資...