代码生成深度学习仿真软件模型对ECG信号进行分类金宝app
这个例子演示了如何使用强大的信号处理技术和卷积神经网络对ECG信号进行分类。我们还将展示如何CUDA®代码可以从模型生成®模型。金宝app下面的例子使用了pretrained CNN网络的时间序列分类使用小波分析和深度学习小波工具箱™对ECG信号进行分类的例子基于图像变换的时间序列数据。有关培训的信息,明白了时间序列分类使用小波分析和深度学习(小波工具箱)。
的视频演示如何执行software-in-the-loop(银),processor-in-the-loop(公益诉讼)模拟,和部署这个例子来英伟达杰森®,明白了//www.tatmou.com/videos/deep -学习-在-模型- - 金宝appnvidia gpu - - ecg信号的分类- - 1621401016961. - html。
这个例子说明了以下概念:
模型仿真软件中的分类应用程序。金宝app使用
MATLAB函数
块进行预处理和小波变换的心电数据。使用图像分类器
块加载pretrained深度学习工具箱™的网络和执行ECG数据的分类。为代码生成配置模型。
生成一个CUDA仿真软件的可执行模型。金宝app
第三方的先决条件
CUDA NVIDIA GPU启用。
NVIDIA CUDA工具包和司机。
英伟达cuDNN图书馆。
环境变量的编译器和库。有关更多信息,请参见第三方硬件和设置必备产品下载188bet金宝搏。
验证GPU环境
验证所需的编译器和库运行这个示例设置正确,使用coder.checkGpuInstall
函数。
envCfg = coder.gpuEnvConfig (“主机”);envCfg。DeepLibTarget =“cudnn”;envCfg。DeepCodegen = 1;envCfg。安静= 1;coder.checkGpuInstall (envCfg);
心电图数据描述
这个示例使用心电图数据生理网数据库。它包含数据从三个群体:
人与心律失常(ARR)
人与充血性心力衰竭(CHF)
人与正常窦性节律(NSR)
它包括96录音与加勒比人,与瑞士法郎30录音人,36个录音与NSR的人。的ecg_signals
MAT-file包含测试心电图数据时间序列格式。图像分类器在这个例子中区分ARR,瑞士法郎,NSR。
算法流程
算法的框图模型的工作流模型。金宝app
心电图深度学习仿真软件模型金宝app
分类EC金宝appG信号的仿真软件模型。模型运行时,视频查看器
块显示心电信号分类。
open_system (“ecg_dl_cwt”);
心电图预处理子系统
的心电图预处理
子系统包含一个MATLAB函数
获得量图块执行连续小波变换的心电信号,然后处理量图来获取一个图像和一个图像分类器
阻止加载pretrained网络trainedNet.mat
并执行对图像分类的预测基于SqueezeNet深度学习CNN。
open_system (“ecg_dl_cwt /心电图预处理”);
的ScalogramFromECG
功能块定义了一个函数调用ecg_to_scalogram
:
利用65536年的双精度心电图数据样本作为输入。
创建时间频率表示的心电图数据通过应用小波变换。
小波系数的获得量图。
量图转换为图像的大小(227 x227x3)。
的函数签名ecg_to_scalogram
显示。
类型ecg_to_scalogram
函数ecg_image = ecg_to_scalogram (ecg_signal) %版权2020年MathWorks公司持久jetdata;如果(isempty (jetdata)) jetdata = ecgColorMap(128年,“单”);结束%获取ECG信号的小波系数cfs = cwt_ecg (ecg_signal);%获得量图的图像小波系数= ind2rgb (im2uint8(重新调节(cfs)), jetdata);ecg_image = im2uint8 (imresize(形象,[227227]));结束
心电图后处理
的心电图后处理
MATLAB功能块定义了label_prob_image
函数,发现量图的标签图像基于成绩的得分最高输出的图像分类器。它输出的量图图像标签印刷和信心。
类型label_prob_image
函数final_image = label_prob_image (ecg_image、分数、标签)% 2020 - 2021版权MathWorks, inc .)分数=双(分数);%获得最大信心(概率、索引)= max(分数);信心=概率* 100;%获得标签对应于最大信心标签=擦掉(char(标签(索引)),“_label”);文本=细胞(2,1);文本{1}=(“分类:”标签);{2}=[文本的信心:“sprintf (% 0.2 f,信心)' % ');位置= [135 20 0 0;130年40 0 0]; final_image = insertObjectAnnotation(ecg_image,'rectangle',position,... text,'TextBoxOpacity',0.9,'FontSize',9); end
运行仿真
配置参数对话框打开。
在模拟目标窗格中,选择GPU加速。在深度学习组,选择目标库cuDNN。
验证算法和显示测试的标签和信心得分ECG信号加载在工作区中,仿真运行。
set_param (“ecg_dl_cwt”,“SimulationMode”,“正常”);sim卡(“ecg_dl_cwt”);
生成和构建仿真软件模型金宝app
在代码生成窗格中,选择语言作为c++并使生成GPU的代码。
开放代码生成> GPU的代码窗格。在子类别库,使cuBLAS,cuSOLVER和cuFFT。
生成和构建在主机GPU通过使用仿真软件模型金宝appslbuild
命令。代码生成器的文件在一个地方建立文件夹,一个子文件夹命名ecg_dl_cwt_ert_rtw
在你当前的工作目录。
状态= evalc (“slbuild (ecg_dl_cwt)”);
生成的CUDA®代码
子文件夹命名ecg_dl_cwt_ert_rtw
包含生成c++代码对应不同的块仿真软件模型和所执行的特定操作的块。金宝app例如,该文件trainedNet0_ecg_dl_cwt0.h
包含c++类包含特定的属性,如numLayers
和成员等功能getBatchSize ()
,预测()
。这个类代表了pretrainedSqueezeNet
已加载仿真软件模型。金宝app
清理
关闭仿真软件模型。金宝app
close_system (“ecg_dl_cwt /心电图预处理”);close_system (“ecg_dl_cwt”);
另请参阅
功能
open_system
(金宝app模型)|load_system
(金宝app模型)|save_system
(金宝app模型)|close_system
(金宝app模型)|bdclose
(金宝app模型)|get_param
(金宝app模型)|set_param
(金宝app模型)|sim卡
(金宝app模型)|slbuild
(金宝app模型)