运动想象代码复现,数据集BCI IV-2a

目前在做运动想象分类,复现了一些代码,分享一下经验,并上传了这个资源

原论文:

EEG-TCNet: An Accurate Temporal Convolutional Network for Embedded Motor-Imagery Brain–Machine Interfaces

摘要:

近年来,深度学习(DL)为改善基于脑电图的运动-图像脑-机器接口(MI-BMI)做出了重大贡献。机器接口(MI-BMIs)做出了巨大贡献。在实现高分类精度的同时,DL模型的规模也在扩大,需要大量的内存和计算资源。这给嵌入式BMI解决方案带来了重大挑战,该方案要保证用户的隐私,减少延迟,并通过以下方式降低功耗 延迟,并通过本地处理数据实现低功耗。本地化。在本文中,我们提出了EEG-TCNET,一种新型的时间卷积网络(TCN),它可以实现出色的准确性。卷积网络(TCN),实现了出色的精度。同时需要很少的可训练数。它的低内存占用和推理的低计算复杂度使其适用于资源有限的设备上的嵌入式分类在边缘。在BCI竞赛IV-2a数据集上的实验结果显示,EEG-TCNET在4类MI中实现了77.35%的分类精度。通过找到每个主题的最佳网络超参数,我们将准确率进一步提高到 83.84%. 最后,我们展示了EEG-TCNET的多功能性。在所有BCI基准之母(MOABB)上的多功能性。测试基准包含12个不同的EEG数据集和MI 实验。结果表明,EEG-TCNET成功地超越了单一的数据集。在MOABB上的表现优于目前最先进的SoA。最先进的(SoA)在MOABB上的元效应为0.25

技术路线图

备注:

1.与代码中使用的环境不同,我使用了我在python3.6、tf1.13.1跑通,建议按照yml环境来。
2.源码无数据,而且放数据的方式有些麻烦,稍作修改,直接将数据放进data文件里,就可以读到数据。
3.修改了fit函数,可以输出训练过程。

复现:

备注:

相关源码已上传至我的资源,可自取。数据集过大无法上传到CSDN资源,链接如下

源码

### 下载并转换BCI Competition IV 2A数据集到NPY格式 为了获取BCI Competition IV 2A数据集的`.npy`格式文件,需经历下载原始`.mat`文件以及将其转换成NumPy数组两个主要阶段。 #### 获取MATLAB格式的数据集 访问[BNCI Horizon 2020](http://bnci-horizon-2020.eu/database/data-sets/)官方网站来定位至BCI Competition IV 2a部分。页面上提供了多个试验记录供选择,其中: - `A01T.mat`: 训练样本集合。 - `A01E.mat`: 测试样本集合[^1]。 这些文件是以MATLAB特有的二进制格式保存的,因此直接下载得到的是`.mat`扩展名的文件而非`.npy`。 #### 将MAT文件转存为NPY文件 由于目标是获得`.npy`格式的数据存储形式,可以利用Python中的SciPy库读取MATLAB文件,并借助numpy库将所需数据序列化为`.npy`文件。具体操作如下所示: ```python import scipy.io as sio import numpy as np def mat_to_npy(mat_file_path, npy_save_path): """ Convert .mat file to .npy file. Parameters: mat_file_path (str): Path of the input .mat file. npy_save_path (str): Destination path for saving converted .npy files. Returns: None """ # Load MATLAB file into Python dictionary structure mat_data = sio.loadmat(mat_file_path) # Extract relevant data from loaded content and save it using NumPy's format for key in mat_data.keys(): if not key.startswith('__'): array_data = mat_data[key] np.save(f"{npy_save_path}/{key}.npy", array_data) # Example usage mat_to_npy('path/to/A01T.mat', 'output/directory') ``` 上述代码片段展示了如何定义一个函数用于批量处理来自单个`.mat`文件内的所有矩阵变量,并分别以各自名称命名导出对应的`.npy`文件[^3]。
评论 20
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值