File size: 2,612 Bytes
1efcb3c
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
#!/bin/bash -x
#SBATCH --nodes=1
#SBATCH --ntasks=4
#SBATCH --ntasks-per-node=4
#SBATCH --wait-all-nodes=1
#SBATCH --partition=a6000
#SBATCH -w c31

export HF_HOME=/mnt/beegfs/dzhu6/.cache

eval "$(/home/dzhu6/miniconda3/bin/conda shell.bash hook)" # init conda
export CUDA_VISIBLE_DEVICES=0,1,2,3
export MASTER_PORT=12784

master_addr=$(scontrol show hostnames "$SLURM_JOB_NODELIST" | head -n 1)
export MASTER_ADDR=$master_addr

conda activate grounded-rl

datadirs=(
    "/mnt/beegfs/dzhu6/SpatialEval/outputs/images"
    # "/mnt/beegfs/dzhu6/coco_images/"
)
script_paths=(  
"SpatialEval"
# "3dsrbench"
# "vsi_bench"
# "maze"
# "spar_bench"
# "mmsi_bench"
)

model_name=ViLaSR-cold-start
CKPT=../ViLaSR-cold-start                # zero_shot/cold_start/reflective/rl CKPT
MODE=cold-start                             # zero_shot, cold_start, reflective, rl

model_name=ViLaSR
CKPT=../ViLaSR                # zero_shot/cold_start/reflective/rl CKPT
MODE=rl                           # zero_shot, cold_start, reflective, rl


for ((i=0; i<${#script_paths[@]}; i++)); do
    QUESTION_FILE=${script_paths[i]}
    IMAGE_FOLDER=${datadirs[i]}

    if [ -z "$IMAGE_FOLDER" ]; then
        echo "Warning: No image folder defined for $QUESTION_FILE. Skipping..."
        continue
    fi

    RESULTDIR=./eval/results/$MODE-vscan-toolonly-resize/${script_paths[i]}/ 
    mkdir -p $RESULTDIR

    ALL=4
    for gpu in $(seq 0 $(($ALL - 1))); do
        echo "****** GPU ${gpu} ${QUESTION_FILE}--${IMAGE_FOLDER} ******"
        CUDA_VISIBLE_DEVICES=$gpu srun --cpu_bind=v --accel-bind=gn --exclusive --ntasks=1 --ntasks-per-node=1 --output=${model_name}_prune_${QUESTION_FILE}_rank${gpu}_all${ALL}.log \
            python eval/infer_multi.py \
            --model-path $CKPT \
            --model-name ${model_name} \
            --dataset ${script_paths[i]} \
            --input-file $IMAGE_FOLDER/${QUESTION_FILE}.json \
            --image-folder $IMAGE_FOLDER \
            --output-dir $RESULTDIR \
            --temperature 0.75 \
            --max-frames 16 \
            --max-pixels 351232 \
            --resize \
            --prune vscan-toolonly \
            --split ${gpu} --all ${ALL} &
        sleep 2
    done
    wait

    # # echo "****** MERGING model ${model} ******"
    # cat outputs/vqa/all/m-${model}_bare_prune_None_split_0_all_${ALL}.jsonl > outputs/vqa/all/m-${model}_bare_prune_None.jsonl
    # for rank in $(seq 1 $(($ALL - 1))); do
    #     cat outputs/vqa/all/m-${model}_bare_prune_None_split_${rank}_all_${ALL}.jsonl >> outputs/vqa/all/m-${model}_bare_prune_None.jsonl
    # done


done