AI摘要:本文介绍了如何将ECG的mat文件转换为TFrecords格式,并用于CNN训练。数据集包含1000例心电图,分为训练集和测试集,采样率为500 Hz。文章详细说明了数据集的结构、所需库文件、文件读取过程以及如何创建和读取TFRecord文件。最后,展示了如何生成训练数据集和标签,并提供了完整的源码链接。

Powered by AISummary.

自制TFrecords数据集训练

本文是将ECG的mat文件转换为TFrecords,并进行CNN训练1

数据集

TEST和TRAIN为格式为".mat"的心电数据,数据集来自中国心电智能大赛,共1000例常规心电图,训练集600例,测试集400例。该数据是从多个公开数据集中获取。有正常/异常两类标签的训练集数据,需要在没有标签的测试集上做出预测。

其中采样率为500 Hz,格式为MAT格式。该文件中存储了12个导联的电压信号。训练数据对应的标签存储在txt文件中,其中0代表正常,1代表异常。

文件数如下图所示。

image-20230719220301069

读取数据可知采样时间是10s,则每个mat文件的数据维度为(5000,12),即有12导,各5000个点。

TRAIN数据有600,TEST数据有400,则可建立的TRAIN_DATA维度为(600,5000,12),TEST_DATA维度为(400,5000,12)。

Label数据可用OneHot表示(1,2)。

这里建立2个TFrecord文件,一个TRAIN_DATA,一个TEST_DATA。

库文件

导入所需库文件,读取mat、csv文件,使用pandas处理数据。

文件读取

读取mat文件

创建TRAIN的TFRecord 文件

  1. 创建writer
  2. 创建存储类型tf_feature
  3. 转换并序列化

这里,将mat数据data转换为numpy array再转换为bytes存储为string格式,name存储mat文件路径,label存储标签的OneHot,shape存储后续读取data格式时的维度信息。

读取TFRecord文件

  1. 导入TFRecord
  2. 解析feature信息
  3. 数据增强

这里,解析的feature信息的数据格式需要与之前的对应。tensorflow的dataset提供了Dataset.map(func),将dataset中的所有条目按照feature_description进行映射。

然后进行重复、打乱、生成小样本。

获取TFrecord的数据内容进行确认。

最后生成训练数据集和标签。

TEST数据集生成TFrecord格式文件方式一样,这里不再赘诉。

整个文件的生成和训练源码见ecgcnndataset-one


  1. [Tensorflow 2.0 TFrecord的输出与读入]()https://blog.csdn.net/qq_42686721/article/details/98205816
Last modification:July 19, 2023
文章免费,无需打赏