augmentation add
This commit is contained in:
@@ -17,16 +17,24 @@
|
||||
# bash scripts/run_experiments.sh v2 # только v2
|
||||
# bash scripts/run_experiments.sh v1 3 # v1, эксперимент 3
|
||||
# bash scripts/run_experiments.sh v2 1 4 # v2, эксперименты 1 и 4
|
||||
#
|
||||
# Сплит выбирается переменной окружения SPLIT (cross | same | both):
|
||||
# SPLIT=same bash scripts/run_experiments.sh v2 5 # только same-area
|
||||
# SPLIT=both bash scripts/run_experiments.sh v2 5 # cross И same (для gap)
|
||||
# (по умолчанию SPLIT=cross — primary-метрика, §5.3)
|
||||
# ============================================================
|
||||
|
||||
set -e # Остановиться при ошибке
|
||||
|
||||
# ====================== НАСТРОЙКИ ===========================
|
||||
DATA_ROOT="/media/servml/SSD_2_2TB/datasets/cvgl_datasets/GTA-UAV-LR"
|
||||
DESCRIPTIONS_v1="/media/servml/SSD_2_2TB/datasets/cvgl_datasets/GTA-UAV-LR-captions_ v1"
|
||||
DESCRIPTIONS_v2="/media/servml/SSD_2_2TB/datasets/cvgl_datasets/GTA-UAV-LR-captions_v2"
|
||||
DGTRS_CKPT="/media/servml/SSD_2_2TB/weights/LRSCLIP/DGTRS-CLIP-ViT-B-16.pt"
|
||||
STRIPNET_CKPT="/media/servml/SSD_2_2TB/weights/stripnet_small.pth"
|
||||
# База на внешнем SSD (нестабильная точка монтирования SSD_2_2TB ↔ SSD_2_2TB1).
|
||||
# При ремаунте переопредели: DATA_BASE=/media/servml/SSD_2_2TB bash scripts/run_experiments.sh
|
||||
DATA_BASE="${DATA_BASE:-/media/servml/SSD_2_2TB1}"
|
||||
DATA_ROOT="${DATA_BASE}/datasets/cvgl_datasets/GTA-UAV-LR"
|
||||
DESCRIPTIONS_v1="${DATA_BASE}/datasets/cvgl_datasets/GTA-UAV-LR-captions_ v1"
|
||||
DESCRIPTIONS_v2="${DATA_BASE}/datasets/cvgl_datasets/GTA-UAV-LR-captions_v2"
|
||||
DGTRS_CKPT="${DATA_BASE}/weights/LRSCLIP/DGTRS-CLIP-ViT-B-16.pt"
|
||||
STRIPNET_CKPT="${DATA_BASE}/weights/stripnet_small.pth"
|
||||
|
||||
# Общие гиперпараметры
|
||||
EPOCHS=50
|
||||
@@ -39,6 +47,27 @@ OUTPUT="outputs"
|
||||
# 123 и 456). Переопределяется из окружения, дефолт остаётся 42:
|
||||
# SEED=123 bash scripts/run_experiments.sh v2 2
|
||||
SEED="${SEED:-42}"
|
||||
|
||||
# Протокол сплита (§5.2): cross (primary) | same (для cross−same gap) | both.
|
||||
# Переопределяется из окружения:
|
||||
# SPLIT=same bash scripts/run_experiments.sh v2 5
|
||||
# SPLIT=both bash scripts/run_experiments.sh v2 5
|
||||
SPLIT="${SPLIT:-cross}"
|
||||
case "$SPLIT" in
|
||||
cross) SPLITS=(cross) ;;
|
||||
same) SPLITS=(same) ;;
|
||||
both) SPLITS=(cross same) ;;
|
||||
*) echo "❌ SPLIT должен быть cross|same|both (задано: $SPLIT)"; exit 1 ;;
|
||||
esac
|
||||
|
||||
# Сплит → (train_meta test_meta). same-area честен только при обучении на
|
||||
# same-area-train (§5.3), поэтому это отдельный прогон, а не доп. eval.
|
||||
meta_for_split() {
|
||||
case "$1" in
|
||||
cross) echo "cross-area-drone2sate-train.json cross-area-drone2sate-test.json" ;;
|
||||
same) echo "same-area-drone2sate-train.json same-area-drone2sate-test.json" ;;
|
||||
esac
|
||||
}
|
||||
# ============================================================
|
||||
|
||||
# Массив экспериментов: номер → уровни текста
|
||||
@@ -74,13 +103,14 @@ else
|
||||
EXP_NUMS=("$@")
|
||||
fi
|
||||
|
||||
TOTAL=$(( ${#VERSIONS[@]} * ${#EXP_NUMS[@]} ))
|
||||
TOTAL=$(( ${#VERSIONS[@]} * ${#EXP_NUMS[@]} * ${#SPLITS[@]} ))
|
||||
|
||||
echo "========================================"
|
||||
echo " CVGL Experiments on GTA-UAV"
|
||||
echo " Epochs: $EPOCHS | Batch: $BATCH_SIZE | Seed: $SEED"
|
||||
echo " Versions: ${VERSIONS[*]}"
|
||||
echo " Experiments: ${EXP_NUMS[*]}"
|
||||
echo " Splits: ${SPLITS[*]}"
|
||||
echo " Total runs: $TOTAL"
|
||||
echo "========================================"
|
||||
|
||||
@@ -113,29 +143,36 @@ for VERSION in "${VERSIONS[@]}"; do
|
||||
|
||||
for EXP_NUM in "${EXP_NUMS[@]}"; do
|
||||
LEVELS="${EXPERIMENTS[$EXP_NUM]}"
|
||||
RUN_IDX=$((RUN_IDX + 1))
|
||||
|
||||
echo ""
|
||||
echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
|
||||
echo " [$RUN_IDX/$TOTAL] ${VERSION} / Experiment $EXP_NUM: levels=[$LEVELS]"
|
||||
echo " Descriptions: $DESCRIPTIONS"
|
||||
echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
|
||||
for SPLIT_NAME in "${SPLITS[@]}"; do
|
||||
read -r TRAIN_META TEST_META <<< "$(meta_for_split "$SPLIT_NAME")"
|
||||
RUN_IDX=$((RUN_IDX + 1))
|
||||
|
||||
python train.py \
|
||||
--data_root "$DATA_ROOT" \
|
||||
--descriptions_path "$DESCRIPTIONS" \
|
||||
--text_levels $LEVELS \
|
||||
--dgtrs_checkpoint "$DGTRS_CKPT" \
|
||||
--stripnet_checkpoint "$STRIPNET_CKPT" \
|
||||
--epochs $EPOCHS \
|
||||
--batch_size $BATCH_SIZE \
|
||||
--micro_batch_size $MICRO_BATCH \
|
||||
--lr $LR \
|
||||
--seed $SEED \
|
||||
--output_dir "${OUTPUT}/${VERSION}/seed${SEED}" \
|
||||
--inject_mona
|
||||
echo ""
|
||||
echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
|
||||
echo " [$RUN_IDX/$TOTAL] ${VERSION} / Exp $EXP_NUM / ${SPLIT_NAME}-area: levels=[$LEVELS]"
|
||||
echo " Descriptions: $DESCRIPTIONS"
|
||||
echo " Split: train=$TRAIN_META test=$TEST_META"
|
||||
echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
|
||||
|
||||
echo "✅ [$RUN_IDX/$TOTAL] ${VERSION} / Experiment $EXP_NUM complete"
|
||||
python train.py \
|
||||
--data_root "$DATA_ROOT" \
|
||||
--descriptions_path "$DESCRIPTIONS" \
|
||||
--text_levels $LEVELS \
|
||||
--train_meta "$TRAIN_META" \
|
||||
--test_meta "$TEST_META" \
|
||||
--dgtrs_checkpoint "$DGTRS_CKPT" \
|
||||
--stripnet_checkpoint "$STRIPNET_CKPT" \
|
||||
--epochs $EPOCHS \
|
||||
--batch_size $BATCH_SIZE \
|
||||
--micro_batch_size $MICRO_BATCH \
|
||||
--lr $LR \
|
||||
--seed $SEED \
|
||||
--output_dir "${OUTPUT}/${VERSION}/seed${SEED}" \
|
||||
--inject_mona
|
||||
|
||||
echo "✅ [$RUN_IDX/$TOTAL] ${VERSION} / Exp $EXP_NUM / ${SPLIT_NAME}-area complete"
|
||||
done
|
||||
done
|
||||
done
|
||||
|
||||
|
||||
Reference in New Issue
Block a user