為了完成畢業設計,還需要繼續學習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的訓練自己資...