wangzeze's picture
Upload folder using huggingface_hub
b2aaac8 verified
Raw
History Blame Contribute Delete
3.81 kB
#!/usr/bin/env bash
# Phase Annotate: sequentially annotate all four LIBERO suites.
# Usage:
# bash examples/LIBERO/train_files/run_phase_annotate.sh
# OUTPUT_ROOT=/custom/path bash examples/LIBERO/train_files/run_phase_annotate.sh
set -euo pipefail
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
REPO_ROOT="$(cd "${SCRIPT_DIR}/.." && pwd)"
# ── Configurable parameters ────────────────────────────────────────────────────
LIBERO_DATA_ROOT="${REPO_ROOT}/LIBERO-DATA"
OUTPUT_ROOT="${OUTPUT_ROOT:-${REPO_ROOT}/LIBERO-DATA-phase}"
SIGNAL_SOURCE="${SIGNAL_SOURCE:-action}"
MEDIAN_FILTER_SIZE="${MEDIAN_FILTER_SIZE:-5}"
NUM_WORKERS="${NUM_WORKERS:-1}"
SUITES=(
"libero_10_no_noops_1.0.0_lerobot"
"libero_goal_no_noops_1.0.0_lerobot"
"libero_object_no_noops_1.0.0_lerobot"
"libero_spatial_no_noops_1.0.0_lerobot"
)
# ──────────────────────────────────────────────────────────────────────────────
echo "========================================================"
echo " LIBERO Phase Annotation"
echo "========================================================"
echo " LIBERO_DATA_ROOT : ${LIBERO_DATA_ROOT}"
echo " OUTPUT_ROOT : ${OUTPUT_ROOT}"
echo " signal_source : ${SIGNAL_SOURCE}"
echo " num_workers : ${NUM_WORKERS}"
echo "========================================================"
cd "${REPO_ROOT}"
FAILED=()
for SUITE in "${SUITES[@]}"; do
SRC_DIR="${LIBERO_DATA_ROOT}/${SUITE}"
OUT_DIR="${OUTPUT_ROOT}/${SUITE}"
echo ""
echo "-------- [$(date '+%H:%M:%S')] Processing: ${SUITE} --------"
if [[ ! -d "${SRC_DIR}/data" ]]; then
echo " SKIP: ${SRC_DIR}/data not found (parquet not downloaded yet)"
continue
fi
mkdir -p "${OUT_DIR}"
if python -m phaseaware_data_construction.phase_annotate \
--src_dir "${SRC_DIR}" \
--output_dir "${OUT_DIR}" \
--signal_source "${SIGNAL_SOURCE}" \
--median_filter_size "${MEDIAN_FILTER_SIZE}" \
--num_workers "${NUM_WORKERS}"; then
echo " OK: annotation written to ${OUT_DIR}"
else
echo " FAILED: ${SUITE}"
FAILED+=("${SUITE}")
fi
done
# ── Validate all annotated suites ─────────────────────────────────────────────
echo ""
echo "========================================================"
echo " Validation"
echo "========================================================"
for SUITE in "${SUITES[@]}"; do
SRC_DIR="${LIBERO_DATA_ROOT}/${SUITE}"
OUT_DIR="${OUTPUT_ROOT}/${SUITE}"
if [[ ! -d "${OUT_DIR}/data" ]]; then
echo " SKIP validate: ${SUITE} (no output yet)"
continue
fi
echo ""
echo "-------- [$(date '+%H:%M:%S')] Validating: ${SUITE} --------"
python -m phaseaware_data_construction.phase_annotate \
--src_dir "${SRC_DIR}" \
--output_dir "${OUT_DIR}" \
--validate || true # validation failures are non-fatal
done
# ── Final report ──────────────────────────────────────────────────────────────
echo ""
echo "========================================================"
if [[ ${#FAILED[@]} -eq 0 ]]; then
echo " All suites completed successfully."
else
echo " The following suites FAILED:"
for s in "${FAILED[@]}"; do echo " - ${s}"; done
exit 1
fi
echo "========================================================"