跳到内容
/ 相位 公共

PhAST的PyTorch实现:用于加速催化剂设计的物理感知、可扩展和特定于任务的GNN

许可证

通知 您必须登录才能更改通知设置

维克多/相位

💻代码   •   文件📑

蟒蛇 文档状态


PhAST:用于加速催化剂设计的物理感知、可扩展和特定于任务的GNN

此存储库包含中提供的两个PhAST组件的实现纸张:

  • 物理嵌入它允许从原子数创建嵌入向量,该嵌入向量是以下内容的串联:
    • 原子群的学习嵌入
    • 原子周期的学习嵌入
    • 一组已知物理特性的固定或学习嵌入,如门捷列夫
    • 对于OC20数据集,原子标签的学习嵌入(吸附质、催化剂表面或催化剂亚表面)
  • 基于标签图形重新布线OC20数据集的策略:
    • 删除标签节点删除图形中与标记0关联的所有节点并重新计算边

    • 一个超级节点每个图形用单个新原子替换所有标记0原子

    • 一个超级节点每个原子类型替换所有标记0原子给定元素的有自己的超级节点

也:https://github.com/vict0rsch/faenet网站

安装

pip安装阶段

⚠️上述安装不包括火炬_几何这是一个复杂且多变的依赖项,如果您想使用相位.

☮️ 忽略火炬_几何如果你只关心物理嵌入.

开始

物理嵌入

嵌入插图

进口 火炬
 相位.嵌入 进口 物理嵌入

z(z) = 火炬.兰丁(1,85, (,12))#一批3个图,每个图有12个原子
物理_嵌入 = 物理嵌入(z _ emb _大小=32,#默认
    周期_大小=32,#默认
    组_ emb _大小=32,#默认
    属性_项目_大小=32,#默认值为0->无学习投影
    n个元素=85,#默认)小时 = 物理_嵌入(z(z))#h.形状=(3,12,128)

标签 = 火炬.兰丁(0,, (,12))物理_嵌入 = 物理嵌入(标记_ emb _大小=32,#默认值为0,这是OC20特有的
    最终_项目_大小=64,#默认值为0,没有投影,只有凹面。嵌入式。)小时 = 物理_嵌入(z(z),标签)#h.形状=(3,12,64)

#假设安装了torch_geometry:
数据 = 火炬.负载(“examples/data/is2re_bs3.pt”)小时 = 物理_嵌入(数据.atomic_numbers(原子编号).长的(),数据.标签)#h.shape=(261,64)

图形重新布线

重新接线示意图

 复制 进口 深度复制
进口 火炬
 相位.graph_rewiring(图形_布线) 进口(删除标签节点,一个超级节点每个图形,一个超级节点每个原子类型,)数据 = 火炬.负载(“./examples/data/is2re_bs3.pt”)#3批OC20 IS2RE数据样本
打印(数据最初包含{}图、总共{}个原子和{}条边.格式(伦恩(数据.北约),数据.脉冲重复频率[-1],伦恩(数据.单元格偏移(_O))))重新布线数据 = 删除标签节点(深度复制(数据))打印(没有tag-0节点的数据包含{}图、总共{}个原子和{}条边.格式(伦恩(重新布线数据.北约),重新布线数据.脉冲重复频率[-1],伦恩(重新布线数据.单元格偏移(_O))))重新布线数据 = 一个超级节点每个图形(深度复制(数据))打印(“每个图有一个超级节点的数据总共包含{}个原子和{}条边”.格式(重新布线数据.脉冲重复频率[-1],伦恩(重新布线数据.单元格偏移(_O))))重新布线数据 = 一个超级节点每个原子类型(深度复制(数据))打印(“每个原子类型有一个超级节点的数据总共包含{}个原子和{}条边”.格式(重新布线数据.脉冲重复频率[-1],伦恩(重新布线数据.单元格偏移(_O))))
数据最初包含3个图形,共261个原子和11596条边没有tag-0节点的数据包含3个图形,共64个原子和1236条边每个图有一个超级节点的数据总共包含67个原子和1311条边每个原子类型有一个超级节点的数据总共包含71个原子和1421条边

测验

这需要.确保火炬火炬_几何在运行测试之前安装在您的环境中。不幸的是,由于CUDA/火炬的兼容性火炬也不是火炬_几何是显式依赖项的一部分,必须独立安装。

git克隆git@github.com:vict0rsch/phast.git诗歌安装--使用devpytest--cov=phast--cov报告项忽略

在Mac上测试可能会遇到库未加载错误

需要Python<3.12,因为

mendelev(0.14.0)需要Python>=3.8.1,<3.12

关于

PhAST的PyTorch实现:用于加速催化剂设计的物理感知、可扩展和特定于任务的GNN

资源

许可证

星星

观察者

叉子

发布

未发布版本

包装

未发布包

语言文字