信号处理--卷积残差网络实现单通道脑电的睡眠分期监测

目录

背景

亮点

环境配置

数据

方法

结果

代码获取

参考文献


背景

人类大约花三分之一的时间睡觉,这使得监视睡眠成为幸福感的组成部分。 在本文中,提出了用于端到端睡眠阶段的34层深残留的Convnet架构

亮点

使用深度1D CNN残差架构,用于端到端分类, 可以解决训练更深的CNN模型引起的消失梯度问题。 

环境配置

python; tensorflow

数据

Sleep-EDF

方法

使用三十层卷积神经残差网络,实现睡眠分期检测。

主要代码:

 

def res_first(input_tensor, filters=(64,64), kernel_size=16, dropout_rate=0.2, bias=False, maxnorm=4., **kwargs):eps = 1.1e-5nb_filter1, nb_filter2 = filtersx = Conv1D(filters=nb_filter1, kernel_initializer=initializers.he_normal(seed=1), kernel_size=kernel_size,padding='same', use_bias=bias, kernel_constraint=max_norm(maxnorm))(input_tensor)  ##x = BatchNormalization(epsilon=eps, axis=-1)(x)x = Scale(axis=-1)(x)x = Activation('relu')(x)x = Dropout(rate=dropout_rate, seed=1)(x)x = Conv1D(filters=nb_filter2, kernel_initializer=initializers.he_normal(seed=1), kernel_size=kernel_size,padding='same', use_bias=bias, kernel_constraint=max_norm(maxnorm))(x)  ##x = add([x, input_tensor])return xdef MyModel(eeg_length=3000, kernel_size=16, bias=False, maxnorm=4., **kwargs):'''Top model for the CNNAdd details of module in docstring'''eps = 1.1e-5#inputs = K.placeholder(shape=(batch_size, eeg_length,1))#x = Input(dtype= 'float32', shape=(eeg_length,1))EEG_input = Input(shape=(eeg_length,1))x = Conv1D(filters=64, kernel_size=kernel_size, kernel_initializer=initializers.he_normal(seed=1), padding='same',use_bias=bias, kernel_constraint=max_norm(maxnorm))(EEG_input)  ##x = BatchNormalization(epsilon=eps, axis=-1)(x)x = Scale(axis=-1)(x)x = Activation('relu')(x)  #  x = res_first(x, filters=[64, 64], kernel_size=kernel_size)x = res_subsam(x, filters=[64, 64], kernel_size=kernel_size, subsam=2)x = res_nosub(x, filters=[64, 64], kernel_size=kernel_size)x = res_subsam(x, filters=[64, 128], kernel_size=kernel_size, subsam=2)x = res_nosub(x, filters=[128, 128], kernel_size=kernel_size)x = res_subsam(x, filters=[128, 128], kernel_size=kernel_size, subsam=2)x = res_nosub(x, filters=[128, 128], kernel_size=kernel_size)x = res_subsam(x, filters=[128, 192], kernel_size=kernel_size, subsam=2)x = res_nosub(x, filters=[192, 192], kernel_size=kernel_size)x = res_subsam(x, filters=[192, 192], kernel_size=kernel_size, subsam=2)x = res_nosub(x, filters=[192, 192], kernel_size=kernel_size)x = res_subsam(x, filters=[192, 256], kernel_size=kernel_size, subsam=2)x = res_nosub(x, filters=[256, 256], kernel_size=kernel_size)x = res_subsam(x, filters=[256, 256], kernel_size=kernel_size, subsam=2)x = res_nosub(x, filters=[256, 256], kernel_size=kernel_size)x = res_subsam(x, filters=[256, 512], kernel_size=kernel_size, subsam=2)x = BatchNormalization(epsilon=eps, axis=-1)(x)x = Scale(axis=-1)(x)x = Activation('relu')(x)x = Model(EEG_input,x)# tf.keras.backend.eval(x)return x

 

结果

