deepsleep2
😴 DeepSleep2 is a compact U-Net-inspired convolutional neural network with 740,551 parameters, designed to predict non-apnea sleep arousals from full-length multi-channel polysomnographic recordings at 5-millisecond resolution. Achieves similar performance to DeepSleep with lower computational cost.
Science Score: 49.0%
This score indicates how likely this project is to be science-related based on various indicators:
-
â—‹CITATION.cff file
-
✓codemeta.json file
Found codemeta.json file -
✓.zenodo.json file
Found .zenodo.json file -
✓DOI references
Found 5 DOI reference(s) in README -
✓Academic publication links
Links to: nature.com, mdpi.com, zenodo.org -
â—‹Academic email domains
-
â—‹Institutional organization owner
-
â—‹JOSS paper metadata
-
â—‹Scientific vocabulary similarity
Low similarity (14.4%) to scientific vocabulary
Keywords
Repository
😴 DeepSleep2 is a compact U-Net-inspired convolutional neural network with 740,551 parameters, designed to predict non-apnea sleep arousals from full-length multi-channel polysomnographic recordings at 5-millisecond resolution. Achieves similar performance to DeepSleep with lower computational cost.
Basic Info
- Host: GitHub
- Owner: rfonod
- License: mit
- Language: Jupyter Notebook
- Default Branch: main
- Homepage: https://doi.org/10.3390/ai3010010
- Size: 791 MB
Statistics
- Stars: 17
- Watchers: 1
- Forks: 4
- Open Issues: 0
- Releases: 1
Topics
Metadata Files
README.md
DeepSleep 2.0: Automated Sleep Arousal Segmentation via Deep Learning
A 300-second example of a 13-channel physiological recording and the corresponding sleep arousal prediction/target labels.

Overview
DeepSleep 2.0 is a compact version of DeepSleep, a state-of-the-art, U-Net-inspired, fully convolutional deep neural network, which achieved the highest unofficial score in the 2018 PhysioNet Computing Challenge. The proposed network architecture has a compact encoder/decoder structure containing only 740,551 trainable parameters. The input to the network is a full-length multi-channel polysomnographic recording signal. The network has been designed and optimized to efficiently predict non-apnea sleep arousals on held-out test data at a 5-millisecond resolution level, while not compromising the prediction accuracy. When compared to DeepSleep, the obtained experimental results in terms of gross area under the precision-recall curve (AUPRC) and gross area under the receiver operating characteristic curve (AUROC) suggest that a lightweight architecture, which can achieve similar prediction performance at a lower computational cost, is realizable.
Requirements
It is assumed that you have the full or partial PhysioNet dataset (~135 GB of data per folder) on the disk. In ./data, you can find two bash scripts to download the PhysioNet dataset.
Running the code
Here are the essential steps to sucesfully run the main Jupyter notebook file (deep_sleep2.ipynb).
STEP 0: Clone the Repository
git clone https://github.com/rfonod/deepsleep2.git
cd deepsleep2
STEP 1: Installation
- Install Python and PyTorch. Python 3.8 and PyTorch 1.8.1 were considered for the reported results in the DeepSleep 2.0 paper
- [OPTIONAL] Create a virtual environment with a specific version of Python
- Install Python dependencies listed in
requirements.txt. You can run:pip3 install -r requirements.txt - If you plan to use GPU computations (recommended), install CUDA
STEP 2: Hyperparameters
A correctly set up hyperparameters.txt file must be present in a subdirectory of ./models. The subdirectory name is specified in the MODEL_NAME variable.
STEP 3: Notebook File
Run the cells of deep_sleep2.ipynb in a sequential order. Consider the description of the Main Switches section.
Citation
If you use this code in your research, please cite the following publication:
@Article{Fon22a,
author = {Fonod, Robert},
title = {{DeepSleep 2.0: Automated Sleep Arousal Segmentation via Deep Learning}},
journal = {AI},
year = {2022},
volume = {3},
number = {1},
pages = {164-179},
doi = {https://doi.org/10.3390/ai3010010},
publisher = {MDPI},
}
Consider also citing the original DeepSleep paper.
Owner
- Name: Robert Fonod
- Login: rfonod
- Kind: user
- Website: https://www.linkedin.com/in/rfonod/
- Repositories: 2
- Profile: https://github.com/rfonod
GitHub Events
Total
- Release event: 1
- Watch event: 4
- Push event: 4
- Fork event: 1
- Create event: 1
Last Year
- Release event: 1
- Watch event: 4
- Push event: 4
- Fork event: 1
- Create event: 1
Dependencies
- Cython ==0.29.23
- Jinja2 ==3.0.1
- MarkupSafe ==2.0.1
- Pillow ==8.2.0
- Pygments ==2.9.0
- QtPy ==1.9.0
- Send2Trash ==1.5.0
- appnope ==0.1.2
- argon2-cffi ==20.1.0
- astroid ==2.5.6
- async-generator ==1.10
- attrs ==21.2.0
- backcall ==0.2.0
- bleach ==3.3.0
- certifi ==2021.5.30
- cffi ==1.14.5
- cycler ==0.10.0
- decorator ==5.0.9
- defusedxml ==0.7.1
- entrypoints ==0.3
- h5py ==3.2.1
- ipykernel ==5.5.5
- ipython ==7.24.1
- ipython-genutils ==0.2.0
- ipywidgets ==7.6.3
- isort ==5.8.0
- jedi ==0.18.0
- joblib ==1.0.1
- jsonschema ==3.2.0
- jupyter ==1.0.0
- jupyter-client ==6.1.12
- jupyter-console ==6.4.0
- jupyter-core ==4.7.1
- jupyterlab-pygments ==0.1.2
- jupyterlab-widgets ==1.0.0
- kiwisolver ==1.3.1
- lazy-object-proxy ==1.6.0
- matplotlib ==3.4.2
- matplotlib-inline ==0.1.2
- mccabe ==0.6.1
- mistune ==0.8.4
- nbclient ==0.5.3
- nbconvert ==6.0.7
- nbformat ==5.1.3
- nest-asyncio ==1.5.1
- notebook ==6.4.0
- numpy ==1.20.3
- packaging ==20.9
- pandas ==1.2.4
- pandocfilters ==1.4.3
- parso ==0.8.2
- pexpect ==4.8.0
- pickleshare ==0.7.5
- prometheus-client ==0.11.0
- prompt-toolkit ==3.0.19
- ptyprocess ==0.7.0
- pycparser ==2.20
- pylint ==2.8.3
- pyparsing ==2.4.7
- pyrsistent ==0.17.3
- python-dateutil ==2.8.1
- pytz ==2021.1
- pyzmq ==22.1.0
- qtconsole ==5.1.0
- scikit-learn ==0.24.2
- scipy ==1.6.3
- seaborn ==0.11.1
- six ==1.16.0
- sklearn ==0.0
- terminado ==0.10.1
- testpath ==0.5.0
- threadpoolctl ==2.1.0
- toml ==0.10.2
- torch ==1.9.0
- torchsummary ==1.5.1
- tornado ==6.1
- tqdm ==4.61.1
- traitlets ==5.0.5
- typing-extensions ==3.10.0.0
- wcwidth ==0.2.5
- webencodings ==0.5.1
- widgetsnbextension ==3.5.1
- wrapt ==1.12.1