概览
CGCNN 是一种软件实现,用于通过晶体结构预测材料性质。它支持两种主要工作流程:使用用户提供的结构–性质数据集训练模型,以及将预训练模型应用于新晶体。仓库介绍了回归和分类任务,并提供了每原子形成能预测以及金属与半导体分类示例。它是一个预测建模组件,而不是材料数据库。
这两种工作流程都需要一个数据集目录,其中包含以 ID.cif 命名的晶体结构文件、一个将晶体标识符与目标值关联起来的双列 id_prop.csv 文件,以及一个包含元素初始化向量的 atom_init.json 文件。进行推理时不需要实际目标测量值,但目标列仍须包含占位数字。提供的示例数据集展示了回归和分类输入;高级用户也可以自行实现 PyTorch 数据集,而不使用文档所述的 CIFData 接口。
训练支持独立的训练集、验证集和测试集划分,可按数量或比例指定。输出包括验证集表现最佳的模型、最终轮次检查点,以及包含测试标识符、目标值和预测值的 CSV 文件。使用预训练模型进行推理也会生成 test_results.csv;分类预测值是属于类别 1 的概率。README 列出的依赖项包括 PyTorch、scikit-learn 和 pymatgen。来源摘录无法证明模型在前瞻性数据集上的预测准确性,也无法证明其适用于所有晶体类别,因此在使用预测结果指导材料筛选之前,仍需针对具体目标进行评估。
主要功能
- 使用自定义数据集训练 CGCNN 模型,数据集将 CIF 晶体结构与材料性质目标值配对。
- 支持回归和分类,并分别提供这两类任务的示例数据集。
- 将预训练检查点应用于新结构,包括文档所述的形成能和金属与半导体分类示例。
- 允许按数量或比例配置训练集、验证集和测试集划分;这两种配置方法不能混用。
- 生成验证集表现最佳的模型检查点和最终轮次模型检查点,以及包含晶体标识符、目标值和预测值的 CSV 结果文件。
- 提供 `CIFData` 数据集接口,并介绍将自定义 PyTorch 数据集类作为另一种输入方式。
使用场景
- 建议的评估:在带标签的晶体集合上训练性质回归模型,并在使用模型为候选材料排序之前评估留出数据上的预测结果。
- 建议的评估:将提供的形成能检查点应用于有代表性的 CIF 结构,并将预测值与可用的参考值进行比较。
- 建议的评估:在带标签的晶体集合上考察金属与半导体分类概率,以评估其是否适用于电子材料筛选工作流程。
使用方式
- 阅读官方 README,并选择自定义训练或预训练推理。在准备环境之前,查看文档所列的 PyTorch、scikit-learn 和 pymatgen 前置依赖。
- 准备数据集目录,其中每个晶体对应一个
ID.cif文件,标识符须与id_prop.csv中的标识符一致,并包含一个元素向量文件atom_init.json。可将文档提供的示例数据集用作格式参考。即使没有测量值,推理仍要求目标列包含数值。 - 训练时,选择回归或分类,并定义训练集、验证集和测试集划分。按照 README 中基于数量或比例的配置方式进行操作,不要混用这两种方法。
- 推理时,选择适用于目标性质的预训练检查点,并按照 README 所述的
predict.py工作流程操作。文档中的示例涵盖每原子形成能以及金属与半导体分类。 - 检查
test_results.csv,并在训练后检查保存的检查点。将推理占位值视为非测量值,并将分类输出视为类别 1 的概率。作为建议的评估步骤,在下游使用之前,将预测值与独立参考标签进行比较;有关方法背景,请参阅框架论文。