pgcuts.losses
Loss functions for probabilistic graph cut optimization.
PRCut losses
- class pgcuts.losses.PRCutGradLoss(*args, **kwargs)[source]
PRCut loss with analytical gradient.
Uses the analytical gradient to construct a surrogate loss for backpropagation.
- class pgcuts.losses.PRCutBatchLoss(num_clusters, gamma)[source]
PRCut batch estimate with EMA tracking.
Maintains running estimate of cluster probabilities.
H-RCut loss
- class pgcuts.losses.HyCutLoss(m, b=1.0, c=2.0, ema_decay=0.9)[source]
Hypergeometric envelope loss for graph cuts.
Uses 2F1(-m, b; c; z) as an upper bound on the expected graph cut.
RatioCut / NCut losses
- class pgcuts.losses.pncut.RatioCutLoss(n, ema_decay=0.0)[source]
Probabilistic RatioCut with hyp envelope.
H_l = 2F1(-m, 1; 2; alpha_bar_l).
- class pgcuts.losses.pncut.NCutLoss(degrees, num_bins=16, binning='equal', ema_decay=0.0)[source]
Probabilistic NCut with Holder-binned envelope.
Phi varies per vertex, unlike RatioCut.
Binning utilities
- pgcuts.losses.pncut.equal_size_bins(degrees, num_bins)[source]
Partition vertices into equal-size bins.
- pgcuts.losses.pncut.log_kmeans_bins(degrees, num_bins)[source]
Partition vertices via K-Means on log-degrees.