Two-way pAUC — pAUCLoss (2w) + SOTAs

Optimizes two-way partial AUC — restricting both the FPR and TPR ranges. Suitable for medical screening where both false positives and false negatives must be tightly controlled.

Config

recipes/config_tpauc.yaml
dataset:
  name: cifar10
  eval_splits: [val, test]
  kwargs:
    imratio: 0.02

model:
  name: resnet18
  pretrained: false
  num_classes: 1
  in_channels: 3

metrics:
  - AUROC
metric_kwargs:
  - max_fpr: 0.3
    min_tpr: 0.7

training:
  project_name: libauc
  experiment_name: resnet18_tpauc_cifar10
  SEED: 2026
  epochs: 60
  batch_size: 128
  eval_batch_size: 256
  sampling_rate: 0.5
  num_workers: 0
  decay_epochs: [0.5, 0.75]
  loss: pAUCLoss
  loss_kwargs:
    mode: 2w
  optimizer: SOTAs
  output_path: ./output
  resume_from_checkpoint: false
  save_checkpoint_every: 5

automax:
  deterministic: true
  n_trials: 5
  SEED: 42
  name: resnet18_tpauc_cifar10
  output_directory: ./automax_output
  overwrite: true

Run

python -m src.auto_trainer \
  --config_file recipes/config_tpauc.yaml

Note

max_fpr: 0.3 and min_tpr: 0.7 define the rectangular region of the ROC curve being optimized — FPR ∈ [0, 0.3] and TPR ∈ [0.7, 1.0].