6 Aiwiscal

尚未进行身份认证

我要认证

打工 + 搬砖

等级
TA的排名 4w+

不同获取方式下TensorFlow(Keras)-CPU性能差异

前言作为算(diao)法(bao)工作者,最常用的工具之一就是深度学习框架,在众多框架之中,TensorFlow及其高层封装Keras是非常受欢迎,也是绝对用户数最多的。同时,在深度学习的研究中,GPU是必不可少的,因为它能够加速训练与推理,带来速度上质的飞越,显卡的档次从根本上决定了速度提升幅度。然而,很少有人关注其在CPU上的性能问题,尽管在CPU上只能跑一些小模型,才能把训练时间缩小到可接受范围内。然而,安装或获取TensorFlow的途径有很多种,是否会明显影响TensorFlow在CPU上的性能

2020-06-10 01:30:54

基于Spring Boot的ALBERT词向量服务(5)

当前总结到此已经完成了一个基于Spring Boot的ALBERT词向量服务的小项目,但其实还存在一些需要改进的点:目前仅支持单次单个词请求,不支持单次批量词向量生成。分词器尚未考虑英文分词情况,而在BERT系列中英文分词的机制其实比汉字更加复杂一点。目前仅进行了简单测试,未进行针对性的一致性测试和单元测试。目前可以想到的就这些点,有时间再补,如果有大佬很懂相关领域,望不吝赐教!P...

2020-03-28 18:56:54

基于Spring Boot的ALBERT词向量服务(4)

打包与应用示例打包与启动上述基于Spring Boot已经对词向量服务开发完毕,接下来要打成jar包,才算做真正完成一个流程,当然这里要借助maven,在IDEA的Terminal中输入:mvn clean packagemaven就会开始打包流程,如果没有问题,最终会提示BUILD SUCCESS。在生成的target目录下可以找到打好的包:取出来放到桌面上,使用java -jar...

2020-03-28 18:56:43

基于Spring Boot的ALBERT词向量服务(3)

Spring Boot工程开发前面我们已经做好了模型的准备,下面就可以进行Spring Boot工程的开发了。这里我使用的是IntelliJ IDEA,借助Spring initializer创建一个Spring Boot Maven工程,添加Spring Boot Web starter和Lombok,确保IDEA已经安装了Lombok插件,这个是使用IDEA创建Spring Boot工程的基...

2020-03-28 18:56:30

基于Spring Boot的ALBERT词向量服务(2)

ALBERT模型转换与准备模型载入与简单推理最基本的,我们需要有一个ALBERT的中文预训练模型。这里选择是Google推出的Tiny版本ALBERT,下载地址为:https://storage.googleapis.com/albert_zh/albert_tiny_zh_google.zip,下载完成后解压,会得到TensorFlow的checkpoint:众所周知,TensorFlo...

2020-03-28 18:55:44

基于Spring Boot的ALBERT词向量服务(1)

前言近期在学习Java EE后台开发,因为工作和流行度的双重原因,选择学习了Spring Boot框架。不同于算法工程师的本职工作,Spring Boot,甚至于是整个Java EE后台的学习曲线和各项技术的依赖项,对于我来说都是全新的领域。总结成博客也算是对初学一段时间的检验。当然,毕竟初学,接下来的东西可能略显粗糙和幼稚,如果有对Java EE很熟的朋友,希望不吝赐教!词向量生成服务在自...

2020-03-28 18:54:52

轻量级生理信号处理工具BioSPPy中的ECG(4)

