| #!/bin/bash |
| |
| |
| |
| |
| |
| set -euo pipefail |
| cd "$(dirname "$0")/../.." |
|
|
| OUT_ROOT="checkpoints/danger_v2" |
| mkdir -p logs "$OUT_ROOT" |
|
|
| for seed in 0 1 2 3 4; do |
| echo "================================================================" |
| echo "Danger Head seed=${seed}" |
| echo "================================================================" |
| python -m training.Policy.train_danger_head \ |
| --out_dir "${OUT_ROOT}/seed${seed}" \ |
| --epochs 50 \ |
| --batch_size 128 \ |
| --lr 3e-4 \ |
| --weight_decay 1e-4 \ |
| --hidden 512 \ |
| --k_queries 4 \ |
| --dropout 0.2 \ |
| --w_clip 0.5 \ |
| --patience 10 \ |
| --seed "${seed}" 2>&1 | tee "logs/phase3_danger_seed${seed}.log" |
| done |
|
|
| echo "" |
| echo "===============================================================" |
| echo "5-seed summary (val per_frame AUC):" |
| for seed in 0 1 2 3 4; do |
| if [[ -f "${OUT_ROOT}/seed${seed}/best.pt" ]]; then |
| python -c " |
| import torch |
| d = torch.load('${OUT_ROOT}/seed${seed}/best.pt', weights_only=False, map_location='cpu') |
| m = d['val_metrics'] |
| print(f\" seed${seed}: per_frame_auc={m.get('per_frame_auc',0):.4f} \" + |
| f\"clip_auc={m.get('clip_auc',0):.4f} ep={d['epoch']}\") |
| " |
| fi |
| done |
| echo "===============================================================" |
|
|