# Radiacode 103 — Pipeline d'identification automatique d'isotopes ## Etat d'avancement | Etape | Statut | Detail | |-------|--------|--------| | Build Docker | Fait | train + detect | | Generation spectres synthetiques | Fait | 50 000 echantillons (1D, 4.2 Go) | | Entrainement VegaModel | Fait | 100 epochs, val loss 0.0051, val acc 99.89% | | Modele sauvegarde | Fait | `models/vega_best.pt` (395 Mo), 82 isotopes | | Capture background 24h | En cours | 0.2h/24h, 6.5 CPS | | Detection continue | Pas encore | Apres background 24h | | Test avec source | Pas encore | Apres detection continue | ## Prochaines etapes - [ ] Attendre fin de la capture background 24h (conteneur `radiacode-bg` en cours) - [ ] Lancer le moniteur : `docker compose up detect` - [ ] Tester avec une source radioactive connue (Cs-137) - [] Nettoyer les checkpoints d'epochs dans `models/` (garder seulement `vega_best.pt`, `vega_final.pt`, `vega_history.json`, `vega_isotope_index.txt`) - [ ] Transfer vers Pi 4 pour la production ## Bugs corriges - `spectrum.duration` retourne un `timedelta`, pas un `float` -> utilise `.total_seconds()` - Generation de spectres 2D (time x channels) causait un OOM a ~210 echantillons -> generation 1D cumulative - PyTorch 2.4 ne supporte pas sm_120 (Blackwell/RTX 5060 Ti) -> PyTorch 2.7.0 + CUDA 12.8 - DataParallel incompatible entre GPU d'architectures differentes (4060 Ti Ada + 5060 Ti Blackwell) -> mono-GPU - `radiacode` depend de `bluepy` (BLE) qui ne compile pas dans `python:3.11-slim` -> ajoute `build-essential libglib2.0-dev` - Volume `./data` monte en read-only dans detect -> passe en read-write pour le snapshot JSON