Out-of-Distribution Detection#

The OOD module provides methods for detecting when a model encounters data that is significantly different from its training distribution.

Base Class#

OODDetector(model)

Abstract base class for out-of-distribution (OOD) detection methods.

Score-based Methods#

MSP(model)

Maximum-Softmax-Probability (Hendrycks & Gimpel, 2017).

MaxLogit(model)

MaxLogit OOD detection (Hendrycks et al., 2019).

Energy(model[, temperature])

Energy-based score (Liu et al., NeurIPS 2020).

ODIN(model[, temperature, epsilon])

ODIN: Out-of-Distribution detector for Neural Networks (Liang et al., ICLR 2018).

Distance-based Methods#

Mahalanobis(model[, layer_name])

Feature-space Mahalanobis (Lee et al., NeurIPS 2018).

KNN(model[, k, layer_name])

KNN-based OOD detection (Sun et al., NeurIPS 2022).

Training Methods#

mixup_data(x, y[, alpha])

Apply mixup data augmentation.

mixup_criterion(criterion, pred, y_a, y_b, lam)

Compute mixup loss.

OutlierExposureLoss([lambda_oe])

Outlier Exposure (OE) for improved OOD detection.

EnergyRegularizedLoss([lambda_energy, margin])

Energy-based regularization for OOD detection.

CutMix([alpha])

CutMix augmentation for improved robustness and OOD detection.

Metrics#

auroc(id_scores, ood_scores)

Compute AUROC for OOD detection.

fpr_at_tpr(id_scores, ood_scores[, tpr])

Compute False Positive Rate at a target True Positive Rate.

detection_accuracy(id_scores, ood_scores[, ...])

Compute detection accuracy at a given ID acceptance-rate threshold.

Visualization#

plot_roc(id_scores, ood_scores[, label, ax])

Plot ROC curve for OOD detection.

score_hist(id_scores, ood_scores[, ax, bins])

Plot histogram of OOD scores for ID and OOD samples.

Utilities#

compute_threshold_at_tpr(id_scores[, target_tpr])

Compute OOD score threshold that accepts target_tpr fraction of ID samples.

get_ood_predictions(scores, threshold)

Get binary OOD predictions based on threshold.

extract_features(model, data_loader[, ...])

Extract features from a specific layer of the model.