1. 程式人生 > >DeepLab V3+ 訓練ade20k資料集

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不同

注意:仔細檢查引數名是否正確,有時候引數名就算錯了,並不會立刻報錯,而是後面使用時報錯