註:每一個xml文件都對應於JPEGImages目錄中的一張圖片。
ls Annotations/ | wc -l
ls JPEGImages/ | wc -l
python classTXT.py
ls ImagesSets/Main
cd $CAFFE_ROOT
cd data && mkdir voc_six
cp VOC0712/labelmap_voc.prototxt voc_six
vi voc_six/labelmap_voc.prototxt
vi voc_six/create_list.sh
chmod +x voc_six/create_list.sh
./voc_six/create_list.sh
vi voc_six/create_data.sh
chmod +x voc_six/create_data.sh
export PYTHONPATH=$CAFFE_ROOT/build/install/python:$PYTHONPATH
./voc_six/create_data.sh
cd $CAFFE_ROOT/examples
git clone https://github.com/chuanqi305/MobileNet-SSD.git
cd MobileNet-SSD
./gen_model.sh 7
vi example/MobileNetSSD_train.prototxt
vi example/MobileNetSSD_test.prototxt
cp solver_train.prototxt solver_test.prototxt example
vi example/solver_train.prototxt
假設使用者有10000個測試樣本(測試集),batch_size設為32,那麽須要疊代10000/32=313次才完整地測試完一次。所以設置test_iter為313。(batch_size在測試用的網路定義prototxt 文件已設置)
假設使用者有50000個訓練樣本(訓練集)。batch_size為64。即每批次處理64個樣本,那麽需要疊代50000/64=782次才處理完一次所有的樣本。(batch_size在訓練用的網路定義prototxt 文件已設置)
把處理完一次所有的樣本,稱之為一代,即epoch。
所以,test_interval設置為782,即處理完一次所有的訓練數據後。才去進行測試。
以上述假設為例,我們想訓練100代。則須要設置max_iter為78200
vi example/solver_test.prototxt
cp train.sh train_six.sh
vi train_six.sh
cp test.sh test_six.sh
vi test_six.sh
sudo ./train_six.sh
sudo ./test_six.sh
vi merge_bn.py
python merge_bn.py
cd example && ls
vi MobileNetSSD_deploy.prototxt