This submission package contains all necessary files to generate predictions on the test dataset.
submission/
├── generate_submission.py # Main prediction script
├── best_model.pth # Trained model checkpoint
├── aortaP_test_data.csv # Test data (AortaP signals)
├── brachP_test_data.csv # Test data (BrachP signals)
├── requirements.txt # Python dependencies
├── config/
│ └── config.yaml # Model configuration
└── src/
├── data/
│ ├── dataset.py # Dataset preprocessing
│ └── preprocessing.py # Signal filtering utilities
├── models/
│ └── age_group_predictor.py # Model architecture
└── utils/
└── config.py # Configuration utilities
- Python 3.8+
- PyTorch
- NumPy
- Pandas
- SciPy
- scikit-learn
- PyYAML
Install dependencies:
pip install -r requirements.txtpython generate_submission.py \
--model best_model.pth \
--aorta-data aortaP_test_data.csv \
--brach-data brachP_test_data.csv \
--output OCA-SENTINEL_output.json \
--device auto--model: Path to trained model checkpoint (default:best_model.pth)--aorta-data: Path to AortaP test data CSV--brach-data: Path to BrachP test data CSV--output: Output JSON file path--device: Device for inference (auto,cuda, orcpu)--config: Path to config file (default:config/config.yaml)--team-name: Team name for filename validation (OCA-SENTINEL)
auto(default): Automatically detects GPU availabilitycuda: Force GPU usage (falls back to CPU if unavailable)cpu: Force CPU usage
The script generates a JSON file with predictions in the format:
{
"0": 2,
"1": 4,
"2": 1,
...
}Where keys are sample indices (0-874) and values are predicted age group classes (0-5).
- Encoder: Transformer-based encoders for AortaP and BrachP signals
- Features: Handles missing data with attention masking
- Preprocessing: Butterworth low-pass filtering + normalization
- Classes: 6 age groups (0-5)
- The script automatically preprocesses signals (filtering + normalization)
- Predictions are validated before saving
- Progress updates are shown during inference
- Class distribution statistics are displayed after generation