您的位置:首页 > 其它

工作记录:训练、测 e169 试 TF-SSD

2017-05-31 10:34 281 查看

1.训练

ssd_vgg_300
中修改:(num_classes可以在运行训练文件时指定,因此这里可以不修改)

'num_classes': 14,
'no_annotation_label': 14,
'normalizations': [13, -1, -1, -1, -1, -1],


设置训练参数,运行训练文件:

DATASET_DIR=./OPTIMAL_Z_FINAL
TRAIN_DIR=./My_chkp
CHECKPOINT_PATH=./checkpoints/vgg_16.ckpt

python train_ssd_network.py \
--train_dir=${TRAIN_DIR} \
--dataset_dir=${DATASET_DIR} \
--dataset_name=optimal_z_2017 \
--dataset_split_name=train \
--model_name=ssd_300_vgg \
--checkpoint_path=${CHECKPOINT_PATH} \
--checkpoint_model_scope=vgg_16 \
--checkpoint_exclude_scopes=ssd_300_vgg/conv6,ssd_300_vgg/conv7,ssd_300_vgg/block8,ssd_300_vgg/block9,ssd_300_vgg/block10,ssd_300_vgg/block11,ssd_300_vgg/block4_box,ssd_300_vgg/block7_box,ssd_300_vgg/block8_box,ssd_300_vgg/block9_box,ssd_300_vgg/block10_box,ssd_300_vgg/block11_box \
--trainable_scopes=ssd_300_vgg/conv6,ssd_300_vgg/conv7,ssd_300_vgg/block8,ssd_300_vgg/block9,ssd_300_vgg/block10,ssd_300_vgg/block11,ssd_300_vgg/block4_box,ssd_300_vgg/block7_box,ssd_300_vgg/block8_box,ssd_300_vgg/block9_box,ssd_300_vgg/block10_box,ssd_300_vgg/block11_box \
--save_summaries_secs=60 \
--save_interval_secs=600 \
--weight_decay=0.0005 \
--optimizer=adam \
--learning_rate=0.001 \
--learning_rate_decay_factor=0.94 \
--batch_size=50 \
--num_classes=14 \
--labels_offset=1 \
--max_number_of_steps=1000000


2.测试

测试之前,保证
datasets/optimal_z_2017
中:(注意这里的valid不要写成test)

SPLITS_TO_SIZES={'train': 12520, 'valid': 9233,}
NUM_CLASSES=13


测试参数:

DATASET_DIR=./OPTIMAL_Z_FINAL
TRAIN_DIR=./My_chkp
EVAL_DIR=${TRAIN_DIR}/eval
python eval_ssd_network.py \
--eval_dir=${EVAL_DIR} \
--dataset_dir=${DATASET_DIR} \
--dataset_name=optimal_z_2017 \
--dataset_split_name=valid \
--model_name=ssd_300_vgg \
--checkpoint_path=${TRAIN_DIR} \
--wait_for_checkpoints=True \
--batch_size=1 \
--max_num_batches=500 \
--num_classes=14


修改
ssd_vgg_300


权重所使用的训练参数:

--weight_decay=0.0005 \
--optimizer=adam \
--learning_rate=0.001 \
--learning_rate_decay_factor=0.94 \
--batch_size=50 \
--num_classes=14 \
--labels_offset=0 \


迭代次数2000样本mAP/%
9474722.7811
此时网络已经不能更收敛了,观察tensorboard的可视化结果,发现只有个别类别准确率达到50%,其余的大多数20%,还有很多0%,因此可以确定代码哪里参数设置有问题,总之,此次训练失败。

期待后续工作,深入调试这份代码,争取在自己的数据库上达到50%的准确率。

修改
ssd_vgg_300


权重所使用的训练参数:

--weight_decay=0.0005 \
--optimizer=adam \
--learning_rate=0.001 \
--learning_rate_decay_factor=0.94 \
--batch_size=50 \
--num_classes=13 \
--labels_offset=0 \


迭代次数2000样本mAP/%
587816.59
1009018.61
2027124.26
3047225.53
4066225.71
5090625.65
6115425.82
7140725.81
8154925.80
9158625.80
10076625.80
权重所使用的训练参数:

--weight_decay=0.0005 \
--optimizer=adam \
--learning_rate=0.001 \
--learning_rate_decay_factor=0.94 \
--batch_size=50 \
--num_classes=14 \
--labels_offset=1 \


测试结果:(VOC07mAP)

500样本2000样本
第0次迭代mAP=0%;
第840次迭代mAP=2.34%
第3386次迭代mAP=4.77%
第5082次迭代mAP=7.46%
第7629次迭代mAP=10.24%
第9331次迭代mAP=10.82%
第10183次迭代mAP=11.15%mAP=19.47%
第15289次迭代mAP=11.78%
第20386次迭代mAP=12.13%mAP=20.38%
第25484次迭代mAP=13.22%
第30582次迭代mAP=12.70%mAP=21.98%
第35683次迭代mAP=12.38%
第40784次迭代mAP=12.24%mAP=22.28%
第45889次迭代mAP=12.46%
第50995次迭代mAP=12.51%mAP=22.56%
第55253次迭代mAP=12.40%
第60362次迭代mAP=12.43%mAP=22.40%
第65448次迭代mAP=12.40%
第71389次迭代mAP=12.39%mAP=22.38%
第76516次迭代mAP=12.41%
第81557次迭代mAP=12.42%mAP=22.42%
第91792次迭代mAP=22.40%
第101054次迭代mAP=22.40%
第110355次迭代mAP=22.40%
第次迭代mAP=%
第次迭代mAP=%
第次迭代mAP=%
第次迭代mAP=%
第次迭代mAP=%

3.结果对比

之前只修改了类别数、没修改标签数的测试结果:(虽然收敛了,但是还是有点慢)

第0次迭代,mAP=0%;
第822次迭代,mAP=1.31%;
第1655次迭代,mAP=2.57%;
第3322次迭代,mAP=6.15%;
第6659次迭代,mAP=9.05%;
第8329次迭代,mAP=9.02%;
第10001次迭代,mAP=10.42%;
第12517次迭代,mAP=10.97%;
第15877次迭代,mAP=12.13%;
第20086次迭代,mAP=11.79%;


之前没有修改类别数、没修改标签数的测试结果:(显然失败)

第441571次迭代,mAP=8.34%;


3.可视化

tensorard --logdir=./eval --port=7000
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息