久久国产成人av_抖音国产毛片_a片网站免费观看_A片无码播放手机在线观看,色五月在线观看,亚洲精品m在线观看,女人自慰的免费网址,悠悠在线观看精品视频,一级日本片免费的,亚洲精品久,国产精品成人久久久久久久

分享

Caffe學(xué)習(xí)系列(12):訓(xùn)練和測(cè)試自己的圖片

 黑塵子 2017-03-01

學(xué)習(xí)caffe的目的,,不是簡(jiǎn)單的做幾個(gè)練習(xí),最終還是要用到自己的實(shí)際項(xiàng)目或科研中,。因此,,本文介紹一下,從自己的原始圖片到lmdb數(shù)據(jù),,再到訓(xùn)練和測(cè)試模型的整個(gè)流程,。

一、準(zhǔn)備數(shù)據(jù)

有條件的同學(xué),,可以去imagenet的官網(wǎng)http://www./download-images,,下載imagenet圖片來(lái)訓(xùn)練。但是我沒(méi)有下載,,一個(gè)原因是注冊(cè)賬號(hào)的時(shí)候,,驗(yàn)證碼始終出不來(lái)(聽(tīng)說(shuō)是google網(wǎng)站的驗(yàn)證碼,而我是上不了google的),。第二個(gè)原因是數(shù)據(jù)太大了,。,。。

我去網(wǎng)上找了一些其它的圖片來(lái)代替,,共有500張圖片,,分為大巴車(chē)、恐龍,、大象,、鮮花和馬五個(gè)類(lèi),,每個(gè)類(lèi)100張,。需要的同學(xué),可到我的網(wǎng)盤(pán)下載:http://pan.baidu.com/s/1nuqlTnN

編號(hào)分別以3,,4,5,,6,,7開(kāi)頭,各為一類(lèi),。我從其中每類(lèi)選出20張作為測(cè)試,,其余80張作為訓(xùn)練,。因此最終訓(xùn)練圖片400張,測(cè)試圖片100張,,共5類(lèi),。我將圖片放在caffe根目錄下的data文件夾下面。即訓(xùn)練圖片目錄:data/re/train/ ,測(cè)試圖片目錄: data/re/test/

二,、轉(zhuǎn)換為lmdb格式

具體的轉(zhuǎn)換過(guò)程,,可參見(jiàn)我的前一篇博文:Caffe學(xué)習(xí)系列(11):圖像數(shù)據(jù)轉(zhuǎn)換成db(leveldb/lmdb)文件

首先,在examples下面創(chuàng)建一個(gè)myfile的文件夾,,來(lái)用存放配置文件和腳本文件,。然后編寫(xiě)一個(gè)腳本create_filelist.sh,用來(lái)生成train.txt和test.txt清單文件

# sudo mkdir examples/myfile
# sudo vi examples/myfile/create_filelist.sh

編輯此文件,,寫(xiě)入如下代碼,,并保存

復(fù)制代碼
#!/usr/bin/env sh
DATA=data/re/
MY=examples/myfile
echo
"Create train.txt..." rm -rf $MY/train.txt for i in 3 4 5 6 7 do find $DATA/train -name $i*.jpg | cut -d '/' -f4-5 | sed "s/$/ $i/">>$MY/train.txt done echo "Create test.txt..." rm -rf $MY/test.txt for i in 3 4 5 6 7 do find $DATA/test -name $i*.jpg | cut -d '/' -f4-5 | sed "s/$/ $i/">>$MY/test.txt done echo "All done"
復(fù)制代碼

然后,運(yùn)行此腳本

# sudo sh examples/myfile/create_filelist.sh

成功的話(huà),,就會(huì)在examples/myfile/ 文件夾下生成train.txt和test.txt兩個(gè)文本文件,里面就是圖片的列表清單,。

接著再編寫(xiě)一個(gè)腳本文件,,調(diào)用convert_imageset命令來(lái)轉(zhuǎn)換數(shù)據(jù)格式,。

# sudo vi examples/myfile/create_lmdb.sh

插入:

復(fù)制代碼
#!/usr/bin/env sh
MY=examples/myfile

echo "Create train lmdb.."
rm -rf $MY/img_train_lmdb
build/tools/convert_imageset --shuffle --resize_height=256 --resize_width=256 /home/xxx/caffe/data/re/ $MY/train.txt $MY/img_train_lmdb

