踩了很多坑,花费了好久好久,内心的崩溃程度,还是自己太菜。
在所有的准备工作都down了之后,接下来就需要使用模型在自己的数据集上进行训练。SSD-Tensorflow 官网上给出的建议是:可以先在imageNet预训练的模型的基础上利用自己的数据集对网络模型进行微调,即固定骨干网络参数,对附加网络结构进行训练,当模型收敛达到0.5mAP的时候,再对所有参数进行微调。
预训练模型:models
https://github.com/tensorflow/models/tree/master/research/slim
1。从vgg开始训练其中某些层的参数
通过加载预训练好的vgg16模型进行参数初始化
通过checkpoint_exclude_scopes指定哪些层的参数不需要从vgg16模型中加载
通过trainable_scopes指定哪些层的参数需要训练,则未指定的参数保持不变。如果注释掉的话,则是对所有参数进行训练。
DATASET_DIR=./tfrecords
TRAIN_DIR=./log/
CHECKPOINT_PATH=./checkpoints/vgg_16.ckpt
python train_ssd_network.py \
--train_dir=${TRAIN_DIR} \ #训练生成模型的存放路径
--