ShiftedBronzes / OpenOOD /openood /postprocessors /ebo_postprocessor.py
AnonymousUser20's picture
Upload 1314 files
178d33b verified
Raw
History Blame Contribute Delete
919 Bytes
from typing import Any
import torch
import torch.nn as nn
from .base_postprocessor import BasePostprocessor
class EBOPostprocessor(BasePostprocessor):
def __init__(self, config):
super().__init__(config)
self.args = self.config.postprocessor.postprocessor_args
self.temperature = self.args.temperature
self.args_dict = self.config.postprocessor.postprocessor_sweep
@torch.no_grad()
def postprocess(self, net: nn.Module, data: Any):
output = net(data)
score = torch.softmax(output, dim=1)
_, pred = torch.max(score, dim=1)
conf = self.temperature * torch.logsumexp(output / self.temperature,
dim=1)
return pred, conf
def set_hyperparam(self, hyperparam:list):
self.temperature =hyperparam[0]
def get_hyperparam(self):
return self.temperature