所有被试数据按照7:3的比例划分为训练和测试集数据,在单个被试在5分类的任务上,准确率达到91.4%,在6分类任务上,准确率达到90.1%。

代码获取

私信后台 S2

参考文献

L. Cen, Z. L. Yu, Y. Tang, W. Shi, T. Kluge, and W. Ser, “Deep learning method for sleep stage classification,” inInt. Conf. Neural Information Processing, 2017, pp. 796–802

M. Mourtazaev, B. Kemp, A. Zwinderman, and H. Kamphuisen, “Age and gender affect different characteristics of slow waves in the sleep eeg,”Sleep, vol. 18, no. 7, pp. 557–564, 1995.

K. He, X. Zhang, S. Ren, and J. Sun, “Identity mappings in deep residual networks,” inProc. ECCV, 2016, pp. 630–645.

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/727969.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Python数据处理实战(4)-上万行log数据提取并作图进阶版

系列文章: 0、基本常用功能及其操作 1,20G文件,分类,放入不同文件,每个单独处理 2,数据的归类并处理 3,txt文件指定的数据处理并可视化作图 4,上万行log数据提取并作图进阶版&a…

一款非常适合老中医用的《书剑中医电子处方软件简明版》

上了年纪的老中医,虽然经验丰富,但是电脑的基础都比较差,而开处方的软件通常又设计的太复杂,想用电脑开处方就非常困难,所以只好坚持手写开处方。最近,小编找到了一款非常简单的《书剑中医电子处方软件简明…

【设计数据密集型应用】复制

👏作者简介:大家好,我是爱敲代码的小黄,阿里淘天Java开发工程师,CSDN博客专家📕系列专栏:Spring源码、Netty源码、Kafka源码、JUC源码、dubbo源码系列🔥如果感觉博主的文章还不错的话…

Liinux——(网络)socket编程

预备知识 源IP地址和目的IP地址 在IP数据包头部中, 有两个IP地址, 分别叫做源IP地址, 和目的IP地址 认识端口号 端口号(port)是传输层协议的内容. 端口号是一个2字节16位的整数;端口号用来标识一个进程, 告诉操作系统, 当前的这个数据要交给哪个进程来处理;IP地址 端口号能…

tomcat搭建个人博客 实现动静分离

jar包相关 .war:WebApp打包,类zip格式文件,通常包括一个应用的所有资源,比如jsp,html,配置文件等 .jar:EJB类文件的打包压缩类zip格式文件,,包括很多的class文件, 网景公司发明 .rar:资源适配器类打包文件,目前已不常…

[数据结构]OJ用队列实现栈

225. 用队列实现栈 - 力扣(LeetCode) 官方题解:https://leetcode.cn/problems/implement-stack-using-queues/solutions/432204/yong-dui-lie-shi-xian-zhan-by-leetcode-solution/ 首先我们要知道 栈是一种后进先出的数据结构&#xff0c…

艺术与科技的结合,AI绘画图生图怎么样?

AI绘画图生图是指通过人工智能技术生成的具有艺术价值的图像。它可以根据用户提供的参考图像或描述,自动生成具有艺术风格的新图像。这些图像可以是风景、人物、抽象画等各种形式。那么ai绘画图生图到底怎么样? AI绘画图生图的优点在于它可以快速、高效地…

基于springboot+vue的高校教师电子名片系统

