Docios | Tutoriales | Puntos de referencia | Documentos implementados
TorchDrug es una caja de herramientas de aprendizaje automático basada en Pytorch diseñada para varios fines.
TorchDrug se puede instalar en Linux, Windows o macOS. Es compatible con 3.7 <= Python <= 3.10 y Pytorch> = 1.8.0.
conda install torchdrug -c milagraph -c conda-forge -c pytorch -c pygpip install torch==1.9.0
pip install torch-scatter torch-cluster -f https://pytorch-geometric.com/whl/torch-1.9.0+cu102.html
pip install torchdrug Para instalar torch-scatter para otras versiones de Pytorch o Cuda, consulte las instrucciones en https://github.com/rusty1s/pytorch_scatter
git clone https://github.com/DeepGraphLearning/torchdrug
cd torchdrug
pip install -r requirements.txt
python setup.py installPrimero necesitamos instalar las herramientas de compilación para Visual Studio. Luego instalamos los siguientes módulos en PowerShell.
Install-Module Pscx - AllowClobber
Install-Module VSSetupInicialice Visual Studio en PowerShell con los siguientes comandos. Podemos configurar esto para todas las sesiones de PowerShell escribiéndolo al perfil de PowerShell. Cambie la ruta de la biblioteca de acuerdo con su propio caso.
Import-VisualStudioVars - Architecture x64
$ env: LIB += " ;C:Program FilesPython37libs " Necesitamos Pytorch> = 1.13 para ejecutar Torchdrug en Apple Silicon. Para torch-scatter y torch-cluster , se pueden compilar de sus fuentes. Nota TorchDrug no admite dispositivos mps .
pip install torch==1.13.0
pip install git+https://github.com/rusty1s/pytorch_scatter.git
pip install git+https://github.com/rusty1s/pytorch_cluster.git
pip install torchdrugTorchDrug está diseñado para humanos y se centra en datos estructurados gráficos. Permite una fácil implementación de operaciones gráficas en modelos de aprendizaje automático. Todas las operaciones en TorchDrug están respaldadas por Pytorch Framework y admiten la aceleración de GPU y la diferenciación automática.
from torchdrug import data
edge_list = [[ 0 , 1 ], [ 1 , 2 ], [ 2 , 3 ], [ 3 , 4 ], [ 4 , 5 ], [ 5 , 0 ]]
graph = data . Graph ( edge_list , num_node = 6 )
graph = graph . cuda ()
# the subgraph induced by nodes 2, 3 & 4
subgraph = graph . subgraph ([ 2 , 3 , 4 ])Las moléculas también son compatibles con Torchdrug. Puede obtener las propiedades de la molécula deseada sin ningún conocimiento del dominio.
mol = data . Molecule . from_smiles ( "CCOC(=O)N" , atom_feature = "default" , bond_feature = "default" )
print ( mol . node_feature )
print ( mol . atom_type )
print ( mol . to_scaffold ())También puede registrar atributos personalizados de nodo, borde o gráfico. Se procesarán automáticamente durante las operaciones de indexación.
with mol . edge ():
mol . is_CC_bond = ( mol . edge_list [:, : 2 ] == td . CARBON ). all ( dim = - 1 )
sub_mol = mol . subgraph ( mol . atom_type != td . NITROGEN )
print ( sub_mol . is_CC_bond )TorchDrug proporciona una amplia gama de conjuntos de datos comunes y bloques de construcción para el descubrimiento de fármacos. Con un código mínimo, puede aplicar modelos estándar para resolver su propio problema.
import torch
from torchdrug import datasets
dataset = datasets . Tox21 ()
dataset [ 0 ]. visualize ()
lengths = [ int ( 0.8 * len ( dataset )), int ( 0.1 * len ( dataset ))]
lengths += [ len ( dataset ) - sum ( lengths )]
train_set , valid_set , test_set = torch . utils . data . random_split ( dataset , lengths ) from torchdrug import models , tasks
model = models . GIN ( dataset . node_feature_dim , hidden_dims = [ 256 , 256 , 256 , 256 ])
task = tasks . PropertyPrediction ( model , task = dataset . tasks )La capacitación y la inferencia se aceleran por múltiples CPU o GPU. Esto se puede cambiar sin problemas en Torchdrug solo por una línea de código.
from torchdrug import core
# Single CPU / Multiple CPUs / Distributed CPUs
solver = core . Engine ( task , train_set , valid_set , test_set , optimizer )
# Single GPU
solver = core . Engine ( task , train_set , valid_set , test_set , optimizer , gpus = [ 0 ])
# Multiple GPUs
solver = core . Engine ( task , train_set , valid_set , test_set , optimizer , gpus = [ 0 , 1 , 2 , 3 ])
# Distributed GPUs
solver = core . Engine ( task , train_set , valid_set , test_set , optimizer , gpus = [ 0 , 1 , 2 , 3 , 0 , 1 , 2 , 3 ])Los experimentos se pueden rastrear y manejar fácilmente a través de la plataforma de pesas y sesgos.
solver = core . Engine ( task , train_set , valid_set , test_set , optimizer , logger = "wandb" )Todos son bienvenidos a contribuir al desarrollo de Torchdrug. Consulte las pautas contribuyentes para obtener más detalles.
Torchdrug se libera bajo la licencia Apache-2.0.