def __call__( self, inputs: ep.Tensor, labels: ep.Tensor, perturbed: ep.Tensor, logits: ep.Tensor, ) -> ep.Tensor: classes = logits.argmax(axis=-1) return classes == self.target_classes
def targeted_is_adv(logits: ep.Tensor, target_classes: ep.Tensor, confidence) -> ep.Tensor: logits = logits - ep.onehot_like(logits, target_classes, value=confidence) classes = logits.argmax(axis=-1) return classes == target_classes
def untargeted_is_adv(logits: ep.Tensor, labels: ep.Tensor, confidence) -> ep.Tensor: logits = logits + ep.onehot_like(logits, labels, value=confidence) classes = logits.argmax(axis=-1) return classes != labels
def misclassification( inputs: ep.Tensor, labels: ep.Tensor, perturbed: ep.Tensor, logits: ep.Tensor ) -> ep.Tensor: classes = logits.argmax(axis=-1) return classes != labels