Docs | Tutorial | Tolok ukur | Makalah diterapkan
Torchdrug adalah kotak pembelajaran mesin berbasis pytorch yang dirancang untuk beberapa tujuan.
Torchdrug dapat diinstal pada Linux, Windows atau MacOS. Ini kompatibel dengan 3,7 <= python <= 3.10 dan 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 Untuk menginstal torch-scatter untuk versi Pytorch atau CUDA lainnya, silakan lihat instruksi di https://github.com/rusty1s/pytorch_scatter
git clone https://github.com/DeepGraphLearning/torchdrug
cd torchdrug
pip install -r requirements.txt
python setup.py installPertama -tama kita perlu menginstal alat build untuk Visual Studio. Kami kemudian menginstal modul berikut di PowerShell.
Install-Module Pscx - AllowClobber
Install-Module VSSetupInisialisasi Visual Studio di PowerShell dengan perintah berikut. Kami dapat mengatur ini untuk semua sesi PowerShell dengan menulisnya ke profil PowerShell. Ubah jalur perpustakaan sesuai dengan kasus Anda sendiri.
Import-VisualStudioVars - Architecture x64
$ env: LIB += " ;C:Program FilesPython37libs " Kami membutuhkan pytorch> = 1.13 untuk menjalankan obor pada silikon apel. Untuk torch-scatter dan torch-cluster , mereka dapat dikompilasi dari sumbernya. Catatan Torchdrug tidak mendukung perangkat 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 dirancang untuk manusia dan fokus pada data terstruktur grafik. Ini memungkinkan implementasi operasi grafik yang mudah dalam model pembelajaran mesin. Semua operasi dalam obor didukung oleh kerangka kerja pytorch, dan mendukung akselerasi GPU dan diferensiasi otomatis.
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 ])Molekul juga didukung dalam obor. Anda bisa mendapatkan sifat molekul yang diinginkan tanpa pengetahuan domain.
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 ())Anda juga dapat mendaftarkan atribut Node, Edge, atau Grafik Kustom. Mereka akan diproses secara otomatis selama operasi pengindeksan.
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 menyediakan berbagai dataset umum dan blok bangunan untuk penemuan obat. Dengan kode minimal, Anda dapat menerapkan model standar untuk menyelesaikan masalah Anda sendiri.
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 )Pelatihan dan inferensi dipercepat oleh beberapa CPU atau GPU. Ini dapat diaktifkan dengan mulus di Torchdrug hanya dengan satu baris kode.
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 ])Eksperimen dapat dengan mudah dilacak dan dikelola melalui platform bobot & bias.
solver = core . Engine ( task , train_set , valid_set , test_set , optimizer , logger = "wandb" )Setiap orang dipersilakan untuk berkontribusi pada pengembangan Torchdrug. Silakan merujuk ke Pedoman yang Berkontribusi untuk detail lebih lanjut.
Torchdrug dirilis di bawah lisensi apache-2.0.