轻量级生理信号处理工具BioSPPy中的ECG(4)后记到这里,关于在BioSPPy中的专门用于ECG处理的方法就已经讲解完毕了,总体来说使用起来很简单,没有需要特别注意的坑,对于小白来说非常友好。不过这里还是要说一下这个工具包的缺点,其中最关键的就是目前还很不完善,距离一个全面的,可以作为基础组件的工具包还有很大距离,甚至,原作者连教程文档都没有写全(https://biosppy.read...

2020-01-08 23:49:16

轻量级生理信号处理工具BioSPPy中的ECG(3)

1 简介前面介绍了使用BioSPPy中提供的R波检测算法以及基于此的心拍截取方法。除了这些,还有3个API需要细讲一下,见下表:API用途biosppy.signals.ecg.compare_segmentation对比算法检测的R峰位置与标准的R波位置,给出评估结果。biosppy.signals.ecg.correct_rpeaks在一定范围内校准算法检测的...

2020-01-08 23:48:18

轻量级生理信号处理工具BioSPPy中的ECG(2)

1 简介研究ECG算法,除了那些经典变换,最常见的应该就是R波的识别了(或者说QRS波识别,不同人叫法可能不太一样)。这个我在之前的博客中有讲解过,是一个我自己用matlab实现的R波识别算法(该节最后一部分给出了网址)。事实上,BiosPPy工具包中有关ECG的处理基本都是围绕R波检测展开的,它提供了5个不同的R波检测算法如下:算法文献来源biosppy.signals....

2020-01-08 23:47:39

轻量级生理信号处理工具BioSPPy中的ECG(1)

1 前言很久没有写博客了,之前也想过要放弃。不过想来当个业余爱好也好啊,也当是知识的巩固和积累。废话少说,下面介绍这次的主角——Biosppy工具包。2 简介接下来的这段主要是对官方英文文档的翻译和整理,关于官方英文文档具体可访问:https://biosppy.readthedocs.io/en/stable/index.html2.1 概况BioSPPy是基于Python的生理信号...

2020-01-08 23:46:55

U-Net新玩法——ECG精准语义分割(4)

大概的内容就是之前的3节所说的了。严格来说,这个小项目只是介绍了一种新的ECG分析思路,受限于数据,并没有进行细致的测试。如果真想把这个完成一个很好的工作,个人认为起码要达到以下几个标准:数据量要足够大,类别足够全面。这个需要耗费大量的人力物力才能办到,而且最好要有心血管疾病专家的辅助; 在考虑病人差异性,也就是inter-patient情况下,仍然可以取得比较好的性能。根据在分类上的经验,...

2019-04-22 23:57:40

U-Net新玩法——ECG精准语义分割(3)

上篇已经准备好了数据,这篇就是开始训练模型。目标很明确,我们要搭建一个1维形式的U-Net,使其能够处理1维ECG。代码实现参考了https://github.com/divamgupta/image-segmentation-keras 。输入是5s的ECG片段,在采样率为360Hz的情况下长度为1800,输入前先做z-score标准化;输出结果是关于3种区域(正常N,室性早搏PVC,背景Bac...

2019-04-22 23:57:31

U-Net新玩法——ECG精准语义分割(2)

接上篇,我们的思路已经很清楚了,就是将U-Net改为1维处理ECG信号。可问题来了,数据怎么来?要知道,既然想用模型完成更高级的功能,那给出更为详尽的人工标注几乎是必然的。在这个任务里面,我们要给出的监督信号要包括各个片段中的信号类型以及它们精确的分界点。常用的MIT-BIH数据库只是给出了心拍的类型标记,而QT数据库中的信号虽然给出了心拍的边界参考,但大部分也是用某个算法来做的,真...

2019-04-22 23:57:20

U-Net新玩法——ECG精准语义分割 (1)

熟悉ECG算法处理的同学都知道,在这个领域,做的最多的就是分类,可以基于心拍,也可以基于片段。两种方法各有优劣,这个我在之前的博客:Andrew Y. Ng式ResNet在MIT-BIH上的Inter-Patient分类实现(2)(https://blog.csdn.net/qq_15746879/article/details/88698720)中也做过一些分析。简单总结下来是这样的,基于心拍...

2019-04-22 23:57:09

Andrew Y. Ng式ResNet在MIT-BIH上的Inter-Patient分类实现(4)

结果分析 话不多说,直接上结果。由于网络本身具有随机性,因此每次的结果也会有些许差异。根据我的实验,一般测试准确率会维持在85%左右,好的时候可以到86%,87%以上。这里我选择了一个整体表现较好的模型(myNet.h5可直接载入),总体准确率为86.41%,混淆矩阵如下:除此之外,论文中也习惯用各类的敏感度(Se)和正预测率(P+)来衡量表现。汇总如下:N: Se ...

2019-03-20 20:44:41

Andrew Y. Ng式ResNet在MIT-BIH上的Inter-Patient分类实现(3)

网络搭建 正如我们前面所说的,原文中所使用的网络并没有什么特别新奇之处,与经典的ResNet-34架构很类似。不过这里的网络使用了更大的,长度为16的一维卷积核,而原ResNet用于二维图像分类,则倾向于使用尺寸为3×3的小卷积核。个人认为这种尺寸上的不同主要还是源于ECG信号和图像数据的本质不同。一般直接输入网络的图像分辨率较低,哪怕在感受野最小时,3×3的区域也很有可能包含了具...

2019-03-20 20:44:16

Andrew Y. Ng式ResNet在MIT-BIH上的Inter-Patient分类实现(2)

数据处理 目前大部分的文章均是基于心拍的分类。这样做在理论上本身没什么问题,因为数据库中的标签就是针对每个心拍给出的。但是在具体操作中,心拍的定位要么直接使用了数据库中的人工位置标记,这样在实际应用中等同于加入人工干预,自动化程度不够;要么使用一些经典的QRS波检测算法,如Pan-Tompkins算法,而这样的定位方式依赖于QRS检测算法的准确度。鉴于目前QRS波检测算法动辄99%...

2019-03-20 20:43:56

Andrew Y. Ng式ResNet在MIT-BIH上的Inter-Patient分类实现(1)

相信不少人已经早就看过了吴恩达(Andrew Y. Ng)大佬发表在Nature Medicine上的ECG诊断算法方案。深度学习网络一举打败了经验丰富的心血管疾病专家,在常见的12种ECG正常或异常判定中的F1达到了0.837,而参与实验的6位医生的平均F1却仅有0.780。对这样的结果,当然可以有所质疑,毕竟这几位医生可能并不能代表人类的诊断水平,不过这确实再一次反映了深度学习的...

2019-03-20 20:43:28

一个不成熟的开源小方案:关于2018中国生理信号挑战赛(CPSC-2018)(4)

效果评估与改进方向分析 这里我们给出在最终测试集上的混淆矩阵和F1统计:  Actual/Predict N AF AVB LBBB RBBB PAC PVC STD STE ...

2019-01-01 00:00:06

一个不成熟的开源小方案:关于2018中国生理信号挑战赛(CPSC-2018)(3)

深度学习网络深度学习是啥,以及各种网络原理什么的,以及它们有什么样的特点,这里都不去系统阐述了。不懂的自行出门右转补基础。这里我所采用的是CNN和RNN(双向LSTM)的混合网络,对每一个导联都搭建一个对应的模型训练,最终再进行综合。这是总体的大框架。 不过在讲具体地网络结构之前,我们这里先来看一个问题。 记录与片段的标签“冲突”现在有很多论文都在使用CNN进行ECG的分类判别,他...

2018-12-31 23:59:58

查看更多

勋章 我的勋章
  • 签到新秀
    签到新秀
    累计签到获取,不积跬步,无以至千里,继续坚持!
  • 阅读者勋章Lv1
    阅读者勋章Lv1
    授予在CSDN APP累计阅读博文达到3天的你,是你的坚持与努力,使你超越了昨天的自己。
  • 持之以恒
    持之以恒
    授予每个自然月内发布4篇或4篇以上原创或翻译IT博文的用户。不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!
  • 勤写标兵Lv2
    勤写标兵Lv2
    授予每个自然周发布4篇到6篇原创IT博文的用户。本勋章将于次周周三上午根据用户上周的博文发布情况由系统自动颁发。
  • 学习力
    学习力
    《原力计划【第二季】》第一期主题勋章 ,第一期活动已经结束啦,小伙伴们可以去参加第二期打卡挑战活动获取更多勋章哦。