EfficientDet(tensorflow2 API)训练步骤

EfficientDet(tensorflow2 API)

regulation loss 贡献大,由BN产生
1.环境tensorflow2.2
2.py介绍:

xml_to_csv.py:转换xml到csv %可以不用
generate_tfrecord.py 将图片和csv文件打包成训练输入 %可以不用
create_pascal_tf_record.py 得出record值
model_main_tf2.py 可训练,可验证
exporter_main_v2.py 模型导出成为可以使用的frozen graph模型,得到 pth
3.生成record
将数据集分成训练集,验证集9:1
先新建一个pascal_label_map.pbtxt文件
train: %val同理
create_pascal_tf_record.py
python create_pascal_tf_record.py
–label_map_path pascal_label_map.pbtxt
–data_dir Vocvkit2007/
–year
–set train
–output_path pascal_train.record
代码:

flags.DEFINE_string('data_dir', './object_detection/datasets/VOC2007/', 'Root directory to raw PASCAL VOC dataset.')
flags.DEFINE_string('set', 'train', 'Convert training set, validation set or '
                    'merged set.')
flags.DEFINE_string('annotations_dir', './object_detection/datasets/VOC2007/Annotations/',
                    '(Relative) path to annotations directory.')
flags.DEFINE_string('year', '2007', 'Desired challenge year.')
flags.DEFINE_string('output_path', './object_detection/datasets/train.tfrecords', 'Path to output TFRecord')
flags.DEFINE_string('label_map_path', './object_detection/datasets/label_map.pbtxt',
                    'Path to label map proto')
flags.DEFINE_boolean('ignore_difficult_instances', False, 'Whether to ignore '
                     'difficult instances')

examples_path = '/object_detection/datasets/VOC2007/ImageSets/Main/train.txt'
 annotations_dir = os.path.join(data_dir, year, FLAGS.annotations_dir)
annotations_dir = '/object_detection/datasets/VOC2007/Annotations/'

4.修改pipeline.config 管道(6处)
4.1 修改类别数 num_class
4.2 fine_tune_checkpoint: /ckpt-0 #下载预训练好的模型
fine_tune_checkpoint_type: “detection”
3.3 batch_size
4.4 train:
label_map_path: .bptxt
input_map_path: train.record
4.5 val:
label_map_path: .bptxt
input_map_path: val.record
4.6 学习率也可以改下 %可以不改
修改optimizer中的learning_rate,学习率是损失函数loss收敛快慢的重要参数,若loss无比巨大,来回变化,减小学习率。
loss减小慢,增大学习率,训练过程中,调整lr,有助于减小loss,刚开始lr要小点。

5.数据格式
Vocdevkit2007
–VOC2007
–Annotations
–ImageSets
–JPEGImages
有个版本:
object objection
–me
–data
–Vocdevkit2007
–VOC2007
–Annotations
–ImageSets
–JPEGImages
–ssd_mobilenet
–eval_logs %评估生成log
–events.out.tfevents
–logs
train_txt
–output %用来保存训练好的模型
–ssd.mobilenet %预训练模型
–graph.pbtxt
–frozen_infeencer_graph.pb
–model.ckpt.data-0000-0001
–model.ckpt.index
–model.ckpt.meta
–train_logs %训练生成log
–checkpoint
–model0-1
–model.ckpt.index
–model.ckpt.meta
–eval.sh %脚本,命令行输入 sh ./eval.sh
–train.sh
–ssd.mobilenet.v1_coco.config %修改管道
6.开始训练:
改model_dir pipline-config num_steps
train:
python object_detection/model_main_tf2.py
–pipeline_config_path object_detection/configs/tf2/ssd_efficientdet_d0_512x512_coco17_tpu-8.config
–model_dir object_detection/model_training/my_model/train
–alsologtostderr

eval:
python object_detection/model_main_tf2.py
–pipeline_config_path object_detection/configs/tf2/ssd_efficientdet_d0_512x512_coco17_tpu-8.config*
–model_dir object_detection/model_training/my_model/eval
–checkpoint_dir object_detection/model_training/my_model/train/
–alsologtostderr
7.得到pth:exporter_main_v2.py 改下路径
8.可视化
tensorboard --logdir=./train
9.测试
online_detection.py

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

欢天喜地小姐姐

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值