1.SSD-Tensorflow-master倉庫創(chuàng)建:
????從GitHub下載資源;SSD-tensorflow——github下載地址:SSD-Tensorflow
2.環(huán)境檢查測試:
????到“checkpoints”文件夾下解壓“ssd_300_vgg.ckpt.zip”到“checkpoints”文件夾下.運行“./notebooks/ssd_notebook”循捺,看看能否進行檢測斩例,正常檢測;
./checkpoints
unzip ssd_300_vgg.ckpt.zip
jupyter notebook notebooks/ssd_notebook.ipynb
3.Datasets--數(shù)據(jù)生成:
????運行“./tf_convert_data.py”从橘,在“/tfrecords”文件夾下生成數(shù)據(jù)文件(數(shù)據(jù)用VOC2007)念赶;
方法一:
DATASET_DIR=./VOC2007/test/
OUTPUT_DIR=./tfrecords
python tf_convert_data.py \
? ? --dataset_name=pascalvoc \
? ? --dataset_dir=${DATASET_DIR} \
? ? --output_name=voc_2007_train \
? ? --output_dir=${OUTPUT_DIR}
方法二:
Windows環(huán)境,在cmd中恰力,進入當(dāng)前倉庫路徑叉谜,運行:
python tf_convert_data.py --dataset_name=pascalvoc --dataset_dir=./VOC2007/ --output_name=voc_2007_train --output_dir=./tfrecords
方法三:
可直接修改“tf_convert_data.py”中的設(shè)置,如:
注:
1.關(guān)于報錯:tensorflow.python.framework.errors_impl.NotFoundError: Failed to create a NewWriteableFile:
問題來源:創(chuàng)建文件失敗
處理方法:提前手動創(chuàng)建文件“tfrecords”
2.關(guān)于報錯:UnicodeDecodeError: 'utf-8' codec can't decode byte 0xff in position 0: invalid start byte
問題來源:讀取編碼錯誤踩萎,需二進制
處理方法:“./datasets/pascalvoc_to_tfrecords.py”中第83行停局,“image_data = tf.gfile.FastGFile(filename, 'r').read()”修改為“image_data = tf.gfile.FastGFile(filename, 'rb').read()”
4.Training--使用VOC2007數(shù)據(jù)進行訓(xùn)練模型
????運行“/train_ssd_network.py”進行訓(xùn)練;
運行參數(shù):
DATASET_DIR=./tfrecords
TRAIN_DIR=./logs/
CHECKPOINT_PATH=./checkpoints/ssd_300_vgg.ckpt
python train_ssd_network.py \
--train_dir=${TRAIN_DIR} \
--dataset_dir=${DATASET_DIR} \
--dataset_name=pascalvoc_2007 \
--dataset_split_name=train \
--model_name=ssd_300_vgg \
--checkpoint_path=${CHECKPOINT_PATH} \
--save_summaries_secs=60 \
--save_interval_secs=600 \
--weight_decay=0.0005 \
--optimizer=adam \
--learning_rate=0.001 \
--batch_size=32
注:可直接在“train_ssd_network.py”腳本中修改對應(yīng)的“tf.app.flags”對應(yīng)定義參數(shù)驻民。
關(guān)于報錯:
1.Could not create cudnn handle: CUDNN_STATUS_ALLOC_FAILED
處理方法:修改運行參數(shù)為--gpu_memory_fraction=0.33