Questo progetto riguarda la classificazione di spettrogrammi di target spaziali in tre classi, basandosi sulla grandezza del segnale. Il modello utilizza reti neurali costruite con PyTorch e altre librerie di supporto per il preprocessing e l'analisi dei dati.
Il progetto utilizza le seguenti librerie principali:
- Pandas: Per la manipolazione dei dati.
- NumPy: Per operazioni matematiche e matriciali.
- Matplotlib e Seaborn: Per la visualizzazione dei dati.
- Pillow (PIL): Per la gestione delle immagini.
- PyTorch e Torchvision: Per la costruzione, il training e la valutazione della rete neurale.
- Scikit-learn: Per metriche di valutazione come matrici di confusione, precisione, richiamo e accuratezza.
- Rilevamento del dispositivo: Il progetto è ottimizzato per funzionare su GPU (CUDA o MPS su dispositivi Apple) o CPU, con un controllo automatico delle disponibilità hardware.
- Percorsi dei dati:
- Training set:
/your/path/TargetSpaziali/train - Test set:
/your/path/TargetSpaziali/test
- Training set:
Il dataset contiene spettrogrammi di segnali, che sono suddivisi in tre classi in base alla loro grandezza.
Il progetto implementa una rete neurale profonda per classificare gli spettrogrammi. L'architettura include:
- Livelli convolutivi per l'estrazione delle caratteristiche.
- Livelli completamente connessi per la classificazione finale.
Metriche utilizzate:
- Matrice di confusione
- Precisione
- Richiamo
- Accuratezza
- Python (versione specificata nel progetto).
- Librerie richieste:
- torch
- torchvision
- pandas
- numpy
- matplotlib
- scikit-learn
- pillow
- Assicurati che i dati siano organizzati nei percorsi indicati.
- Installa le librerie richieste con:
pip install -r requirements.txt
- Esegui il notebook per allenare e testare il modello:
jupyter notebook ClassificazioneTargetSpaziali.ipynb
Il modello raggiunge un'accuratezza elevata sulla classificazione dei dati di test, dimostrando la capacità di distinguere efficacemente i segnali nelle tre classi previste.
Sviluppato da: Roberto Magno Mazzotta