|
|
#!/bin/bash |
|
|
set -euo pipefail |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
DATA_PATH=${DATA_PATH:-/disk/gjw/msr-vtt} |
|
|
OUTPUT_DIR=${OUTPUT_DIR:-ckpts/ckpt_hash_msrvtt_retrieval_looseType_1e-7} |
|
|
|
|
|
|
|
|
NPROC=${NPROC:-1} |
|
|
MASTER_PORT=${MASTER_PORT:-29519} |
|
|
NUM_THREADS=${NUM_THREADS:-8} |
|
|
BATCH_VAL=${BATCH_VAL:-16} |
|
|
MAX_WORDS=${MAX_WORDS:-32} |
|
|
MAX_FRAMES=${MAX_FRAMES:-12} |
|
|
PROJ=${PROJ:-3008} |
|
|
BINARY_EVAL=${BINARY_EVAL:-1} |
|
|
|
|
|
mkdir -p "${OUTPUT_DIR}" |
|
|
|
|
|
|
|
|
if [[ $# -gt 0 ]]; then |
|
|
INIT_MODEL="$1" |
|
|
else |
|
|
|
|
|
INIT_MODEL=$(ls -1 "${OUTPUT_DIR}"/pytorch_model.bin.* 2>/dev/null | awk -F. '{print $NF" "$0}' | sort -n | tail -1 | cut -d' ' -f2) |
|
|
if [[ -z "${INIT_MODEL:-}" ]]; then |
|
|
INIT_MODEL="${OUTPUT_DIR}/pytorch_model.bin.0" |
|
|
fi |
|
|
fi |
|
|
|
|
|
echo "[eval] Using INIT_MODEL=${INIT_MODEL}" |
|
|
|
|
|
|
|
|
BINARY_FLAG="" |
|
|
if [[ "${BINARY_EVAL}" == "1" || "${BINARY_EVAL}" == "true" ]]; then |
|
|
BINARY_FLAG="--binary_eval" |
|
|
fi |
|
|
|
|
|
CUDA_VISIBLE_DEVICES=0 python -m torch.distributed.launch --nproc_per_node="${NPROC}" --master_port="${MASTER_PORT}" \ |
|
|
cache_main_task_retrieval.py --do_eval --num_thread_reader="${NUM_THREADS}" \ |
|
|
--batch_size=128 --n_display=50 \ |
|
|
--train_csv "${DATA_PATH}/MSRVTT_train.9k.csv" \ |
|
|
--val_csv "${DATA_PATH}/MSRVTT_JSFUSION_test.csv" \ |
|
|
--data_path "${DATA_PATH}/MSRVTT_data.json" \ |
|
|
--features_path "${DATA_PATH}/compressed_videos" \ |
|
|
--output_dir "${OUTPUT_DIR}" \ |
|
|
--lr 1e-4 --max_words "${MAX_WORDS}" --max_frames "${MAX_FRAMES}" --batch_size_val "${BATCH_VAL}" \ |
|
|
--datatype msrvtt --expand_msrvtt_sentences \ |
|
|
--feature_framerate 1 --coef_lr 1e-3 \ |
|
|
--freeze_layer_num 0 --slice_framepos 2 \ |
|
|
--loose_type --linear_patch 2d --sim_header meanP \ |
|
|
--pretrained_clip_name ViT-B/32 \ |
|
|
--proj "${PROJ}" ${BINARY_FLAG} \ |
|
|
--init_model "${INIT_MODEL}" |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|