graphnetz.training¶
training
¶
Lightweight training loops shared by the example notebooks.
Each function returns a plain dict of per-epoch metrics, ready to feed into
plot_history.
All trainers accept device='auto' (the default), which dispatches to
CUDA when available, then Apple-silicon MPS, then CPU. Pass an explicit
torch.device or string to pin placement.
Functions:
| Name | Description |
|---|---|
train_node_classification |
Train a node classifier with Planetoid-style train/val/test masks. |
train_graph_classification |
Train a graph-level classifier. |
train_graph_regression |
Train a graph-level regressor (MSE loss, MAE on val). |
train_node_degree_regression |
Self-supervised node-level regression: predict log node degree. |
train_dgi |
Train a Deep Graph Infomax model (unsupervised). |
train_link_prediction |
Train a link predictor with binary cross-entropy on RandomLinkSplit. |
train_relational_link_prediction |
Train a relational link predictor (DistMult) on knowledge graph triples. |
train_node_classification
¶
train_node_classification(
model: Module,
data: Data,
epochs: int = 100,
lr: float = 0.01,
weight_decay: float = 0.0005,
verbose: bool = False,
device: device | str | None = "auto",
) -> dict[str, list[float]]
Train a node classifier with Planetoid-style train/val/test masks.
Source code in src/graphnetz/training.py
train_graph_classification
¶
train_graph_classification(
model: Module,
train_loader: DataLoader,
val_loader: DataLoader,
epochs: int = 30,
lr: float = 0.001,
verbose: bool = False,
device: device | str | None = "auto",
) -> dict[str, list[float]]
Train a graph-level classifier.
Handles single-label and multi-label datasets transparently:
when batch.y is shaped [B, C] with float dtype (e.g. LRGB Peptides-func, OGB molhiv variants), the loss switches to
binary cross-entropy with logits and the reported metric is the
average correctly-classified label fraction.
Source code in src/graphnetz/training.py
train_graph_regression
¶
train_graph_regression(
model: Module,
train_loader: DataLoader,
val_loader: DataLoader,
epochs: int = 30,
lr: float = 0.001,
verbose: bool = False,
device: device | str | None = "auto",
) -> dict[str, list[float]]
Train a graph-level regressor (MSE loss, MAE on val).
Source code in src/graphnetz/training.py
train_node_degree_regression
¶
train_node_degree_regression(
model: Module,
data: Data,
epochs: int = 100,
lr: float = 0.01,
verbose: bool = False,
device: device | str | None = "auto",
) -> dict[str, list[float]]
Self-supervised node-level regression: predict log node degree.
Source code in src/graphnetz/training.py
train_dgi
¶
train_dgi(
model: _DGILike,
data: Data,
epochs: int = 100,
lr: float = 0.001,
verbose: bool = False,
device: device | str | None = "auto",
) -> dict[str, list[float]]
Train a Deep Graph Infomax model (unsupervised).
Source code in src/graphnetz/training.py
train_link_prediction
¶
train_link_prediction(
model: _LinkPredLike,
train_data: Data,
val_data: Data,
test_data: Data,
epochs: int = 100,
lr: float = 0.01,
verbose: bool = False,
device: device | str | None = "auto",
) -> dict[str, list[float]]
Train a link predictor with binary cross-entropy on RandomLinkSplit.
The model is expected to expose encode(data) returning per-node
embeddings and decode(z, edge_label_index) returning per-edge scores
(see LinkPredWrapper).
Source code in src/graphnetz/training.py
train_relational_link_prediction
¶
train_relational_link_prediction(
model: _RelationalLinkPredLike,
train_data: Data,
val_data: Data,
test_data: Data,
epochs: int = 100,
lr: float = 0.01,
verbose: bool = False,
device: device | str | None = "auto",
) -> dict[str, list[float]]
Train a relational link predictor (DistMult) on knowledge graph triples.
The model is expected to expose encode(data) returning per-node
embeddings and decode(z, edge_index, edge_type) returning per-edge
scores (see graphnetz.models._adapters.RelationalLinkPredWrapper).