class_docstr: Input data for running an attack on seq2seq models.
  
  This includes only the data, and not configuration.
class_docstr_tok: ["Input","data","for","running","an","attack","on","seq2seq","models",".","This","includes","only","the","data",",","and","not","configuration","."]
docstr: Returns the shapes of variables that are not None.
docstr_tok: ["Returns","the","shapes","of","variables","that","are","not","None","."]
code: def __str__(self):
      """Returns the shapes of variables that are not None."""
      result = ["AttackInputData("]
  
      if self.vocab_size is not None and self.train_size is not None:
          result.append(
              "logits_train with shape (%d, num_sequences, num_tokens, %d)"
              % (self.train_size, self.vocab_size)
          )
          result.append(
              "labels_train with shape (%d, num_sequences, num_tokens, 1)"
              % self.train_size
          )
  
      if self.vocab_size is not None and self.test_size is not None:
          result.append(
              "logits_test with shape (%d, num_sequences, num_tokens, %d)"
              % (self.test_size, self.vocab_size)
          )
          result.append(
              "labels_test with shape (%d, num_sequences, num_tokens, 1)"
              % self.test_size
          )
  
      result.append(")")
      return "\n".join(result)
  
imports: import dataclasses
  from typing import Iterator, List, Optional, Tuple
  import numpy
  from scipy import stats
  import tensorflow
  from tensorflow_privacy.privacy.privacy_tests.membership_inference_attack import membership_inference_attack
  from tensorflow_privacy.privacy.privacy_tests.membership_inference_attack.data_structures import AttackInputData
  from tensorflow_privacy.privacy.privacy_tests.membership_inference_attack.data_structures import AttackResults
  from tensorflow_privacy.privacy.privacy_tests.membership_inference_attack.data_structures import AttackType
  from tensorflow_privacy.privacy.privacy_tests.membership_inference_attack.data_structures import PrivacyReportMetadata
label_desc: Use image node_id 2 for calling the Seq2SeqAttackInputData obj's underlying member method code with example usage: obj.__str__() and returns: str