Upload UR5 full fine-tuned checkpoint: pi05_pour_full configs/deployment_benchmark_policy.sh
6695bad verified | set -euo pipefail | |
| ROOT="$(cd "$(dirname "${BASH_SOURCE[0]}")/../.." && pwd)" | |
| cd "$ROOT" | |
| TASK="${TASK:-${1:-}}" | |
| if [[ -z "$TASK" ]]; then | |
| echo "Set TASK=<preset>, for example TASK=tube_task." >&2 | |
| exit 2 | |
| fi | |
| TASK_ENV="$ROOT/deployment/tasks/${TASK}.env" | |
| LOCAL_TASK_ENV="$ROOT/local_pi_mamba/deployment_tasks/${TASK}.env" | |
| if [[ ! -f "$TASK_ENV" ]]; then | |
| if [[ -f "$LOCAL_TASK_ENV" ]]; then | |
| TASK_ENV="$LOCAL_TASK_ENV" | |
| else | |
| echo "Unknown task preset: $TASK" >&2 | |
| echo "Expected: $TASK_ENV" >&2 | |
| echo " or: $LOCAL_TASK_ENV" >&2 | |
| exit 2 | |
| fi | |
| fi | |
| source "$TASK_ENV" | |
| OPENPI_REPO="${OPENPI_REPO:-$ROOT/openpi}" | |
| OPENPI_VENV="${OPENPI_VENV:-$ROOT/.venvs/openpi}" | |
| DEVICE="${DEVICE:-cuda}" | |
| WARMUP_RUNS="${WARMUP_RUNS:-2}" | |
| TIMED_RUNS="${TIMED_RUNS:-20}" | |
| PROFILE_FLOPS="${PROFILE_FLOPS:-1}" | |
| EXAMPLE="${EXAMPLE:-auto}" | |
| CHECKPOINT_STEP="$(basename "$CHECKPOINT_DIR")" | |
| METRICS_TASK_NAME="${TASK_NAME:-$TASK}" | |
| METRICS_ROOT="${METRICS_ROOT:-$ROOT/reports/$METRICS_TASK_NAME/metrics}" | |
| METRICS_JSON="${METRICS_JSON:-$METRICS_ROOT/${MODEL_NAME}_${CHECKPOINT_STEP}_metrics.json}" | |
| TABLE_MD="${TABLE_MD:-$METRICS_ROOT/${MODEL_NAME}_${CHECKPOINT_STEP}_table.md}" | |
| if [[ ! -x "$OPENPI_VENV/bin/python" ]]; then | |
| echo "OpenPI Python venv not found: $OPENPI_VENV" >&2 | |
| exit 2 | |
| fi | |
| if [[ ! -f "$OPENPI_REPO/scripts/check_policy_inference.py" ]]; then | |
| echo "OpenPI checkout missing check_policy_inference.py: $OPENPI_REPO" >&2 | |
| exit 2 | |
| fi | |
| if [[ ! -f "$CHECKPOINT_DIR/model.safetensors" ]]; then | |
| echo "Missing checkpoint model.safetensors: $CHECKPOINT_DIR" >&2 | |
| exit 2 | |
| fi | |
| mkdir -p "$METRICS_ROOT" | |
| OPENPI_SITE_PACKAGES="$("$OPENPI_VENV/bin/python" - <<'PY' | |
| import site | |
| print(site.getsitepackages()[0]) | |
| PY | |
| )" | |
| OPENPI_NVIDIA_LIB_PATHS="$(find "$OPENPI_SITE_PACKAGES/nvidia" -maxdepth 2 -type d -name lib 2>/dev/null | paste -sd: -)" | |
| extra=() | |
| if [[ "$PROFILE_FLOPS" == 1 ]]; then | |
| extra+=(--profile-flops) | |
| fi | |
| if [[ -n "${NORM_STATS_PATH:-}" ]]; then | |
| extra+=(--norm-stats-path "$NORM_STATS_PATH") | |
| fi | |
| unset LOCAL_RANK RANK WORLD_SIZE MASTER_ADDR MASTER_PORT | |
| export CUDA_VISIBLE_DEVICES="${CUDA_VISIBLE_DEVICES:-0}" | |
| export VIRTUAL_ENV="$OPENPI_VENV" | |
| export PATH="$OPENPI_VENV/bin:$PATH" | |
| export LD_LIBRARY_PATH="$OPENPI_NVIDIA_LIB_PATHS:${LD_LIBRARY_PATH:-}" | |
| cd "$OPENPI_REPO" | |
| PYTORCH_CUDA_ALLOC_CONF=expandable_segments:True "$OPENPI_VENV/bin/python" scripts/check_policy_inference.py \ | |
| --checkpoint-dir "$CHECKPOINT_DIR" \ | |
| --config-name "$CONFIG" \ | |
| --pytorch-device "$DEVICE" \ | |
| --num-denoise-steps "$NUM_DENOISE_STEPS" \ | |
| --warmup-runs "$WARMUP_RUNS" \ | |
| --timed-runs "$TIMED_RUNS" \ | |
| --example "$EXAMPLE" \ | |
| --metrics-out-path "$METRICS_JSON" \ | |
| --table-out-path "$TABLE_MD" \ | |
| --model-label "$MODEL_NAME" \ | |
| "${extra[@]}" | |
| echo "Metrics JSON: $METRICS_JSON" | |
| echo "Table: $TABLE_MD" | |
| echo "Serve with this reference explicitly if needed:" | |
| echo "REFERENCE_METRICS_JSON=$METRICS_JSON TASK=$TASK bash deployment/scripts/serve_policy.sh" | |