Skip to content

【Hackathon 10th Spring No.10】ECDFormer模型复现任务Datasets部分#246

Closed
PlumBlossomMaid wants to merge 3 commits intoPaddlePaddle:developfrom
PlumBlossomMaid:ECFormer-Datasets
Closed

【Hackathon 10th Spring No.10】ECDFormer模型复现任务Datasets部分#246
PlumBlossomMaid wants to merge 3 commits intoPaddlePaddle:developfrom
PlumBlossomMaid:ECFormer-Datasets

Conversation

@PlumBlossomMaid
Copy link

@PlumBlossomMaid PlumBlossomMaid commented Feb 24, 2026

【Hackathon 10th Spring No.10】ECDFormer模型复现任务 - Datasets部分

📌 PR说明

一、概述

本PR为ECDFormer模型复现任务Datasets部分,是四个核心模块(Models/Datasets/Train/Docs)中的第二个。ECDFormer模型需要处理ECD(电子圆二色谱)和IR(红外光谱)两种谱图数据,本PR提供了两个完全自治的数据集模块。

二、本次PR内容

2.1 新增文件

ppmat/datasets/ 目录下新增两个自治数据集模块:

ECDFormerDataset模块(ECD光谱数据):

ppmat/datasets/ECDFormerDataset/
├── __init__.py          # 数据集主入口,导出ECDFormerDataset和ECDFormerDataLoader
├── dataloader.py        # 自定义DataLoader + collate_fn(解包为Tensor,支持静态图)
├── compound_tools.py    # 分子特征提取工具(复用原作者代码)
├── eval_func.py         # 评估函数(峰值检测等)
├── util_func.py         # 通用工具函数(归一化、区间检测)
├── place_env.py         # 设备上下文管理器(确保数据加载在CPU)
└── colored_tqdm.py      # 彩虹进度条(美化)

IRDataset模块(IR光谱数据):

ppmat/datasets/IRDataset/
├── __init__.py          # 数据集主入口,导出IRDataset和IRDataLoader
├── compound_tools.py    # 分子特征提取工具(复用)
├── place_env.py         # 设备上下文管理器(复用)
└── colored_tqdm.py      # 彩虹进度条(复用)

2.2 核心特性

特性 ECDFormerDataset IRDataset
数据来源 Figshare 27763119 (22,190分子) QM9 + 预计算IR光谱
峰值检测 自定义滑动窗口 scipy.signal.find_peaks
特殊增强 手性对映体增强
最大峰数 9 15
加载优化 类级别缓存 按需读取JSON(避免扫描全部)

2.3 设计亮点

  • 模块自治:每个数据集独立包含所有依赖,不侵入框架
  • 类级别缓存:首次加载后,后续实例化毫秒级返回
  • 按需读取:IRDataset只读index_all中的文件,避免1小时全量扫描
  • 设备控制place_env确保数据加载在CPU进行,避免GPU资源浪费
  • 静态图就绪:自定义collate_fn将Data对象解包为Tensor字典

三、后续PR计划

本PR完成后,将陆续提交:

  1. Models部分(已完成)
  2. Datasets部分(本次)
  3. Train部分:独立训练脚本
  4. Docs部分:使用文档与API说明

四、测试情况

  • 两数据集均通过单元测试
  • 缓存机制验证(二次加载 < 0.1秒)
  • 按需读取验证(IRDataset只读指定文件)
  • 静态图编译通过
  • RFC文档已同步更新

五、相关链接

@paddle-bot
Copy link

paddle-bot bot commented Feb 24, 2026

Thanks for your contribution!

@paddle-bot paddle-bot bot added the contributor External developers label Feb 24, 2026
Removed duplicate import of OMol25Dataset.
@PlumBlossomMaid
Copy link
Author

根据官方Review意见,本PR将与#245合并。后续所有提交均在#245当中进行,本PR关闭。感谢Review!

@PlumBlossomMaid PlumBlossomMaid deleted the ECFormer-Datasets branch March 1, 2026 07:58
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

contributor External developers

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants