【发布时间】:2020-01-05 04:48:15
【问题描述】:
数据:VOC 2012 增强数据集:我正在使用 10582 annotations 训练 train_aug。
代码:我使用的是官方 deeplabv3+ code。我没有更改代码,除了 bash 代码。
预训练权重:来自official zoo的xception_65_imagenet_coco
所以,这是我的 train.sh:
python "${WORK_DIR}"/train.py \
--logtostderr \
--train_split="train_aug" \
--model_variant="xception_65" \
--atrous_rates=6 \
--atrous_rates=12 \
--atrous_rates=18 \
--output_stride=16 \
--decoder_output_stride=4 \
--train_crop_size="513,513" \
--train_batch_size=15 \
--training_number_of_steps=30000 \
--fine_tune_batch_norm=False \
--num_clones=5 \
--base_learning_rate=0.007 \
--tf_initial_checkpoint="${COCO_PRE}/x65-b2u1s2p-d48-2-3x256-sc-cr300k_init.ckpt" \
--train_logdir="${TRAIN_LOGDIR}" \
--dataset_dir="${PASCAL_DATASET}"\
--initialize_last_layer=False
结果:我认为我的配置应该是 82.2%。但是我在 eval.OS=16 上得到了 80%,在 eval.OS=8 上得到了 80.15%,在 30k 步中
所以我的问题是:我怎样才能得到 82.2%?
编辑:09.02.2019:-----------------
我注意到fine_tune_batch_norm=false.
在 train.py 中:
如果想要微调批处理规范参数,请设置为 True DeepLabv3
所以我决定尝试fine_tune_batch_norm=true,因为从头开始训练需要更改 BN 参数。
编辑------09/07--------
仍然无法使用:
python "${WORK_DIR}"/train.py \
--logtostderr \
--train_split="train_aug" \
--model_variant="xception_65" \
--atrous_rates=6 \
--atrous_rates=12 \
--atrous_rates=18 \
--output_stride=16 \
--decoder_output_stride=4 \
--train_crop_size="513,513" \
--train_batch_size=15 \
--training_number_of_steps=100000 \
--fine_tune_batch_norm=true \
--num_clones=5 \
--base_learning_rate=0.007 \
--tf_initial_checkpoint="${COCO_PRE}/x65-b2u1s2p-d48-2-3x256-sc-cr300k_init.ckpt" \
--train_logdir="${TRAIN_LOGDIR}" \
--dataset_dir="${PASCAL_DATASET}"\
--initialize_last_layer=False
这一次的结果更糟。
【问题讨论】:
标签: python tensorflow