- Huy Phan, Fernando Andreotti, Navin Cooray, Oliver Y. Chén, and Maarten De Vos. Joint Classification and Prediction CNN Framework for Automatic Sleep Stage Classification. IEEE Transactions on Biomedical Engineering, vol. 66, no. 5, pp. 1285-1296, 2019
These are source code and experimental setup for two sleep databases: SleepEDF Expanded database and MASS database, used in our above arXiv preprint. Although the networks have many things in common, we try to separate them and to make them work independently to ease exploring them invididually.
You need to download the databases to run the experiments again
- SleepEDF Expanded database can be downloaded from here. We also included a Matlab script that you can use for downloading.
- MASS database is available here here. Information on how to obtain it can be found therein.
Currently for MASS database, Tsinalis et al.'s network and DeepSleepNet1 (Supratak et al.) are still missing. We are currently cleaning them up and and will update them very shortly.
- Download the databases
- Data preparation
- Change directory to
[database]/data_processing/
, for exampleMASS/data_processing/
- Run
main_run.m
- Network training and testing
- Change directory to a specific network in
[database]/tensorflow_net/
, for exampleMASS/tensorflow_net/multitask_1max_cnn_1to3/
- Run a bash script, for example
bash run_3chan.sh
to repeat 20 cross-validation folds.
Note1: You may want to modify and script to make use of your computational resources, such as place a few process them on multiple GPUs. If you want to run multiple processes on a single GPU, you may want to modify the Tensorflow source code to change GPU options when initializing a Tensorflow session.
Note2: All networks, except those based on raw signal input like Chambon et al., DeepSleepNet1 (Supratak et al.), Tsinalis et al. on MASS database, require pretrained filterbanks for preprocessing. If you want to repeat everything, you may want to train the filterbanks first by executing the bash script in[database]/tensorflow_net/dnn-filterbank/
- Evaluation
- Go up to
[database]/
directory, for exampleMASS/
- Execute a specific evaluation Matlab script, for example
eval_1maxcnn_one2many.m
- Matlab v7.3 (for data preparation)
- Python3
- Tensorflow GPU 1.3.0 (for network training and evaluation)
Huy Phan
School of Electronic Engineering and Computer Science
Queen Mary University of London
Email: h.phan{at}qmul.ac.uk
CC-BY-NC-4.0