|
#!/bin/bash |
|
|
|
|
|
|
|
|
|
set -e |
|
|
|
|
|
|
|
CITYSCAPES_ROOT="/pasteur/u/yiming/homework4/cityscapes" |
|
|
|
|
|
CONFIG_FILE="configs/cityscapes/segformer_internimage_xl_512x1024_160k_mapillary2cityscapes.py" |
|
|
|
|
|
N_FOLDS=3 |
|
|
|
|
|
GPUS=8 |
|
|
|
|
|
WORKSPACE_ROOT=$(pwd) |
|
|
|
|
|
|
|
echo "Starting 3-fold cross-validation training..." |
|
|
|
for FOLD in $(seq 1 $N_FOLDS) |
|
do |
|
echo "----------------------------------------------------" |
|
echo "Starting Training for Fold $FOLD of $N_FOLDS" |
|
echo "----------------------------------------------------" |
|
|
|
|
|
WORK_DIR="work_dirs/cityscapes_kfold/mask2former_internimage_h_fold_${FOLD}" |
|
|
|
|
|
TRAIN_SPLIT_FILE="splits/fold_${FOLD}_train_split.txt" |
|
VAL_SPLIT_FILE="splits/fold_${FOLD}_val_split.txt" |
|
|
|
|
|
|
|
|
|
CFG_OPTIONS="\ |
|
data.train.data_root='${CITYSCAPES_ROOT}' \ |
|
data.train.data_root='${CITYSCAPES_ROOT}' \ |
|
data.train.img_dir='leftImg8bit/' \ |
|
data.train.ann_dir='gtFine/' \ |
|
data.train.split='${TRAIN_SPLIT_FILE}' \ |
|
data.val.data_root='${CITYSCAPES_ROOT}' \ |
|
data.val.img_dir='leftImg8bit/' \ |
|
data.val.ann_dir='gtFine/' \ |
|
data.val.split='${VAL_SPLIT_FILE}' \ |
|
data.test.data_root='${CITYSCAPES_ROOT}' \ |
|
data.test.img_dir='leftImg8bit/val/' \ |
|
data.test.ann_dir='gtFine/val/' \ |
|
work_dir='${WORK_DIR}'" |
|
|
|
|
|
|
|
TRAIN_CMD="bash ./dist_train.sh ${CONFIG_FILE} ${GPUS} --cfg-options ${CFG_OPTIONS}" |
|
|
|
echo "Training command for Fold $FOLD:" |
|
echo "${TRAIN_CMD}" |
|
echo "Output will be in: ${WORK_DIR}" |
|
|
|
|
|
eval ${TRAIN_CMD} |
|
|
|
echo "----------------------------------------------------" |
|
echo "Finished Training for Fold $FOLD" |
|
echo "----------------------------------------------------" |
|
done |
|
|
|
echo "3-fold cross-validation training complete." |
|
echo "Check work_dirs/cityscapes_kfold/ for outputs of each fold." |
|
|
|
|
|
|
|
|
|
|
|
|