【问题标题】:tensorflow deeplabv3+ train from scratch train.sh code to recurring 82.2% in VOC valtensorflow deeplabv3+ 从头开始​​训练 train.sh 代码到 VOC val 中重复出现 82.2%
【发布时间】: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


    【解决方案1】:

    我重现了结果。我得到了 81.5%。第一轮我用40000步,我觉得30000步可能会更好。

    bash 代码:

    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=24 \
      --base_learning_rate=0.007 \
      --training_number_of_steps=30000 \
      --fine_tune_batch_norm=true \
      --num_clones=8 \
      --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=true
    
    python "${WORK_DIR}"/train.py \
      --logtostderr \
      --train_split="train" \
      --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=24 \
      --training_number_of_steps=60000 \
      --fine_tune_batch_norm=false \
      --num_clones=8 \
      --base_learning_rate=0.01 \
      --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=true
    

    参考:github

    【讨论】:

      猜你喜欢
      • 2018-07-13
      • 2017-09-08
      • 1970-01-01
      • 2017-01-06
      • 1970-01-01
      • 2017-08-11
      • 2018-08-12
      • 2017-03-15
      • 2020-04-07
      相关资源
      最近更新 更多