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: Returns the training data generated from the last call to fit
  
  :return: If fit has been called, return the last data, labels, and backdoor labels used to train model
           otherwise return None
docstr_tok: ["Returns","the","training","data","generated","from","the","last","call","to","fit",":","return",":","If","fit","has","been","called",",","return","the","last","data",",","labels",",","and","backdoor","labels","used","to","train","model","otherwise","return","None"]
code: def get_training_data(
      self,
  ) -> Optional[
      Tuple[np.ndarray, Optional[np.ndarray], Optional[np.ndarray]]
  ]:
      """
      Returns the training data generated from the last call to fit
  
      :return: If fit has been called, return the last data, labels, and backdoor labels used to train model
               otherwise return None
      """
      if self.train_data is not None:
          return self.train_data, self.train_labels, self.is_backdoor
  
      return None
  
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 4 for calling the PoisoningAttackAdversarialEmbedding obj's underlying member method code with example usage: obj.get_training_data() and returns: None, self,  self,  self