Spaces:
Running
Running
# =========================================== | |
# validate_pipeline.sh — Canonical Smoke Test | |
# AI-Driven Polymer Aging Prediction System | |
# Requires: conda (or venv) already installed | |
# =========================================== | |
set -euo pipefail | |
RED='\033[0;31m' | |
GRN='\033[0;32m' | |
YLW='\033[1;33m' | |
NC='\033[0m' | |
die() { | |
echo -e "${RED}[FAIL] $1${NC}" | |
exit 1 | |
} | |
pass() { echo -e "${GRN}[PASS] $1${NC}"; } | |
echo -e "${YLW}>>> Activating environment...${NC}" | |
source "$(conda info --base)/etc/profile.d/conda.sh" | |
conda activate polymer_env || die "conda env 'polymer_env' not found" | |
root_dir="$(dirname "$(readlink -f "$0")")" | |
cd "$root_dir" || die "repo root not found" | |
# ---------- Step 1: Preprocessing ---------- | |
echo -e "${YLW}>>> Step 1: Preprocessing${NC}" | |
python scripts/preprocess_dataset.py datasets/rdwp \ | |
--target-len 500 --baseline --smooth --normalize | | |
grep -q "X shape:" || die "preprocess_dataset.py failed" | |
pass "Preprocessing" | |
# ---------- Step 2: CV Training (Figure2) ---------- | |
mkdir -p outputs outputs/logs || true | |
# Optional: skip gracefully if dataset is not present | |
if [ ! -d "datasets/rdwp" ] || [ -z "$(find datasets/rdwp -maxdepth 1 -name '*.txt' 2>/dev/null)" ]; then | |
echo -e "${YLW}{SKIP} Training (no datasets/rdwp/*.txt found)${NC}" | |
else | |
echo -e "${YLW}>>> Step 2: 10-Fold CV Training${NC}" | |
python scripts/train_model.py \ | |
--target-len 500 --baseline --smooth --normalize \ | |
--model figure2 | |
[[ -f outputs/figure2_model.pth ]] || die "model .pth not found" | |
[[ -f outputs/logs/raman_figure2_diagnostics.json ]] || die "diagnostics JSON not found" | |
pass "Training & artifacts" | |
fi | |
# ---------- Step 3: Inference ---------- | |
echo -e "${YLW}>>> Step 3: Inference${NC}" | |
python scripts/run_inference.py \ | |
--target-len 500 \ | |
--input datasets/rdwp/wea-100.txt \ | |
--model outputs/figure2_model.pth \ | |
--output outputs/inference/test_prediction.json | |
[[ -f outputs/inference/test_prediction.json ]] || die "inference output missing" | |
pass "Inference" | |
# ---------- Step 4: Spectrum Plot ---------- | |
echo -e "${YLW}>>> Step 4: Plot Spectrum${NC}" | |
mkdir -p outputs/inference || true | |
python scripts/plot_spectrum.py --input datasets/rdwp/sta-10.txt | |
[[ $? -eq 0 ]] || die "plot_spectrum.py failed" | |
pass "Plotting" | |
echo -e "${GRN}All validation checks passed!${NC}" | |