echo "Create test lmdb.."
rm -rf $MY/img_test_lmdb
build/tools/convert_imageset --shuffle --resize_width=256 --resize_height=256 /home/xxx/caffe/data/re/ $MY/test.txt $MY/img_test_lmdb

echo "All Done.."
復(fù)制代碼

因?yàn)閳D片大小不一,因此我統(tǒng)一轉(zhuǎn)換成256*256大小,。運(yùn)行成功后,,會(huì)在 examples/myfile下面生成兩個(gè)文件夾img_train_lmdb和img_test_lmdb,分別用于保存圖片轉(zhuǎn)換后的lmdb文件,。

三,、計(jì)算均值并保存

圖片減去均值再訓(xùn)練,會(huì)提高訓(xùn)練速度和精度,。因此,,一般都會(huì)有這個(gè)操作。

caffe程序提供了一個(gè)計(jì)算均值的文件compute_image_mean.cpp,,我們直接使用就可以了

# sudo build/tools/compute_image_mean examples/myfile/img_train_lmdb examples/myfile/mean.binaryproto
compute_image_mean帶兩個(gè)參數(shù),,第一個(gè)參數(shù)是lmdb訓(xùn)練數(shù)據(jù)位置,第二個(gè)參數(shù)設(shè)定均值文件的名字及保存路徑,。
運(yùn)行成功后,,會(huì)在 examples/myfile/ 下面生成一個(gè)mean.binaryproto的均值文件。

四,、創(chuàng)建模型并編寫(xiě)配置文件

模型就用程序自帶的caffenet模型,,位置在 models/bvlc_reference_caffenet/文件夾下, 將需要的兩個(gè)配置文件,復(fù)制到myfile文件夾內(nèi)

# sudo cp models/bvlc_reference_caffenet/solver.prototxt examples/myfile/
# sudo cp models/bvlc_reference_caffenet/train_val.prototxt examples/myfile/

修改其中的solver.prototxt

# sudo vi examples/myfile/solver.prototxt
復(fù)制代碼
net: "examples/myfile/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: GPU
復(fù)制代碼

100個(gè)測(cè)試數(shù)據(jù),,batch_size為50,,因此test_iter設(shè)置為2,就能全cover了,。在訓(xùn)練過(guò)程中,,調(diào)整學(xué)習(xí)率,逐步變小,。

修改train_val.protxt,,只需要修改兩個(gè)階段的data層就可以了,其它可以不用管,。

復(fù)制代碼
name: "CaffeNet"
layer {
  name: "data"
  type: "Data"
  top: "data"
  top: "label"
  include {
    phase: TRAIN
  }
  transform_param {
    mirror: true
    crop_size: 227
    mean_file: "examples/myfile/mean.binaryproto"
  }
  data_param {
    source: "examples/myfile/img_train_lmdb"
    batch_size: 256
    backend: LMDB
  }
}
layer {
  name: "data"
  type: "Data"
  top: "data"
  top: "label"
  include {
    phase: TEST
  }
  transform_param {
    mirror: false
    crop_size: 227
    mean_file: "examples/myfile/mean.binaryproto"
  }
  data_param {
    source: "examples/myfile/img_test_lmdb"
    batch_size: 50
    backend: LMDB
  }
}
復(fù)制代碼

實(shí)際上就是修改兩個(gè)data layer的mean_file和source這兩個(gè)地方,,其它都沒(méi)有變化 。

五,、訓(xùn)練和測(cè)試

如果前面都沒(méi)有問(wèn)題,,數(shù)據(jù)準(zhǔn)備好了,配置文件也配置好了,,這一步就比較簡(jiǎn)單了,。

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

運(yùn)行時(shí)間和最后的精確度,會(huì)根據(jù)機(jī)器配置,參數(shù)設(shè)置的不同而不同,。我的是gpu+cudnn運(yùn)行500次,,大約8分鐘,精度為95%,。

 

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,,所有內(nèi)容均由用戶(hù)發(fā)布,不代表本站觀點(diǎn),。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式,、誘導(dǎo)購(gòu)買(mǎi)等信息,謹(jǐn)防詐騙,。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶(hù) 評(píng)論公約

    類(lèi)似文章 更多