ABACUS:DeePTB与DeepH个人环境
固定软件源码与依赖,在个人目录分别准备两种机器学习哈密顿量环境。
阅读本篇目录
DeePTB、DeepH学习的是电子结构哈密顿量,不是分子动力学中的原子间势。本组教程从ABACUS矩阵标签出发,分别训练两个框架,再用没有参加训练的结构预测能带。
先在个人目录准备本页环境,再读标签生成、DeePTB训练预测和DeepH训练预测。已有参考数据和模型,想先看结果可以直接进入后两篇。
1. 软件版本与准备方式#
| 部分 | DeePTB | DeepH |
|---|---|---|
| 固定源码 | 597a0361开发快照 | 原版DeepH-pack 0.2.2,141faaab |
| Python / PyTorch | 3.11 / 2.8.0+cu126 | 3.11 / 2.8.0+cu126 |
| PyG | 2.8.1 | 2.4.0 |
| e3nn | 0.5.8 | 0.4.4 |
| GPU计算示例 | P100 16G,单卡 | V100 16G,单卡 |
共享的MACE Python环境仅提供基础Python、PyTorch及已有数值库,额外依赖放入自己的toolchain/python-*。两种框架不能在同一Python进程内混合导入。DeePTB源码优先于安装目录,可以保留其Jd.pt等资源;此处源码快照不是正式发布的DeePTB 2.2.1。

unzip abacus-ml-env-wave693-*.zip
cd abacus-ml-env
bash prepare.sh
bash install.sh
prepare.sh下载两个固定commit的源码并检查SHA256;install.sh按带哈希的wheel清单安装到个人目录,再安装这两个本地源码包。文件较大的主要是DeePTB源代码,下载完成后可重复使用。不要用sudo pip。
脚本使用已有CUDA版PyTorch,无须重新编译ABACUS或CUDA。固定wheel适用于本例Linux x86_64、CPython3.11、Torch2.8/cu126;换PyTorch版本时,需要对应的torch-scatter wheel,不能沿用不匹配的二进制扩展。
2. 打开DeePTB环境#
在一个新的终端中:
cd abacus-ml-env
source deeptb_env.sh
"$PYTHON_FOR_ML" -m dptb --help
主命令包含data数据转换、train训练、test测试和run后处理。本组示例使用官方数据转换及训练入口,预测脚本调用其原生模型和电子结构接口,并输出普通CSV方便画图。
3. 打开DeepH环境#
另开一个终端:
cd abacus-ml-env
source deeph_env.sh
DeepH原版的训练程序通过配套run_fixed.py启动。这个薄封装固定训练/验证/测试划分,适配PyG表格导出字段,并允许读取旧e3nn常量需要的slice类型;没有修改神经网络算法。
cd ../abacus-deeph
bash use-tools.sh ../abacus-ml-env ../abacus-ml-labels
bash prepare.sh
准备阶段只生成配置和图数据;sbatch train.slurm才开始训练。环境脚本保留Slurm分配的GPU可见范围。
4. 第一次建议怎样做#
先下载两篇训练教程的配套包,运行results.sh和plot.sh查看本集群实算参考。然后用自带模型运行predict.sh,确认理解H、S和能带的关系,最后再生成自己的DFT标签、训练自己的模型。
源码与方法:DeePTB固定源码、DeePTB E3示例、DeepH固定源码。