2022-02-18 graphnvp:ubuntu18.04-cuda10.1-cudnn7-python3.6-pytorch1.4.0
这个模型的文章是康奈尔大学医学院(Weill Cornell Medicine)健康科学系(Department of Population Health Sciences)的博士后研究助理臧承熙于2020年4月发表在ACM SIGKDD的一篇论文。GraphNVP是第一个可逆的、标准化的基于流的分子图生成模型。 将图的生成分解为两个步骤:生成邻接张量和节点属性。 这种分解产生了图结构数据的精确似然最大化,并结合了两个新的可逆流。 证明模型有效地生成了几乎没有重复分子的有效分子图。 此外,可以观察到学习到的潜在空间可用于生成具有所需化学特性的分子。提出了flow−based的结构,大致就是有两个概率分布,如果他们之间的变换是可逆的,那么就可以根据一个较为简单地分布通过逆变换获得另外一个较复杂的概率分布。这篇文章采用的就是将邻接矩阵和原子矩阵这两个概率分布与另外两个较为简单的潜在变量的分布(文中将这两个潜在变量的分布采样为高斯分布)利用flow联系了起来。通过设计一个可逆的分布,以及从高斯分布中采样,将采样的潜在变量通过这个可逆的变换就可以得到分子图结构。官方论文:https://arxiv.org/pdf/1905.11600v1.pdf
进入终端,在root/PyTorch-GraphNVP(默认)路径下,运行以下命令:
python ./data/download_data.py
# 运行后自动下载数据集
进入终端,在root/PyTorch-GraphNVP(默认)路径下,运行以下命令:
mkdir saved_qm9_models
# 创建保存测试结果的文件
bash train.sh
# 该脚本之行后将自动执行train.py,该文件包含训练和测试步骤,可按需修改代码分步复现
# 模型的训练结果在qm9_mols文件中的novelty1.npy和unique1.npy/valid1.npy;saved_qm9_models文件中的ckpt文件查看