#!/usr/bin/env bash
# ViT (6.3M params) from scratch on CIFAR-10: README command, 200 epochs, label smoothing, AutoAugment, CSV logger.
set -o pipefail
cd "$(dirname "$0")"
SEED=42
echo "KVERITAS_INPUT src=seed:$SEED"
echo "KVERITAS_PHASE name=train"
# tqdm redraws are dropped from the captured output; everything else passes through
../env/bin/python -u main.py --dataset c10 --label-smoothing --autoaugment --seed "$SEED" 2>&1 | tr '\r' '\n' | grep --line-buffered -v "it/s\]$\|it/s, loss=.*\]$\|^ *$" || exit 1
echo "KVERITAS_PHASE name=summary"
CSV=$(ls -td logs/vit_c10_aa_ls/version_*/ | head -1)metrics.csv
echo "metrics file: $CSV"
../env/bin/python - "$CSV" <<'PY'
import csv, sys
rows = [r for r in csv.DictReader(open(sys.argv[1])) if r.get("val_acc")]
for r in rows:
    print(f"KVERITAS_METRIC name=val_acc value={r['val_acc']} step={r['epoch']}")
    print(f"KVERITAS_METRIC name=val_loss value={r['val_loss']} step={r['epoch']}")
best = max(rows, key=lambda r: float(r["val_acc"]))
print(f"KVERITAS_CLAIM metric=final_val_acc value={rows[-1]['val_acc']}")
print(f"KVERITAS_CLAIM metric=best_val_acc value={best['val_acc']}")
PY
