概览
MEGNet 实现了用于学习分子和晶体性质的 MatErials Graph Networks。该仓库由 Materials Virtual Lab 开发,集成了预训练预测模型,以及用于训练和定制图网络的工具。该项目现已弃用:README 声明它将不再更新,并将其保留为原始 TensorFlow 实现的参考,同时指出 matgl 是其后继项目。
该工作流使用原子特征、键特征、连通关系和全局状态属性来表示结构。堆叠的 MEGNet 模块在这些组成部分之间交换信息,set2set 读出层则将表征映射为标量或向量性质。预测示例接受 pymatgen Structure 或 Molecule 对象;分子示例还介绍了从 SMILES 转换以及加载 XYZ 文件的方法。预训练模型以 HDF5+JSON 文件形式提供,涵盖 QM9 分子目标和 Materials Project 晶体目标,包括轨道能量、形成能、带隙和对数弹性模量。
对于模型开发,MEGNetModel 支持使用结构及其对应的目标值进行训练,也支持使用经过验证的图进行训练。较低层级的 MEGNetLayer 和 Set2Set 组件可用于定制架构。该仓库还提供多保真度示例,以及从形成能模型中提取的元素嵌入,供迁移学习工作流使用。
若将其用作研究基线,需考虑若干重要限制。README 不建议将 QM9 模型用于该数据集之外的分子,因为训练数据覆盖范围有限。如果所选邻居截断半径导致原子孤立,晶体图转换可能会失败。文档指出,大型数据集训练的计算开销较高,并建议使用专用 GPU。评估时应将这些限制以及仓库已弃用的状态纳入考量。
主要功能
- 通过 MEGNetModel.from_file 加载序列化的 HDF5+JSON 预训练模型,模型涵盖 QM9 分子性质和 Materials Project 晶体性质。
- 接受 pymatgen 晶体和分子对象进行预测,并提供有文档说明的分子工作流,支持 SMILES 转换和 XYZ 文件加载。
- 使用结构和目标值训练 MEGNetModel 实例,或在筛除无效结构图后使用 train_from_graphs。
- 通过堆叠的图网络模块更新原子、键和全局状态属性,并使用 set2set 读出层进行标量或向量预测。
- 提供 MEGNetLayer 和 Set2Set 组件,用于构建定制的 TensorFlow/Keras 图网络架构。
- 提供预训练元素嵌入、迁移学习笔记本,以及多保真度图网络训练示例。
使用场景
- 预期评估:在具有代表性的晶体结构上,将预训练的形成能、带隙或弹性模量模型作为历史基线进行评估,并检查图的有效性和目标单位。
- 预期评估:探索 QM9 分子性质模型在域内分子上的预测能力,而不是假定其适用于无关的分子化学体系。
- 预期评估:使用带标签的晶体结构训练性质模型,并比较使用迁移元素嵌入的模型与未使用这类嵌入的模型。
- 预期评估:结合所提供的示例,研究全局状态特征和多保真度训练如何适用于材料性质建模工作流。
使用方式
- 阅读官方 README,尤其留意弃用声明。决定是否需要原始 TensorFlow 参考实现,或是否应改为考察链接所指的 matgl 后继项目。
- 在独立的评估环境中遵循 README 的安装指南。应将安装和运行时兼容性视为需要检查的事项,而不是已确定适用于你系统的事实。
- 从 mvl_models 中选择一个预训练目标,并检查其模型详情。参照 README 中晶体或 QM9 笔记本的指引准备 pymatgen 输入,并通过文档所述的 API 加载模型。
- 解读预测结果前,检查输入覆盖范围、邻居截断半径和输出单位。特别是,体积模量示例会将 log10 预测值转换为 GPa;QM9 模型附有明确的覆盖范围警告。
- 如需自定义训练,将结构与目标值配对,验证图转换,并使用文档所述的训练工作流。应单独评估留出数据上的预测;如有需要,可参阅迁移学习和多保真度示例。