مستندات | دروس | المعايير | تنفيذ الأوراق
Torchdrug هو صندوق أدوات للتعلم الآلي القائم على Pytorch مصمم لعدة أغراض.
يمكن تثبيت Torchdrug على Linux أو Windows أو MacOS. وهو متوافق مع 3.7 <= Python <= 3.10 و 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 لتثبيت torch-scatter لإصدارات Pytorch أو CUDA الأخرى ، يرجى الاطلاع
git clone https://github.com/DeepGraphLearning/torchdrug
cd torchdrug
pip install -r requirements.txt
python setup.py installنحتاج أولاً إلى تثبيت أدوات البناء لـ Visual Studio. ثم نقوم بتثبيت الوحدات النمطية التالية في PowerShell.
Install-Module Pscx - AllowClobber
Install-Module VSSetupتهيئة Visual Studio في PowerShell مع الأوامر التالية. قد نقوم بإعداد هذا لجميع جلسات PowerShell عن طريق كتابته إلى ملف PowerShell. قم بتغيير مسار المكتبة وفقًا لحالتك الخاصة.
Import-VisualStudioVars - Architecture x64
$ env: LIB += " ;C:Program FilesPython37libs " نحن بحاجة إلى Pytorch> = 1.13 لتشغيل Torchdrug على سيليكون التفاح. بالنسبة torch-scatter و torch-cluster ، يمكن تجميعها من مصادرها. ملاحظة لا يدعم Torchdrug أجهزة 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 torchdrugتم تصميم Torchdrug للبشر وركز على البيانات المهيكلة الرسم البياني. يتيح تنفيذ عمليات الرسم البياني السهل في نماذج التعلم الآلي. يتم دعم جميع العمليات في Torchdrug بواسطة Pytorch Framework ، ودعم تسريع GPU وتمايز السيارات.
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 ])كما تدعم الجزيئات في Torchdrug. يمكنك الحصول على خصائص الجزيء المطلوب دون أي معرفة المجال.
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 ())يمكنك أيضًا تسجيل سمات العقدة المخصصة أو الحافة أو الرسم البياني. سيتم معالجتها تلقائيًا أثناء عمليات الفهرسة.
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 مجموعة واسعة من مجموعات البيانات الشائعة وبنات البناء لاكتشاف المخدرات. مع الحد الأدنى من التعليمات البرمجية ، يمكنك تطبيق النماذج القياسية لحل مشكلتك الخاصة.
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 )يتم تسريع التدريب والاستدلال من قبل وحدات المعالجة المركزية أو وحدات معالجة الرسومات. يمكن تبديل هذا بسلاسة في Torchdrug بمجرد سطر من الكود.
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 ])يمكن تتبع التجارب بسهولة وإدارتها من خلال منصة الأوزان والتحيزات.
solver = core . Engine ( task , train_set , valid_set , test_set , optimizer , logger = "wandb" )الجميع مدعوون للمساهمة في تطوير Torchdrug. يرجى الرجوع إلى الإرشادات المساهمة لمزيد من التفاصيل.
يتم إصدار Torchdrug بموجب ترخيص Apache-2.0.