概览
SchNetPack 支持开发和应用神经网络,用于分子与材料的势能面及其他量子化学性质。它是一个工具包,而非单一的预训练预测模型:研究人员可以组合原子表征、输出模块和训练配置,为选定任务构建模型。项目 README 将 SchNet 连续滤波网络和 PaiNN 等变消息传递列为可用表征。
其工作流程涵盖基准数据、模型配置、训练和日志记录。文档中的 QM9 示例会训练原子级性质模型;如果数据集尚不可用,还会下载该数据集。MD17 示例则使用选定分子的参考能量和力。配置用于指定表征、预测输出、损失和指标;势能模型可以生成能量及其对应导数,用于得到力和应力。其他输出模块还涵盖偶极矩、极化率和一般响应性质。
训练接口使用基于 PyTorch Lightning 的 Hydra 配置组,用户可以据此更改数据集、表征和单个参数。运行目录用于保存训练好的模型;受支持的日志选项包括 Tensorboard、CSV 和 Aim。除训练功能外,该工具包还包含静电和排斥模块、GPU 加速的分子动力学组件,以及文档说明的 LAMMPS 接口。
这些摘录说明了上述组件和示例工作流程,但未提供测得的准确度、运行时间结果或向新化学体系迁移的验证结果。所提供的项目元数据声明 Python >=3.12;这是依赖要求,并不能证明该版本经过兼容性测试。因此,将训练好的模型用于新数据集或模拟仍需进行评估。
主要功能
- 用于分子和材料原子模型的 SchNet 连续滤波表征与 PaiNN 等变消息传递表征。
- 提供偶极矩、极化率、应力和一般响应性质的性质输出模块,其中包括用于计算力和应力张量的能量导数。
- 通过 spktrain 进行 Hydra 配置训练,提供有文档说明的 QM9 和 MD17 实验,并可配置性质损失权重。
- 用于静电、Ewald 求和和 ZBL 排斥的物理相关模块。
- GPU 加速的分子动力学组件涵盖路径积分 MD、恒温器和恒压器,并提供 LAMMPS 接口。
- 通过 PyTorch Lightning 记录训练日志,默认使用 Tensorboard,并提供 CSV 和 Aim 配置。
使用场景
- 建议评估:使用一致的数据划分和指标,在有文档说明的 QM9 性质预测工作流程中比较 SchNet 和 PaiNN 表征。
- 建议评估:针对尿嘧啶训练 MD17 模型,并在改变有文档说明的损失权重时检查能量和力误差。
- 建议评估:使用 SchNetPack 组件或其 LAMMPS 接口,评估训练好的势能模型能否用于分子动力学工作流程。
- 建议评估:通过分层配置组合表征和输出模块,开发自定义原子级预测任务。
使用方式
- 查阅仓库 README和文档,选择 QM9 性质示例或 MD17 能量与力示例。准备环境前,请检查所提供的项目要求;项目声明需要 Python >=3.12,但此处未独立测试。
- 按照 README 中的 pip 或源码安装流程操作。根据入门工作流程的说明,为数据和训练运行准备工作目录。
- 选择有文档说明的实验配置:QM9 示例使用 qm9_atomwise;分子势能示例使用 md17,并将 data.molecule 设为 uracil。若 QM9 数据尚不存在,系统会自动下载。
- 查阅配置指南。选择 SchNet 或 PaiNN,检查输出定义,并在适用时设置合适的能量和力损失权重。
- 通过 spktrain 进行训练,并检查保存的模型和所选日志输出。作为预期的评估步骤,在将模型用于模拟前先评估预测误差;如需该集成,请参阅LAMMPS 指南。