前言
1.經過運作前面的腳本,在Caffe-ssd/data/VOCdevkit/VOC2007/lmdb目錄内應該生成了:VOC2007_test_lmdb 和 VOC2007_trainval_lmdb兩個檔案夾。
2.那之後就開始到訓練過程,訓練所調用的是python examples/ssd/ssd_pascal.py的腳本。
3.我配置的環境是Ubuntu 16.04 LST 64位,Qt5.9,Python2.7,Caffe-SSD,因為隻跑CPU版本,是以沒有配置CUDA庫。
一、訓練準備
1.下載下傳預訓練模型VGG_ILSVRC_16_layers_fc_reduced.caffemode,在caffe上-ssd/models下建立一個VGGNet的目錄,并把下載下傳好的檔案放進去。
2.更改資料檔案的權限,如不更改可能在訓練過程中報錯。
cd caffe/data/VOCdevkit/
sudo chmod -R 777 VOC2007
二、修改ssd_pascal.py腳本
1.打開/home/matt/caffe-ssd/examples/ssd目錄下ssd_pascal.py的腳本,在第import caffe前面加上python的環境路徑,如果不加,運作中可能會報找不到caffe的錯誤,(路徑換成自己的路徑,下面有關路徑的都要注意這點)。
import sys
sys.path.insert(0,'/home/matt/caffe-ssd/python')
2.把訓練和測試的資料路徑改成前面生成的lmdb路徑。
train_data = "/home/matt/caffe-ssd/data/VOCdevkit/VOC2007/lmdb/VOC2007_trainval_lmdb"
test_data = "/home/matt/caffe-ssd/data/VOCdevkit/VOC2007/lmdb/VOC2007_test_lmdb"
3.更改測試的txt路徑,預訓練模型路徑,标簽路徑。
name_size_file = "/home/matt/caffe-ssd/data/VOCdevkit/VOC2007/test_name_size.txt"
pretrain_model = "/home/matt/caffe-ssd/models/VGGNet/VGG_ILSVRC_16_layers_fc_reduced.caffemodel"
label_map_file = "/home/matt/caffe-ssd/data/VOCdevkit/VOC2007/labelmap_voc.prototxt"
4.因為是CPU版本,去掉去GPU相關的設定。
5.更改疊代次數,如果不更改,原本的參數是10000多代,光CPU要跑好多天,這裡隻是把訓練流程介紹清楚而已,我改成200代。
三、開始訓練
把ssd_pascal.py更改好,儲存退出。把目錄切到caffe-ssd/,運作ssd_pascal.py。
cd caffe-ssd/
python ./examples/ssd/ssd_pascal.py
如果不報錯,會一直在訓練,直到訓練完成,會在相關的路徑生成訓練好的模型。