This project implements a custom six-layer convolutional neural network (CNN) for classifying eye fundus images into three categories:
- Normal
- Cataract
- Glaucoma
The pipeline includes image loading, data augmentation, stratified cross-validation, class weighting, model checkpointing, fold-specific model averaging, and final evaluation on unseen test data.
This project was developed and run inside a Docker-based environment. The Docker image can also be converted into a Singularity/Apptainer image for use on HPC systems or other multi-user computing platforms.
Pull the Docker image from Docker Hub:
docker pull naolxi/deeplearn:1Convert the Docker image to a Singularity/Apptainer image if needed:
singularity build deeplearn.sif docker://naolxi/deeplearn:1Submit the provided SLURM script. Resource allocation can be adjusted depending on the system and dataset size.
sbatch jupyter.shInside the job/session terminal, activate the TensorFlow Conda environment:
source /opt/conda/bin/activate tensorflow_envRun the main pipeline script:
python main.pyRaw datasets, trained model weights, temporary checkpoints, SLURM output files, and Singularity .sif images are excluded from version control.
