跳到内容

akaraspt/深度睡眠网

存储库文件导航

深度睡眠网

基于原始单通道EEG的睡眠阶段自动评分深度学习模型。

我们已经发布了一个更有效的深度学习模型,名为TinySleepNet,该模型更小,可以实现更好的得分性能。

TinySleepNet:一种基于原始单通道脑电图的高效睡眠阶段评分深度学习模型,分别由来自信息技术学院、马希隆大学和伦敦帝国理工学院的Akara Supratak和Yike Guo提出. [纸张][github]

伦敦帝国理工学院数据科学研究所的Akara Supratak、Hao Dong、Chao Wu、Yike Guo在《DeepSleepNet:基于原始单通道脑电图的自动睡眠阶段评分模型》一文中的模型代码。

这部作品已被接受出版于IEEE神经系统与康复工程汇刊.

您还可以在中找到我们在发布之前接受的版本arXiv公司.

DeepSleepNet的架构:深度睡眠网注:Fs是输入EEG信号的采样率

该图显示了模型中一个可解释的LSTM细胞,该细胞学习跟踪每个受试者清醒时(即W阶段):睡眠起始细胞

环境

以下设置用于重现此工作:

  • Ubuntu 18.04/Windows 10 1903 x64
  • CUDA工具包10.0和CuDNN v7.6.4
  • Python 3.5.4 x64像素
  • 张量流-gpu(1.15.2)
  • matplotlib(1.5.3)
  • 科学基础知识(0.19.1)
  • scipy(1.4.1)
  • 数字(1.18.2)
  • 熊猫(0.25.3)
  • mne(0.20.0)
  • 张量层(可选)
  • MongoDB(可选)
  • 电子艺界(可选)

准备数据集

我们使用MASS和睡眠-EDF数据集。

对于MASS数据集,您必须请求访问其数据集的权限。对于睡眠-EDF数据集,您可以运行以下脚本来下载SC主题。

cd数据chmod+x下载_physionet.sh./下载_physionet.sh

然后运行以下脚本提取指定的EEG通道及其相应的睡眠阶段。

python prepare_physionet.py--数据目录数据--输出目录数据/eeg_fpz_cz--选择ch'eeg fpz-cz'python prepare_physionet.py--数据目录数据--输出目录数据/eeg_pz_oz--选择ch“eeg pz-oz”

培训模型

运行此脚本以训练DeepSleepNet模型,用于20次交叉验证的第一次折叠。

python train.py--data_dir data/eeg_fpz_cz--output_dir output--n_folds 20--fold_idx 0--prepain_epochs 100--finetune_epoch 200--resume False

您需要为每个折叠训练DeepSleep模型(即。,fold_idx=0…19)然后才能评估性能。您可以使用以下脚本运行批处理培训

chmod+x批处理火车.sh./batch_train.sh数据/eeg_fpz_cz/output 20 0 19 0

睡眠阶段评分

运行此脚本以确定每个交叉验证折叠中被扣留对象的睡眠阶段。

python predict.py--数据目录数据/eeg_fpz_cz--模型目录输出--输出目录输出

输出将存储在numpy文件中。

获取摘要

运行此脚本以显示我们的DeepSleepNet与最先进的手工工程方法相比的性能摘要。性能指标包括总体准确性、每类F1-核心和宏F1-核心。

python summary.py—数据目录输出

将作业提交到配备TensorLayer的eAE集群

  1. 设置eAE集群(按照以下说明链接)
  2. 设置MongoDB
  3. 更改MongoDB在中的位置深度睡眠/教练.py
  4. 修改提交eAE.py
  5. 运行python提交_eAE.py

待办事项

  • 发布一个不依赖MongoDB和Tensorlayer的版本(更容易安装,但可能需要更长的时间进行培训)。

引文

如果您觉得这很有用,请引用我们的工作如下:

@第{Supratak2017条,title={DeepSleepNet:基于原始单通道EEG的睡眠阶段自动评分模型},author={Supratak、Akara和Dong、Hao和Wu、Chao和Guo、Yike},journal={IEEE神经系统与康复工程汇刊},年份={2017年},月={11月},体积={25},数字={11},页码={1998-2008},doi={10.1109/TNSRE.2017.2721116},ISSN={1534-4320},}

执照

  • 仅供学术和非商业用途
  • Apache许可证2.0