| #!/usr/bin/env bash |
| |
| |
| |
| |
| set -euo pipefail |
|
|
| PROJECT_ROOT="$(cd "$(dirname "$0")/../.." && pwd)" |
| export PYTHONPATH="${PROJECT_ROOT}:${PYTHONPATH:-}" |
|
|
| CC3M_DIR="${CC3M_DIR:-${PROJECT_ROOT}/CC3M-Dataset/cc3m_images/train}" |
| OUTPUT_DIR="${OUTPUT_DIR:-${PROJECT_ROOT}/CC3M-Dataset/captions}" |
| MODEL="${MODEL:-llava-hf/llava-1.5-7b-hf}" |
| BATCH_SIZE="${BATCH_SIZE:-8}" |
| NGPUS="${NGPUS:-1}" |
|
|
| mkdir -p "$OUTPUT_DIR" |
|
|
| echo "==========================================" |
| echo "Caption CC3M General Images" |
| echo "==========================================" |
| echo " CC3M dir: $CC3M_DIR" |
| echo " Output dir: $OUTPUT_DIR" |
| echo " Model: $MODEL" |
| echo " Batch size: $BATCH_SIZE" |
| echo " GPUs: $NGPUS" |
| echo "==========================================" |
|
|
| |
| N_IMAGES=$(find "$CC3M_DIR" -name "*.jpg" | wc -l) |
| echo "Found $N_IMAGES images to caption" |
|
|
| if [ "$NGPUS" -gt 1 ]; then |
| torchrun --nproc_per_node="$NGPUS" \ |
| "${PROJECT_ROOT}/experiment/data/caption_cc3m_general.py" \ |
| --cc3m_dir "$CC3M_DIR" \ |
| --output "${OUTPUT_DIR}/cc3m_captions.json" \ |
| --model "$MODEL" \ |
| --batch_size "$BATCH_SIZE" |
| else |
| python -m experiment.data.caption_cc3m_general \ |
| --cc3m_dir "$CC3M_DIR" \ |
| --output "${OUTPUT_DIR}/cc3m_captions.json" \ |
| --model "$MODEL" \ |
| --batch_size "$BATCH_SIZE" |
| fi |
|
|
| echo "Done! Captions saved to ${OUTPUT_DIR}/cc3m_captions.json" |