Loss Spectral Clustering#
spectral_clustering
#
| CLASS | DESCRIPTION |
|---|---|
SpectralClusteringLoss |
Spectral clustering loss for graph partitioning. |
| FUNCTION | DESCRIPTION |
|---|---|
spectral_clustering_loss |
Compute spectral clustering loss. |
Classes#
SpectralClusteringLoss(reduce: Literal['ncut', 'rcut', 'trace'] = 'ncut', sign: float = 1.0, eps: float = torch.finfo(torch.float32).eps, context_prefix: str | None = None, **kwargs)
#
Bases: Loss
Spectral clustering loss for graph partitioning.
| PARAMETER | DESCRIPTION |
|---|---|
reduce
|
Reduction method.
TYPE:
|
sign
|
Loss sign multiplier. Use -1.0 for maximization objectives.
TYPE:
|
eps
|
Small value for numerical stability.
TYPE:
|
Examples:
>>> loss_fn = SpectralClusteringLoss(reduce="ncut", sign=1.0)
>>> # Laplacian matrix
>>> L = torch.tensor([[2.0, -1.0, -1.0], [-1.0, 2.0, -1.0], [-1.0, -1.0, 2.0]])
>>> # Embedding matrix
>>> H = torch.randn(3, 2)
>>> context = {"K": L, "Z": H}
>>> loss = loss_fn(context)
| METHOD | DESCRIPTION |
|---|---|
forward |
Compute spectral clustering loss. |
Source code in spectre/loss/spectral_clustering.py
Functions#
forward(context: dict, **kwargs) -> torch.Tensor
#
Compute spectral clustering loss.
Arguments
**kwargs: dict Additional keyword arguments.
| RETURNS | DESCRIPTION |
|---|---|
loss
|
Spectral clustering loss.
TYPE:
|
Source code in spectre/loss/spectral_clustering.py
Functions#
spectral_clustering_loss(K: torch.Tensor, Z: torch.Tensor, reduce: Literal['ncut', 'rcut', 'trace'] = 'ncut', sign: float = 1.0, eps: float = torch.finfo(torch.float32).eps) -> torch.Tensor
#
Compute spectral clustering loss.
| PARAMETER | DESCRIPTION |
|---|---|
K
|
Graph Laplacian matrix (n_nodes, n_nodes).
TYPE:
|
Z
|
Node Z matrix (n_nodes, n_clusters).
TYPE:
|
reduce
|
Reduction method.
TYPE:
|
sign
|
Loss sign multiplier.
TYPE:
|
eps
|
Small value for numerical stability.
TYPE:
|
| RETURNS | DESCRIPTION |
|---|---|
Tensor
|
Computed spectral clustering loss. |