50 lines
1.4 KiB
Bash
50 lines
1.4 KiB
Bash
#!/bin/bash
|
|
|
|
# custom config
|
|
DATA=~/Datasets/CoOp
|
|
TRAINER=$1
|
|
DATASET=$2
|
|
N_PROMPTS=4
|
|
KG_WEIGHT=$3
|
|
MP_WEIGHT=$4
|
|
ATTN_REG_WEIGHT=$5
|
|
#CFG=rn50_ep100 # config file
|
|
CFG=vit_b16_ep100_ctxv1
|
|
CTP=end # class token position (end or middle)
|
|
NCTX=4 # number of context tokens
|
|
SHOTS=16 # number of shots (1, 2, 4, 8, 16)
|
|
CSC=False # class-specific context (False or True)
|
|
|
|
LOADEP=100
|
|
SUB=new
|
|
|
|
for SEED in 1 2 3
|
|
do
|
|
COMMON_DIR=${DATASET}/shots_${SHOTS}_${KG_WEIGHT}_${MP_WEIGHT}_${ATTN_REG_WEIGH}/${TRAINER}/${CFG}/seed${SEED}
|
|
MODEL_DIR=output/base2new/train_base/${COMMON_DIR}
|
|
DIR=output/base2new/test_${SUB}/${COMMON_DIR}
|
|
|
|
|
|
if [ -d "$DIR" ]; then
|
|
echo "Results are available in ${DIR}. Skip this job"
|
|
else
|
|
echo "Run this job and save the output to ${DIR}"
|
|
python train.py \
|
|
--root ${DATA} \
|
|
--seed ${SEED} \
|
|
--trainer ${TRAINER} \
|
|
--dataset-config-file configs/datasets/${DATASET}.yaml \
|
|
--config-file configs/trainers/${TRAINER}/${CFG}.yaml \
|
|
--output-dir ${DIR} \
|
|
--model-dir ${MODEL_DIR} \
|
|
--load-epoch ${LOADEP} \
|
|
--eval-only \
|
|
TRAINER.COOP.N_PROMPTS ${N_PROMPTS} \
|
|
TRAINER.COOP.N_CTX ${NCTX} \
|
|
TRAINER.COOP.CSC ${CSC} \
|
|
TRAINER.COOP.CLASS_TOKEN_POSITION ${CTP} \
|
|
DATASET.NUM_SHOTS ${SHOTS} \
|
|
DATASET.SUBSAMPLE_CLASSES ${SUB}
|
|
fi
|
|
done
|