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

本文详细记录了使用SSD_VGG_300模型进行目标检测任务的训练及测试过程,包括参数配置、训练迭代效果、问题分析及改进措施等内容。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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
评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值