class_docstr: Implementation of Adversarial Embedding attack by Tan, Shokri (2019).
  "Bypassing Backdoor Detection Algorithms in Deep Learning"
  
  This attack trains a classifier with an additional discriminator and loss function that aims
  to create non-differentiable latent representations between backdoored and benign examples.
  
  | Paper link: https://arxiv.org/abs/1905.13409
class_docstr_tok: ["Implementation","of","Adversarial","Embedding","attack","by","Tan",",","Shokri","(","2019",")",".","``","Bypassing","Backdoor","Detection","Algorithms","in","Deep","Learning","''","This","attack","trains","a","classifier","with","an","additional","discriminator","and","loss","function","that","aims","to","create","non-differentiable","latent","representations","between","backdoored","and","benign","examples",".","|","Paper","link",":","https",":","\/\/arxiv.org\/abs\/1905.13409"]
docstr: Calls perturbation function on input x and target labels y
  
  :param x: An array with the points that initialize attack points.
  :param y: The target labels for the attack.
  :param broadcast: whether or not to broadcast single target label
  :return: An tuple holding the `(poisoning_examples, poisoning_labels)`.
docstr_tok: ["Calls","perturbation","function","on","input","x","and","target","labels","y",":","param","x",":","An","array","with","the","points","that","initialize","attack","points",".",":","param","y",":","The","target","labels","for","the","attack",".",":","param","broadcast",":","whether","or","not","to","broadcast","single","target","label",":","return",":","An","tuple","holding","the","`","(","poisoning_examples",",","poisoning_labels",")","`","."]
code: def poison(  # pylint: disable=W0221
      self,
      x: np.ndarray,
      y: Optional[np.ndarray] = None,
      broadcast=False,
      **kwargs,
  ) -> Tuple[np.ndarray, np.ndarray]:
      """
      Calls perturbation function on input x and target labels y
  
      :param x: An array with the points that initialize attack points.
      :param y: The target labels for the attack.
      :param broadcast: whether or not to broadcast single target label
      :return: An tuple holding the `(poisoning_examples, poisoning_labels)`.
      """
      return self.backdoor.poison(x, y, broadcast=broadcast)
  
file_path: adversarial-robustness-toolbox/art/attacks/poisoning/adversarial_embedding_attack.py
imports: from __future__ import absolute_import, division, print_function, unicode_literals
  import logging
  from typing import Tuple, Union, List, Optional, TYPE_CHECKING
  import numpy
  from art.attacks.attack import PoisoningAttackTransformer
  from art.attacks.poisoning.backdoor_attack import PoisoningAttackBackdoor
  from art.estimators.classification.keras import KerasClassifier
label_desc: Use image node_id 2 for calling the PoisoningAttackAdversarialEmbedding obj's underlying member method code with example usage: obj.poison(x, y, broadcast) and returns: self