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代表异常。
文件数如下图所示。
读取数据可知采样时间是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 文件
- 创建writer
- 创建存储类型tf_feature
- 转换并序列化
这里,将mat数据data转换为numpy array再转换为bytes存储为string格式,name存储mat文件路径,label存储标签的OneHot,shape存储后续读取data格式时的维度信息。
读取TFRecord文件
- 导入TFRecord
- 解析feature信息
- 数据增强
这里,解析的feature信息的数据格式需要与之前的对应。tensorflow的dataset提供了Dataset.map(func)
,将dataset中的所有条目按照feature_description
进行映射。
然后进行重复、打乱、生成小样本。
获取TFrecord的数据内容进行确认。
最后生成训练数据集和标签。
TEST数据集生成TFrecord格式文件方式一样,这里不再赘诉。
整个文件的生成和训练源码见ecgcnndataset-one
- [Tensorflow 2.0 TFrecord的输出与读入]()https://blog.csdn.net/qq_42686721/article/details/98205816 ↩
Comment here is closed