Ascend-SACT/GNNModular
模型介绍文件和版本Pull Requests讨论分析
下载使用量0

GNNModular模型迁移适配指导

1. 模型概述

GNNModular是模型块化图神经网络,它可以轻松替换GNN层。该模型在药物发现、材料科学和计算化学等任务中展现出强大能力,本文描述的GNNModular模型是基于DeepChem套件实现的,后续适配也是基于该套件修改。

2. 准备运行环境

2.1 软件环境

组件版本
Python3.10.19
PyTorch2.1.0
torch_npu2.1.0.post13
CANN8.1.RC1

2.2 硬件环境

设备型号NPU 配置
Atlas 800T A2单卡 / 多卡

2.3 准备镜像

镜像环境镜像地址
公网swr.cn-southwest-2.myhuaweicloud.com/atelier/pytorch_2_1_ascend:pytorch_2.1.0-cann_8.1.rc1-py_3.10-euler_2.10.11-aarch64-snt9b-20250603154214-4e60e43

2.4 启动镜像

docker run -u root --privileged \
 --name {container_name} \
 --device /dev/davinci0 \
 --device /dev/davinci_manager \
 --device /dev/devmm_svm \
 --device /dev/hisi_hdc \
 -v /usr/local/dcmi:/usr/local/dcmi \
 -v /usr/local/bin/npu-smi:/usr/local/bin/npu-smi \
 -v /usr/local/Ascend/driver:/usr/local/Ascend/driver \
 -v /etc/ascend_install.info:/etc/ascend_install.info \
 -itd {image_id} /bin/bash

3 运行指导

3.1 安装已完成迁移的deepchem-ascend

docker exec -it {container_name} bash

直接安装deepchem-ascend二进制包,该包已基于适配代码重新编译并上传至PyPI。

pip install deepchem-ascend==0.0.1

3.2 安装依赖

安装运行必要的依赖库

pip install torch-geometric

3.3 测试验证

测试代码举例如下:

3.6 运行测试代码

import os
import numpy as np
import deepchem as dc
from deepchem.feat.molecule_featurizers import SNAPFeaturizer
from deepchem.models.torch_models.gnn import GNNModular

np.random.seed(123)
featurizer = SNAPFeaturizer()
dir = os.path.dirname(os.path.abspath(__file__))

input_file = os.path.join(dir, 'assets/example_regression.csv')
loader = dc.data.CSVLoader(tasks=["outcome"],
                            feature_field="smiles",
                            featurizer=featurizer)
dataset = loader.create_dataset(input_file)
metric = dc.metrics.Metric(dc.metrics.mean_absolute_error,
                            mode="regression")

model = GNNModular(task="regression")
model.fit(dataset, nb_epoch=100)
scores = model.evaluate(dataset, [metric])

device = next(model.model.parameters()).device
print(f"模型所在设备: {device}")

测试结果: image