Graphium: 将分子GNN扩展到无限。
项目描述
将分子GNN扩展到无限
一个专注于真实世界化学任务的图表示学习的深度学习库。
- ✅ 最先进的GNN架构。
- 🐍 可扩展API:轻松构建您自己的GNN模型并对其进行训练。
- ⚗️ 丰富的特征化:功能强大且灵活的内置分子特征化。
- 🧠 预训练模型:快速且易于推理或迁移学习。
- ⮔ 基于 Pytorch Lightning 的即用型训练循环。
- 🔌 有新的数据集?Graphium 提供简单的即插即用接口。更改路径、预测列的名称、原子特征化,即可开始使用!
文档
请访问 https://graphium-docs.datamol.io/。
开发人员安装
针对 CPU 和 GPU 开发人员
使用 mamba
,这是 conda
的更快、更好的替代品。
如果您正在使用 GPU,我们建议使用 CONDA_OVERRIDE_CUDA=XX.X
强制指定所需的 CUDA 版本。
# Install Graphium's dependencies in a new environment named `graphium`
mamba env create -f env.yml -n graphium
# To force the CUDA version to 11.2, or any other version you prefer, use the following command:
# CONDA_OVERRIDE_CUDA=11.2 mamba env create -f env.yml -n graphium
# Install Graphium in dev mode
mamba activate graphium
pip install --no-deps -e .
针对 IPU 开发人员
# Install Graphcore's SDK and Graphium dependencies in a new environment called `.graphium_ipu`
./install_ipu.sh .graphium_ipu
以上步骤只需执行一次。之后,启用 SDK 和环境,如下所示
source enable_ipu.sh .graphium_ipu
训练模型
要了解如何训练模型,我们邀请您查看文档,或在此处查看可用的 jupyter notebooks https://github.com/datamol-io/graphium/tree/master/docs/tutorials/model_training。
如果您不熟悉 PyTorch 或 PyTorch-Lightning,我们强烈建议首先完成它们的教程。
运行实验
我们已使用 hydra
为 Graphium 设置了配置文件管理。要运行实验,请转到 expts/
文件夹。例如,要在 ToyMix 数据集上对 GCN 进行基准测试,请运行
graphium-train architecture=toymix tasks=toymix training=toymix model=gcn
要更改特定于此实验的参数,例如从 fp16
切换到 fp32
精度,您可以直接在 CLI 中覆盖它们,或者
graphium-train architecture=toymix tasks=toymix training=toymix model=gcn trainer.trainer.precision=32
在 expts/hydra-configs/toymix_gcn.yaml
下的专用实验配置中永久更改它们。集成 hydra
还允许您快速切换加速器。例如,运行
graphium-train architecture=toymix tasks=toymix training=toymix model=gcn accelerator=gpu
将自动选择正确的配置以在 GPU 上运行实验。最后,您还可以运行微调循环
graphium-train +finetuning=admet
要使用您从头开始构建的配置文件,请运行
graphium-train --config-path [PATH] --config-name [CONFIG]
感谢 hydra
的模块化特性,您可以将我们许多配置设置用于自己的 Graphium 实验。
提前准备数据
数据准备包括特征化(例如,将分子从 smiles 转换为与 pyg 兼容的格式)已嵌入到管道中,并在执行 graphium-train [...]
时执行。
但是,当处理大型数据集时,建议在具有足够分配内存的机器上提前进行数据准备(例如,在 LargeMix
的情况下,约为 ~400GB)。在运行大量具有相同分子特征化的并发作业时,提前准备数据也很有益,这样可以避免资源浪费和进程在相同目录中读取/写入时的冲突。
以下命令行将准备数据并将其缓存,然后使用它来训练模型。
# First prepare the data and cache it in `path_to_cached_data`
graphium data prepare ++datamodule.args.processed_graph_data_path=[path_to_cached_data]
# Then train the model on the prepared data
graphium-train [...] datamodule.args.processed_graph_data_path=[path_to_cached_data]
注意,datamodule.args.processed_graph_data_path
也可以在 expts/hydra_configs/
中指定。
注意,每次更改 datamodule.args.featurization
的配置时,都需要运行新的数据准备,它将自动保存在一个使用对配置唯一的散列的单独目录中。
许可证
根据 Apache-2.0 许可证。请参阅 LICENSE。
文档
- Graphium 中数据处理的图示。
- Graphium 中多任务网络的图示。
项目详情
下载文件
下载适合您平台的文件。如果您不确定选择哪个,请了解更多关于安装包的信息。
源代码分发
构建分发
graphium-2.4.7.tar.gz的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 805fd9d4643df515036a63f75e13da48d055840bc04eab3277004c93379303c0 |
|
MD5 | cdd1eb9b1f1da5e0a52e524949933329 |
|
BLAKE2b-256 | 762a59a75f19d7089e7780137a5175723572bca3372adecbc3a3937dfb1a7566 |
graphium-2.4.7-py3-none-any.whl的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | aa1532318fd96f54ca15fb2d88854745ca4ccfb13e40b354b7c242b37c5fc9b9 |
|
MD5 | bab8dce177f371a17c5354b08687cab7 |
|
BLAKE2b-256 | 26932bd73f5f5ae86dd8070cc351a7fc8897e2197c6c3e71d8ca5f725197ca6c |