资讯动态

DEAP数据集 2026最新Transformer算法 DEAP 数据集 下载

发布时间:2026/10/13 10:50:20 来源:尧图企业网站定制
DEAP数据集下载https://gitee.com/CodeStoreHub/deap-fatTransformer算法下载https://gitee.com/CodeStoreHub/deap-fat本算法将傅里叶启发的周期性表示与可学习的通道邻接关系结合在 Transformer 中同时建模样本相关性与共享结构并通过 DEAP 的效价、唤醒度分类实验检验模型的识别与泛化能力。01 / OVERVIEW研究目标与方法定位脑电情绪识别需要在噪声、非平稳性和个体差异的共同影响下从多通道信号中提取有效信息。单纯依赖固定脑区连边可能无法适应样本变化而完全由输入决定的注意力又缺少稳定的通道结构约束。我们提出傅里叶邻接 TransformerFourier Adjacency TransformerFAT将两类信息整合到同一注意力计算中。周期性表示我们使用傅里叶解析线性层FAL生成余弦、正弦与线性分支使周期成分和非周期成分在特征维度上显式分离再分别进入注意力头。结构先验我们学习周期和非周期两组邻接矩阵通过输入相关的门控控制其贡献将跨样本共享的通道关系与当前样本的 Q–K 相关性相加。本报告重点回答三个问题该结构如何工作DEAP 数据如何变成模型输入在明确划分和统计口径后完整实验与原论文基线有何差异。02 / METHODFAT从差分熵到情绪预测图 1FAT 与 FAA 的模型框架。原论文 Figure 2采用官方仓库model.jpg同版图未重绘或更改结构。上半部分为完整网络下半部分展开周期与非周期注意力分支。2.1 输入表示与特征嵌入我们不直接将 128 Hz 的原始波形输入 Transformer而是对每个 EEG 窗口构建通道 × 频带的差分熵Differential EntropyDE特征。在 DEAP 中单个窗口为32 × 5训练张量为B × 1 × 32 × 5其中 B 为 batch size。序列 token 对应 EEG 通道而非连续时间点。嵌入模块先加入可学习的位置参数再以两个 1×1 卷积实现逐通道的 5→20→40 维映射各层配合 BatchNorm 与 ReLU。这样每个通道被映射为一个 40 维 token。随后拼接可学习的 CLS token并加入正弦位置编码得到B × 33 × 40的序列。X ∈ ℝB×C×F → ReLU(BN(f₂(ReLU(BN(f₁(X)))))) ∈ ℝB×C×EDEAPC 32F 5E 40实现接口额外包含一个长度为 1 的维度。2.2 FAL显式分离周期与非周期成分我们用 FAL 替代普通线性 Q/K/V 投影。与 FAN 在非周期分支使用非线性激活不同FAL 将该分支的激活设置为恒等映射保留线性变换周期分支通过可学习投影后的正弦和余弦构造特征。Φ(x) [cos(Wpx) ‖ sin(Wpx) ‖ (Wax ba)]‖ 表示拼接p 表示周期分支a 表示非周期分支。当输出维度 E40、代码中的p_ratio0.25时余弦和正弦分支各 10 维线性分支为 20 维。因此周期分支合计占输出的一半。8 个注意力头每头 5 维前 4 个头处理周期特征后 4 个头处理非周期特征。这里的“傅里叶”是对正弦/余弦基函数表示的借鉴不是对时间序列执行 FFT。模型学习的是 DE 特征空间中的周期性映射不能直接将每个注意力头解释为某个物理脑电振荡频率。2.3 FAA把邻接关系加入注意力我们分别通过 FAL 得到 Q、K、V并对周期与非周期分支独立计算注意力。QKᵀ 描述输入样本中各通道之间的相关性两组可学习邻接矩阵 Ap、Aa 表达训练中积累的共享关系。门控 gσ(f(Q)) 让模型根据当前输入决定邻接项的权重。Q ΦQ(X)K ΦK(X)V ΦV(X)Attentionr softmax(QrKrT / √dk σ(fr(Qr)) ⊙ Ar)r ∈ {p, a}O [AttentionpVp ‖ AttentionaVa]以上为论文的概念公式⊙ 表示带广播的逐元素门控加权。在公开实现中两组邻接矩阵为33 × 33包括 CLS token先经 ReLU再使用 D−1/2AD−1/2 归一化。邻接参数跨 6 层共享而每层有自己的门控线性层。每组门控由该通道的 20 维查询生成一个标量再广播到对应的 4 个头及各个 key 位置。共享结构不等于解剖连接。该实现没有输入电极的物理距离或预先定义的脑区连接。邻接矩阵由任务损失学习输入相关的变化主要来自 QKᵀ 与门控它不应被直接当作经过神经科学验证的功能连接图。2.4 Transformer 编码与分类头我们堆叠 6 个编码模块每个模块由预归一化注意力、残差连接及前馈网络组成。前馈网络将维度从 40 扩展到 160经过 GELU 和 Dropout 后映射回 40。编码结束后使用 CLS token 的表征经 LayerNorm 和 40→2 的线性层输出二分类 logits。Valence 和 Arousal 各训练一套独立模型不共享最终分类器。DE 特征32 × 5Stem32 × 40CLS 位置编码33 × 40FAA 编码器 × 633 × 40分类头2 logits模型项本次设置含义嵌入维度 / heads / depth40 / 8 / 6每个 head 为 5 维FAL 周期分支10 维 cos 10 维 sin余下 20 维为恒等激活的线性分支共享邻接矩阵2 × 33 × 33周期/非周期各一组含 CLS 节点可训练参数114,81232 通道、2 类的当前公开模型位置编码 Dropout / 编码器 Dropout0.1 / 0.2本次使用公开 FAT 类的默认配置2.5 训练目标与数据增强我们使用交叉熵和 Adam 优化器学习率 0.001、weight decay 0.0001、batch size 32固定训练 200 epochs不使用测试集决定提前停止。每个训练样本的各频带独立乘以 U(0.9,1.1) 系数Mixup 使用 α0.2 的 Beta 分布对同一 batch 中的样本进行线性混合。λ ∼ Beta(0.2, 0.2)x̃ λxi (1−λ)xjℒ λ CE(f(x̃), yi) (1−λ) CE(f(x̃), yj)我们保留频率 2、幅度 0.05 的正弦增强公式。但是在 5 个等间隔频带取样点上sin(2 × linspace(0, 2π, 5))几乎全为零实际扰动可以忽略。这不是本次额外修正后的增强。03 / DATASETDEAP 数据集与学习任务DEAP 是面向情感计算的多模态数据集由 Koelstra 等人构建。32 位参与者分别观看 40 段时长约一分钟的音乐视频同时采集 EEG 与外周生理信号并对情绪体验进行主观评分其中 22 位参与者还记录了正面面部视频。数据集的原始论文介绍了刺激材料筛选、实验流程与多模态情绪分析任务。本实验只使用 EEG不使用外周信号或面部视频。项目数据集 / 本次使用情况参与者与 trials32 人 × 每人 40 trials 1,280 trials输入文件官方预处理 MATLAB 格式 s01.mat–s32.mat只读使用标准文件忽略重复的 *_1.mat文件中 data 的形状40 × 40 × 8,064trial × 通道 × 采样点已逐文件校验文件中 labels 的形状40 × 4列顺序为 Valence、Arousal、Dominance、Liking通道选择40 个保留通道中使用前 32 个 EEG 通道其余 8 个通道不进入本模型采样率与长度原始采集 512 Hz所用预处理版本为 128 Hz。每 trial 63 秒 8,064 点包含 3 秒基线 60 秒刺激段原始 EEG 与预处理版本预处理版本已做降采样、眼电伪迹处理、4–45 Hz 滤波及参考处理本次从预处理版本继续提取 DE 特征本次有效 EEG 总时长1,280 × 60 秒 21 小时 20 分钟窗口重叠不会增加独立记录时长前 3 秒384 点 · 丢弃后 60 秒刺激 EEG7,680 点 · 提取 59 个窗口3.1 情感维度与二分类定义Valence效价描述情绪体验的愉悦程度从不愉悦到愉悦Arousal唤醒度描述激活强度从平静到兴奋。高唤醒不必然代表积极情绪低唤醒也不等同于消极情绪因此我们分别建立两个二分类任务。Dominance 表达主观控制感Liking 表达喜好程度二者保留在原始标签中但不用于此次训练。y 1若 rating 5否则 y 0低类rating ≤ 5高类rating 5。评分等于 5 的 trial 不丢弃。所用标签的四个情感维度采用 1–9 评分。评分阈值与边界归类在 FAT 原文中未给出完整 DEAP 细节因此这里是明确记录的实现假设。每个 trial 的标签复制到其 59 个窗口我们没有把窗口解释为具有独立瞬时情绪标注的样本。目标高类 trials低类 trials高类比例恰好等于 5Valence70857255.3125%16 trials归低类Arousal73754357.5781%17 trials归低类上述类别计数来自本地 32 份 MATLAB 文件的实际 labels而非引用其他实验的样本统计。不同被试类别比例不同评估中额外保存由训练集多数类确定的测试基线。04 / PROTOCOL特征提取与评估协议4.1 从波形到差分熵我们移除每个 trial 的前 384 个基线采样点仅保留前 32 个 EEG 通道。以 256 点2 秒窗口、128 点1 秒步长滑动从每个 60 秒 trial 提取 59 个重叠窗口。这里是直接丢弃基线段并未再做基线 DE 相减。Nwindow ⌊(7,680 − 256) / 128⌋ 1 59Ntotal 32 × 40 × 59 75,520每个窗口、每个通道分别用四阶 Butterworth 带通滤波器和双向filtfilt处理再以无偏样本方差估计高斯近似下的差分熵DE ½ ln(2πeσ²)σ² var(signal, ddof1)使用自然对数高斯假设是特征构造的近似不表示 EEG 必然服从高斯分布。代码频带名称频率范围实现说明theta4–7 Hz沿用公开 DEAP 预处理alpha8–10 Hz与下一频带存在重叠slow_alpha8–13 Hz名称来自代码未重新命名或替换beta14–29 Hz沿用公开 DEAP 预处理gamma30–45 Hz沿用公开 DEAP 预处理这不是常见的 δ、θ、α、β、γ 五个互异频带本次保留上游的两组 alpha 区间。随后对每个 trial 内每个通道/频带的 59 点 DE 序列做 LDS 平滑。随机游走模型取状态转移和观测系数为 1过程噪声协方差 0.01观测噪声协方差 1初始均值取首点、初始协方差为 1。向量化实现与官方逐通道滤波、方差计算及 pykalman 平滑的数值等价性已通过检查。每人保存40 × 59 × 32 × 5的特征训练前仅用当前训练折计算各通道/频带的均值和标准差再变换测试折。4.2 三种划分回答三类问题协议划分单位与训练方式每折训练 / 测试窗口解释范围window10每位被试内按标签随机分层 10 折汇总所有被试共同训练67,968 / 7,552已见被试、同一 trial 的窗口可以跨集合trial10每位被试内按 trial 分层 10 折一个 trial 的窗口整体分配67,968 / 7,552已见被试的独立 trial 识别LOSO31 位被试训练、1 位被试测试共 32 折73,160 / 2,360未见被试泛化窗口重叠与平滑的信息共享。相邻窗口共享 1 秒波形LDS 平滑还利用整个 trial 的时间序列。window10 虽然样本索引不重叠但原始信号来源和 trial 信息可以共享。trial10 将整个 trial 隔离LOSO 进一步隔离被试。三个协议应分别解读。论文只标记 DEAP 为 10-fold并未公开全部划分索引或说明是否逐被试独立训练。我们依据其“训练与测试均含所有被试”的文字采用汇总训练不将其视为作者未公开流水线的精确重放。少数被试某类 trial 少于 10 个时trial 分层无法保证每折该被试都有两类我们保留这些被试并记录 sklearn 提示。4.3 结果统计规则我们的主指标是固定第 200 epoch 的测试准确率。每折还记录 200 轮中的最高测试准确率命名为“测试最高轮”它只用于观察上游报告方式的乐观偏差不参与训练决策。均值与总体标准差采用ddof010 折按折统计LOSO 按 32 位被试统计。没有挑最好的一折也没有以最好一次运行代替全部结果。基础 seed 为 42实际模型 seed 加上折编号Arousal 再加 1000 偏移。本次只有一组基础 seed不代表多随机种子重复实验。完整训练量为2 × (10 10 32) 104个模型共 20,800 epochs。所有样本在每种协议/目标的折外预测OOF中恰好出现一次。05 / RESULTS完整实验结果与论文基线对比所有 104 次训练均完成 200 epochs启动器于 2026-10-10 17:29:16 正常退出。以下单位均为百分比格式为平均准确率 ± 标准差。原论文中的其他方法未在本次重新训练它们是引用对照不构成在完全相同预处理和数据划分下的受控排名。读表说明。灰白行原论文表 1 / 表 2 中的 DEAP 数值绿色行本次固定第 200 轮的主结果浅橙行本次每折测试最高轮的诊断值。“—”表示原论文未给出该方法在 DEAP 上的对应结果而不是零准确率。论文未充分交代标准差的汇总单位不能仅比较标准差大小就认定稳定性优劣。5.1 被试相关 10 折与论文表 1 对比方法Valence / %Arousal / %KNN67.40 ± 7.2867.80 ± 6.94SVM65.80 ± 4.6269.89 ± 5.60LSTM74.76 ± 3.4171.81 ± 3.99DGCNN84.69 ± 6.2083.02 ± 7.07BiHDM——RGNN——PGCN——Conformer80.71 ± 2.3079.42 ± 3.03我们的方法 · 固定 200 轮83.96 ± 1.1284.96 ± 2.14我们的方法 · 测试最高轮84.72 ± 0.7386.11 ± 1.34固定训练轮次下我们在 Valence、Arousal 上得到83.96 ± 1.12%与84.96 ± 2.14%分别比原论文 FAT 值低 6.14 和 4.22 个百分点。即使从测试曲线中挑最高轮均值仍为 84.72%、86.11%没有达到原论文的 90.10%、89.18%。数值上本次固定轮 Valence 略低于论文 DGCNN 的 84.69%Arousal 高于其 83.02%两项均高于论文 Conformer 的 80.71%、79.42%。由于并未重跑这些基线且 DEAP 划分细节缺失我们不将这些差异表述为经过同条件验证的性能优越性。5.2 跨被试 LOSO与论文表 2 对比方法Valence / %Arousal / %KNN55.35 ± 4.3052.86 ± 4.22SVM54.70 ± 0.3655.90 ± 0.76LSTM60.31 ± 0.2459.78 ± 0.27DGCNN59.72 ± 1.3857.26 ± 1.29BiHDM——RGNN——PGCN——Conformer62.40 ± 0.2059.90 ± 0.60我们的方法 · 固定 200 轮50.77 ± 8.1752.96 ± 14.14我们的方法 · 测试最高轮62.42 ± 6.8466.51 ± 8.66固定第 200 轮时Valence 为50.77 ± 8.17%Arousal 为52.96 ± 14.14%低于原论文 FAT 的 62.70%、60.00%。两项也低于本次按训练多数类得到的测试基线 55.31%、57.58%。这说明当前固定训练方案没有得到稳定有效的跨被试泛化。但是若每折选择测试最高轮结果变为62.42 ± 6.84%与66.51 ± 8.66%相较固定最后轮提高 11.65 和 13.55 个百分点。Valence 均值接近论文Arousal 均值超过论文此时标准差仍与论文报告不同。这种“接近或超过”依赖测试集选轮不能作为独立验证集选模后的泛化成绩。图 2FAT 的论文报告与本次实验对比。误差线表示各自统计口径下的标准差论文统计单位未完全明确。纵轴从 0 开始浅橙色为具有测试选择偏差的诊断值。图中仅展示 FAT 的不同来源/统计口径。5.3 trial 隔离对照与完整统计协议目标完成折数固定 200 轮 / %测试最高轮 / %训练多数类基线 / %window10valence10/1083.96 ± 1.1284.72 ± 0.7355.31 ± 0.09window10arousal10/1084.96 ± 2.1486.11 ± 1.3457.58 ± 0.05trial10valence10/1063.12 ± 2.8167.71 ± 2.7155.31 ± 5.30trial10arousal10/1062.97 ± 3.5867.78 ± 2.8957.58 ± 2.84losovalence32/3250.77 ± 8.1762.42 ± 6.8455.31 ± 9.14losoarousal32/3252.96 ± 14.1466.51 ± 8.6657.58 ± 15.69trial10 中 Valence 为63.12 ± 2.81%Arousal 为62.97 ± 3.58%。相对于 window10固定轮结果分别下降 20.84、21.99 个百分点。这表明“在同一 trial 的窗口之间插值”和“识别未参与训练的 trial”是难度不同的任务重叠窗口与整段平滑使前者具有较强的 trial 信息共享。本次对照没有进一步分离共享波形、平滑和其他分布差异各自的因果贡献。5.4 学习曲线为什么最高轮与最后轮差距很大图 3同一 epoch 上对所有折的测试准确率求均值。曲线仅用于事后诊断没有参与本次训练控制。特别注意“逐折最高值的平均”不等于“平均曲线的最高值”不能用这幅图替代逐折最佳轮的统计。跨 trial 和跨被试任务中训练后期的测试表现未必继续改善。合理的模型选择应在训练数据内部建立独立验证集trial 泛化任务按 trial 划分验证集跨被试任务可留出训练被试作验证。然后只在最终测试集上评价选定模型。本次未运行这种嵌套验证也未将其可能带来的改善计入结果。展开 104 次训练的逐折结果每行对应一个独立训练任务均完成 200 epochs。完整 CSV 保存在工程的 results/deap_seed42/final_results.csv 中。协议目标折固定 200 轮 / %测试最高 / %最高分轮次losoarousal140.4759.4916losoarousal264.7065.34105losoarousal322.5449.1931losoarousal445.3856.36113losoarousal544.0756.23180losoarousal644.2464.19172losoarousal762.9767.1670losoarousal854.6265.216losoarousal959.5366.99146losoarousal1056.0662.757losoarousal1137.5061.191losoarousal1275.5582.501losoarousal1385.0086.0225losoarousal1467.5069.1165losoarousal1562.3771.1416losoarousal1654.9664.159losoarousal1754.7066.1968losoarousal1861.6165.3854losoarousal1933.8168.863losoarousal2041.0675.3850losoarousal2159.5880.0077losoarousal2240.5143.52155losoarousal2358.5673.9452losoarousal2417.5073.2267losoarousal2565.8972.6320losoarousal2648.9460.0898losoarousal2756.5367.71146losoarousal2843.6463.015losoarousal2968.9073.64181losoarousal3049.1558.7354losoarousal3153.6068.9459losoarousal3263.2670.00179losovalence147.5451.44135losovalence242.8055.552losovalence347.0358.0136losovalence442.9759.19138losovalence552.4259.66169losovalence664.3275.47142losovalence746.5772.3717losovalence849.9268.1828losovalence947.1665.0816losovalence1043.3153.52154losovalence1148.3163.011losovalence1243.1853.1485losovalence1341.9550.0435losovalence1441.6550.13111losovalence1541.5362.123losovalence1654.4165.3812losovalence1746.5759.7552losovalence1855.0867.12171losovalence1943.6467.923losovalence2065.9773.60181losovalence2155.4263.2673losovalence2264.6666.74133losovalence2361.2767.63159losovalence2445.9756.9111losovalence2546.9555.0452losovalence2638.7763.814losovalence2767.2571.91176losovalence2848.2262.501losovalence2960.8570.3487losovalence3063.9866.8625losovalence3153.8662.979losovalence3251.1958.9030trial10arousal166.5071.3516trial10arousal270.1772.723trial10arousal365.6170.41126trial10arousal463.6767.77190trial10arousal557.0267.7712trial10arousal661.1264.08160trial10arousal760.0566.7015trial10arousal860.9062.9926trial10arousal963.8067.57153trial10arousal1060.8866.4958trial10valence158.3265.573trial10valence264.3570.419trial10valence363.4469.7076trial10valence464.2770.2343trial10valence567.6570.42138trial10valence664.3466.2638trial10valence758.0062.67116trial10valence862.0564.50106trial10valence964.6870.13155trial10valence1064.0967.2157window10arousal187.3987.61191window10arousal282.3284.97137window10arousal380.9983.20184window10arousal486.4586.45200window10arousal585.1885.50198window10arousal686.2087.04172window10arousal784.9886.73141window10arousal884.8985.92199window10arousal988.1088.10200window10arousal1083.0985.61190window10valence183.4783.50189window10valence283.8684.26196window10valence384.4184.48171window10valence484.9785.55197window10valence584.1184.83174window10valence686.1886.30194window10valence783.4184.12185window10valence881.6384.68160window10valence984.1684.77184window10valence1083.4384.7316906 / ENVIRONMENT运行环境与安装方法6.1 本次已验证环境组件实际版本 / 设置操作系统Ubuntu 22.04.5 LTSLinux x86_64GPU / NVIDIA 驱动RTX 3090 24 GB仅 GPU0驱动 570.195.03Python3.10.20PyTorch / CUDA runtime2.2.2cu121 / CUDA 12.1核心依赖NumPy 1.23.5、SciPy 1.14.1、einops 0.8.0、scikit-learn 1.6.0、pykalman 0.10.2数值与执行设置FP32TF32 关闭PyTorch/cuDNN 确定性算法CUDA Graph 训练步加速上游代码提交3f70685bf5917325a659fad93038c82b21e917026.2 准备代码与 Python 环境以下命令假设已取得本工作区完整工程其中包含新增的experiments/目录。仅克隆原始 GitHub 仓库不能获得本次补充的 DEAP 入口。先进入工程根目录如换机器将第一行改为自己的工程路径。机器需已安装 Python 3.10含 venv以及可用的 NVIDIA 驱动。cd /home/ubuntu/lishuo/code/FAT # 新机器首次安装使用当前工作区已有可用 .venv无需重建 python3.10 -m venv .venv .venv/bin/python -m pip install --upgrade pip # 精确锁定本次训练依赖优先使用 .venv/bin/python -m pip install -r experiments/requirements.lock.txt如果只需安装 DEAP 入口所用的核心依赖可改用experiments/requirements.txt。完整锁文件进一步固定了 CUDA runtime 相关依赖和间接依赖。不要在本项目的 Python 3.10 环境中将 NumPy 随意升级到 2.x本次 PyTorch 2.2.2 组合已固定为 NumPy 1.23.5。# 核心依赖安装方案二选一 .venv/bin/python -m pip install -r experiments/requirements.txt # 已安装 uv 的机器也可使用 uv venv --python python3.10 .venv uv pip install --python .venv/bin/python -r experiments/requirements.lock.txtPyTorch 的这一安装组合包含运行所需的 CUDA 用户态库训练本代码通常无需另行编译或安装整套 CUDA Toolkit系统 NVIDIA 驱动仍必须可用。原仓库根目录的requirements.txt包含更多模型/绘图相关依赖本次 DEAP 入口使用experiments/下的清单额外补上了原清单缺失的 pykalman。6.3 验证 GPU0 与依赖export CUDA_DEVICE_ORDERPCI_BUS_ID export CUDA_VISIBLE_DEVICES0 export OMP_NUM_THREADS1 export MKL_NUM_THREADS1 export OPENBLAS_NUM_THREADS1 nvidia-smi .venv/bin/python - PY import torch, numpy, scipy, sklearn, einops print(PyTorch:, torch.__version__, CUDA runtime:, torch.version.cuda) print(NumPy:, numpy.__version__, SciPy:, scipy.__version__) print(scikit-learn:, sklearn.__version__, einops:, einops.__version__) assert torch.cuda.is_available() assert torch.cuda.device_count() 1 print(Visible GPU:, torch.cuda.get_device_name(0)) PY训练入口内部也设置了 GPU0 可见性。可通过nvidia-smi --query-compute-appsgpu_uuid,pid,process_name --formatcsv将训练 PID 与物理卡对应。仅看到显存空闲较多并不意味着计算没有充分执行当前模型参数量较小主要开销来自大量小 batch 的重复计算与调度。展开完整依赖锁文件07 / REPRODUCIBILITY从数据到完整实验的运行步骤7.1 目录与数据准备FAT/ ├── FAT_model.py / FANLayer.py / utils.py ├── 0161_paper.pdf / model.jpg ├── experiments/ │ ├── prepare_deap.py # 预处理、标签和数据摘要 │ ├── run_deap.py # 三种协议、两类目标、结果汇总 │ ├── cuda_step.py # CUDA Graph 训练步 │ ├── check_deap.py # 特征等价性与分折检查 │ ├── check_cuda_step.py # 图捕获与 eager 数值检查 │ ├── check_resume.py # 连续训练与续训检查 │ ├── launch_deap.sh # 检查 数据准备 完整训练 │ └── requirements.lock.txt ├── data/deap_raw/s01.mat ... s32.mat ├── data/deap_features/ # 预处理后自动生成 ├── results/deap_seed42/ # 本次已完成实验保留不覆盖 └── report/ # 本 HTML 与文档生成源文件把标准s01.mat至s32.mat放到data/deap_raw/。这些文件应来自data_preprocessed_matlab不是原始 BDF也不是已经提取好的 DE 特征。每个文件需包含data与labels。.venv/bin/python experiments/check_deap.py .venv/bin/python experiments/check_cuda_step.py .venv/bin/python experiments/check_resume.py .venv/bin/python experiments/prepare_deap.py预处理输出包含每人特征、四维评分与原始文件 SHA-256manifest.json保存数据列表与预处理参数。输出存在时会验证原始数据摘要。新一轮训练前若变更预处理算法应使用新的特征输出目录避免旧缓存混入新实验。7.2 先做短程检查# 完整数据、第 1 折、2 epochs仅检查流程不用于论文结论 .venv/bin/python experiments/run_deap.py \ --protocols window10 --targets valence --folds 1 \ --epochs 2 --checkpoint-every 1 --out results/smoke_new7.3 正式训练以下使用新输出目录保护现有最终结果。第一个命令运行 104 次完整队列第二个命令仅运行两项 window10各自 10 折。运行时选择所需的一种不要同时在 GPU0 启动两个队列。# 完整队列window10 LOSO trial10两个目标各 200 epochs bash experiments/launch_deap.sh results/deap_seed42_replay # 或仅复现被试相关 window1020 个模型 .venv/bin/python experiments/run_deap.py \ --protocols window10 --targets valence arousal \ --epochs 200 --out results/window10_seed42_new完整队列按折交错运行协议与目标。已完成的实验原样保存配置、源码摘要与输出目录不匹配时拒绝继续。不要在完整训练中途把 200 改成 50 后仍将结果标为同一实验。7.4 后台执行、监控与续跑mkdir -p results/deap_seed42_replay nohup bash experiments/launch_deap.sh results/deap_seed42_replay \ results/deap_seed42_replay/launcher.log 21 echo $! results/deap_seed42_replay/launcher.pid tail -f results/deap_seed42_replay/launcher.log cat results/deap_seed42_replay/status.json cat results/deap_seed42_replay/summary.json # 中断后用原命令及原输出目录继续 bash experiments/launch_deap.sh results/deap_seed42_replay每 5 epochs 原子保存一次检查点包括模型、Adam 状态及 Python / NumPy / PyTorch / CUDA 随机状态。恢复时会重算未保存的尾部 epochs已完成的折会跳过。目录锁防止同一队列误启动多个进程。summary.json从首个完整任务结束后才出现completed.json只在指定队列全部完成后生成。7.5 输出文件与检查依据文件用途config.json训练参数、依赖版本、上游提交及核心源文件摘要status.json / launcher.log最新 epoch 指标与完整运行过程每折 split.npztrain/test 索引、仅训练集拟合的均值和标准差每折 epochs.jsonl / result.json200 条训练轮日志与该折最终统计每折 latest.pt / predictions.npz最后检查点、最终轮逐样本预测及真实标签summary.json / final_results.csv汇总统计与 104 次完整结果CSV 为结束后导出的审计表completed.json / launcher_exit.txt完成标记及启动器退出时间、退出码

读完文章,也想定制专属网站?

尧图设计师 24 小时内与您沟通定制方案

免费获取报价 →
↑