DeepLab V3+ 训练ade20k数据集

仿造local_test.sh写个local_ade20k_test.sh

将line45: download_and_convert_voc2012.sh => download_and_convert_ade20k.sh

将line51: PASCAL_FOLDER="pascal_voc_seg" => ROOT_FOLDER="ADE20K" ,并将下面所有用到PASCAL_FOLDER都替换为ADE20K

训练参数改为

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 \

--train_crop_size=513 \

--train_batch_size=1 \

--min_resize_value=350 \

--max_resize_value=500 \

--resize_factor=16 \

--training_number_of_steps=12000 \

--fine_tune_batch_norm=False \

--dataset="ade20k" \

--initialize_last_layer=False \

--last_layers_contain_logits_only=True \

--tf_initial_checkpoint="${INIT_FOLDER}/deeplabv3_pascal_train_aug/model.ckpt" \

--train_logdir="${TRAIN_LOGDIR}" \

--dataset_dir="${TF_DATASET}"

training_number_of_steps是训练次数,可以先小一些验证一下。

initialize_last_layer=False和last_layers_contain_logits_only=True表示用下载的模型去初始化除了logits之外的参数,logits重新训练,这是因为ade20k和voc的classes num不同

注意:仔细检查参数名是否正确,有时候参数名就算错了,并不会立刻报错,而是后面使用时报错

猜你喜欢

转载自blog.csdn.net/bcfd_yundou/article/details/82991300