GOOD.ood_algorithms.algorithms.GroupDRO
Implementation of the GroupDRO algorithm from “Distributionally Robust Neural Networks for Group Shifts: On the Importance of Regularization for Worst-Case Generalization” paper
Classes
|
Implementation of the GroupDRO algorithm from "Distributionally Robust Neural Networks for Group Shifts: On the Importance of Regularization for Worst-Case Generalization" paper |
- class GOOD.ood_algorithms.algorithms.GroupDRO.GroupDRO(config: Union[CommonArgs, Munch])[source]
Bases:
BaseOODAlg
Implementation of the GroupDRO algorithm from “Distributionally Robust Neural Networks for Group Shifts: On the Importance of Regularization for Worst-Case Generalization” paper
- Args:
config (Union[CommonArgs, Munch]): munchified dictionary of args (
config.device
,config.dataset.num_envs
,config.ood.ood_param
)
- loss_postprocess(loss: Tensor, data: Batch, mask: Tensor, config: Union[CommonArgs, Munch], **kwargs) Tensor [source]
Process loss based on GroupDRO algorithm
- Parameters
loss (Tensor) – base loss between model predictions and input labels
data (Batch) – input data
mask (Tensor) – NAN masks for data formats
config (Union[CommonArgs, Munch]) – munchified dictionary of args (
config.device
,config.dataset.num_envs
,config.ood.ood_param
)
config = munchify({device: torch.device('cuda'), dataset: {num_envs: int(10)}, ood: {ood_param: float(0.1)} })
- Returns (Tensor):
loss based on GroupDRO algorithm