博主主页:猫头鹰源码 博主简介:Java领域优质创作者、CSDN博客专家、阿里云专家博主、公司架构师、全网粉丝5万、专注Java技术领域和毕业设计项目实战,欢迎高校老师\讲师\同行交流合作 ​主要内容:毕业设计(Javaweb项目|小程序|Pyt…

ANTLR4规则解析生成器(三):遍历语法分析树

文章目录 1 词法分析2 语法分析3 遍历语法分析树3.1 Listener3.2 Visitor 4 总结 1 词法分析 词法分析就是对给定的字符串进行分割,提取出其中的单词。 在antlr4中,词法规则的名称的首字母需要大写,右侧必须是终结符,通常将词法…

力扣经典题目解析--反转链表

原题地址: . - 力扣(LeetCode) 给你单链表的头节点 head ,请你反转链表,并返回反转后的链表。 示例 1: 输入:head [1,2,3,4,5] 输出:[5,4,3,2,1] 题目解析 链表(Linked List&…

仓储管理系统(WMS) 的研发历程-PRD撰写

题外话:PRD的展现形式有多种,有的人喜欢在axure上直接做产品描述,觉得word较为过时,有的人认为axure不专业,任何展现形式都无可厚非,重要的达到PRD的目的,PRD的目标是让团队知道需求实现细节&am…

启动Docker镜像时候,ENTRYPOINT 和CMD这两者指令的写法有什么不同和区别?

ENTRYPOINT和CMD在Dockerfile中都用于指定容器启动时执行的命令,但它们之间存在一些关键的区别和不同的用途: 1. 基本用途和行为差异 ENTRYPOINT 定义了容器启动时执行的基础命令,使得容器像一个可执行程序。ENTRYPOINT让你能够指定容器启动…

经验分享:水牛社怎么做?

本人也就是通过他慢慢学习成长起来的。还是一个网友推荐的,现在他对我来说算是大佬了,已经单飞了,好久都没有联系了,呵呵,真是人往高处走,水往低处流啊。 做网赚会经常和一些网络小白聊天,聊着…

回调函数、回调地狱、解放方法Promise的用法

回调函数 回调函数的定义非常简单:一个函数被当做一个实参传入到另一个函数(外部函数),并且这个函数在外部函数内被调用,用来完成某些任务的函数。就称为回调函数回调函数的两种写法(实现效果相同): const text () > {docum…

个人项目介绍4:三维园区篇

个人项目介绍: 地图铁路线路篇 地球卫星篇 火车站篇 三维园区篇 项目需求: 1.按比例全景显示三维园区 2.精确显示园区内设备设施 3.实时显示设备报警信息 4.显示园区内摄像监控设备,并可点击显示监控视频流 5.显示园区内的重大危险源和风险分布 …

PCL 路面点云标线提取(C++详细过程版)

目录 一、算法原理二、代码实现三、结果展示本文由CSDN点云侠原创,原文链接。如果你不是在点云侠的博客中看到该文章,那么此处便是不要脸的爬虫与GPT。 一、算法原理 算法来自本人自创。实现效果如下图所示,具体实现原理看代码即可。 二、代码实现 #include

bean的管理方式

默认情况下,spring项目启动时,会把bean对象全部创建好放到ioc容器 主动获取bean对象:getBean里面传入bean的名称或bean的类型 注意如果没有主动设置bean的名称,则默认名称是对应类名的首字母小写 在ioc容器中,bean对…

今天分享一个好看的输入法皮肤相信每个人心里住着一个少女心我们美化一下她吧

标题: 白日梦皮肤上线,百度输入法助你开启梦幻之旅! 正文: 大家好呀!今天我来给大家安利一款超级梦幻的百度输入法皮肤——“白日梦”系列! 这款皮肤的设计灵感来源于我们内心深处的白日梦,充…

14. C++继承与虚函数

【继承基础概念】 继承可以让本类使用另一个类的非私有成员,提供共用成员的类称为父类或基类,使用共用成员的类称为子类或派生类,子类创建对象时会包含继承自父类的成员。 继承的优势是减少重复定义数据,当本类需要在另一个类的…

L1-009 N个数求和

MD...提交过了好几次才通过。 第三个测试点: 需要使用long long,要求长整型。干脆就把int全部替换成long long。 第五个测试点: 随便试出来的,我输入了2 1/2 -1/2,发现啥都没打印出来。原来是忽略了结果是0的情况,如果整数部分和分子部分都…