- Remplace le continuum exponentiel par un modèle réaliste CsI(Tl) dans l'entraînement (bosse asymétrique ~110 keV + queue Compton) - Ajoute l'injection de background mesuré (70% mesuré / 30% synthétique) via --measured_background et MEASURED_BACKGROUND_PATH - Ajoute l'endpoint /api/background/continuum et le toggle "Continuum CsI" sur le dashboard background - Exclut le canal 1023 (overflow bin) de l'affichage web (NUM_CHANNELS=1023) - Corrige le lissage Gaussien du background (normalisation locale aux bords) - Met à jour README.md, CLAUDE.md, TUTORIEL.md, TOTO.md, vega_ml/README.md Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
66 lines
2.0 KiB
Bash
Executable File
66 lines
2.0 KiB
Bash
Executable File
#!/bin/bash
|
|
set -e
|
|
|
|
DATA_DIR="${DATA_DIR:-/data/synthetic}"
|
|
MODEL_DIR="${MODEL_DIR:-/models}"
|
|
NUM_SAMPLES="${NUM_SAMPLES:-50000}"
|
|
EPOCHS="${EPOCHS:-100}"
|
|
BATCH_SIZE="${BATCH_SIZE:-64}"
|
|
LEARNING_RATE="${LEARNING_RATE:-0.001}"
|
|
DETECTOR="${DETECTOR:-radiacode_103}"
|
|
MIN_DURATION="${MIN_DURATION:-43200}"
|
|
MAX_DURATION="${MAX_DURATION:-86400}"
|
|
SEED="${SEED:-42}"
|
|
MEASURED_BACKGROUND_PATH="${MEASURED_BACKGROUND_PATH:-}"
|
|
|
|
echo "============================================"
|
|
echo " Radiacode 103 — Pipeline d'entraînement"
|
|
echo "============================================"
|
|
echo " Data dir : $DATA_DIR"
|
|
echo " Model dir : $MODEL_DIR"
|
|
echo " Samples : $NUM_SAMPLES"
|
|
echo " Detector : $DETECTOR"
|
|
echo " Duration : $MIN_DURATION-$MAX_DURATION s"
|
|
echo " Epochs : $EPOCHS"
|
|
echo " Batch size : $BATCH_SIZE"
|
|
echo " Learning rate: $LEARNING_RATE"
|
|
echo "============================================"
|
|
|
|
MEASURED_BG_ARG=""
|
|
if [ -n "$MEASURED_BACKGROUND_PATH" ] && [ -f "$MEASURED_BACKGROUND_PATH" ]; then
|
|
MEASURED_BG_ARG="--measured_background $MEASURED_BACKGROUND_PATH"
|
|
echo "Using measured background: $MEASURED_BACKGROUND_PATH"
|
|
fi
|
|
|
|
echo ""
|
|
echo "=== Phase 1 : Génération des spectres synthétiques ==="
|
|
python -m vega_ml.synthetic_spectra.generate_spectra \
|
|
--num_samples "$NUM_SAMPLES" \
|
|
--output_dir "$DATA_DIR" \
|
|
--detector "$DETECTOR" \
|
|
--min_duration "$MIN_DURATION" \
|
|
--max_duration "$MAX_DURATION" \
|
|
--seed "$SEED" \
|
|
$MEASURED_BG_ARG
|
|
|
|
echo ""
|
|
echo "=== Phase 2 : Entraînement du VegaModel ==="
|
|
python -m vega_ml.training.vega.run_training \
|
|
--data-dir "$DATA_DIR" \
|
|
--model-dir "$MODEL_DIR" \
|
|
--epochs "$EPOCHS" \
|
|
--batch-size "$BATCH_SIZE" \
|
|
--learning-rate "$LEARNING_RATE"
|
|
|
|
echo ""
|
|
echo "=== Entraînement terminé ==="
|
|
echo "Fichiers modèle :"
|
|
ls -lh "$MODEL_DIR/"
|
|
|
|
echo ""
|
|
echo "Copie de l'index des isotopes..."
|
|
if [ -f "$MODEL_DIR/vega_isotope_index.txt" ]; then
|
|
echo " vega_isotope_index.txt présent"
|
|
else
|
|
echo " ATTENTION : vega_isotope_index.txt absent"
|
|
fi |