เอกสาร | บทเรียน เกณฑ์มาตรฐาน | เอกสารนำไปใช้
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 อื่น ๆ โปรดดูคำแนะนำใน https://github.com/rusty1s/pytorch_scatter
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 เพื่อเรียกใช้ orbdrug บนแอปเปิ้ลซิลิคอน สำหรับ torch-scatter และ torch-cluster พวกเขาสามารถรวบรวมได้จากแหล่งที่มาของพวกเขา Note 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 torchdrugTorchdrug ออกแบบมาสำหรับมนุษย์และมุ่งเน้นไปที่ข้อมูลที่มีโครงสร้างของกราฟ ช่วยให้การใช้งานกราฟใช้งานได้ง่ายในรูปแบบการเรียนรู้ของเครื่อง การดำเนินการทั้งหมดในการตึกตากอากาศได้รับการสนับสนุนโดยเฟรมเวิร์ก Pytorch และสนับสนุนการเร่งความเร็วของ 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 ])โมเลกุลได้รับการสนับสนุนใน orchdrug คุณสามารถรับคุณสมบัติโมเลกุลที่ต้องการได้โดยไม่มีความรู้ด้านโดเมนใด ๆ
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 )การฝึกอบรมและการอนุมานจะถูกเร่งด้วย CPU หรือ GPU หลายตัว สิ่งนี้สามารถเปลี่ยนได้อย่างราบรื่นใน 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