#!/usr/bin/env bash set -euo pipefail ROOT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)" GPU_IDS="${GPU_IDS:-0,1,2,3,4,5,6,7}" PRED_ONLY_OUTPUT="${PRED_ONLY_OUTPUT:-/mnt/local_nvme/zoubin/cz/self_forcing_predictor_v4_dmd_predictor_only}" JOINT_OUTPUT="${JOINT_OUTPUT:-/mnt/local_nvme/zoubin/cz/self_forcing_predictor_v4_dmd_joint}" ORIGINAL_FULL="$ROOT_DIR/checkpoints/self_forcing_dmd.pt" ORIGINAL_VALIDATION_FFFF="$ROOT_DIR/videos/moviegenvideobench_extended_101_200_dmd_seed0" PRED_ONLY_PROJECT="$ROOT_DIR/checkpoints/predictor_v4_dmd_predictor_only" JOINT_PROJECT="$ROOT_DIR/checkpoints/predictor_v4_dmd_joint" cd "$ROOT_DIR" exec 9>"$ROOT_DIR/evaluation_results/predictor_v4_dmd_suite.lock" if ! flock -n 9; then echo "错误:已有 Predictor-v4 DMD suite 正在运行。" >&2 exit 1 fi GPU_IDS="$GPU_IDS" \ CONFIG_PATH="$ROOT_DIR/configs/predictor_v4_dmd_predictor_only.yaml" \ OUTPUT_DIR="$PRED_ONLY_OUTPUT" \ MASTER_PORT=29741 \ bash scripts/run_predictor_v4_dmd_training.sh mkdir -p "$PRED_ONLY_PROJECT" rsync -a \ "$PRED_ONLY_OUTPUT/checkpoint_final/" \ "$PRED_ONLY_PROJECT/checkpoint_final/" rsync -a \ "$PRED_ONLY_OUTPUT/train_config.json" \ "$PRED_ONLY_OUTPUT/train_log.jsonl" \ "$PRED_ONLY_PROJECT/" GPU_IDS="$GPU_IDS" \ EXPERIMENT_NAME=predictor_v4_dmd_predictor_only \ FULL_CHECKPOINT="$ORIGINAL_FULL" \ PREDICTOR_CHECKPOINT="$PRED_ONLY_OUTPUT/checkpoint_final/predictor_ema.safetensors" \ INCLUDE_FFFF=0 \ REFERENCE_FFFF="$ORIGINAL_VALIDATION_FFFF" \ bash scripts/run_predictor_v4_dmd_validation.sh GPU_IDS="$GPU_IDS" \ CONFIG_PATH="$ROOT_DIR/configs/predictor_v4_dmd_joint.yaml" \ OUTPUT_DIR="$JOINT_OUTPUT" \ MASTER_PORT=29742 \ bash scripts/run_predictor_v4_dmd_training.sh mkdir -p "$JOINT_PROJECT" rsync -a \ "$JOINT_OUTPUT/checkpoint_final/" \ "$JOINT_PROJECT/checkpoint_final/" rsync -a \ "$JOINT_OUTPUT/train_config.json" \ "$JOINT_OUTPUT/train_log.jsonl" \ "$JOINT_PROJECT/" GPU_IDS="$GPU_IDS" \ EXPERIMENT_NAME=predictor_v4_dmd_joint \ FULL_CHECKPOINT="$JOINT_OUTPUT/checkpoint_final/model.pt" \ PREDICTOR_CHECKPOINT="$JOINT_OUTPUT/checkpoint_final/predictor_ema.safetensors" \ INCLUDE_FFFF=1 \ bash scripts/run_predictor_v4_dmd_validation.sh echo "[$(date -u +%FT%TZ)] Predictor-only 与 Joint DMD 训练评估全部完成。"