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: Validates the inputs.
docstr_tok: ["Validates","the","inputs","."]
code: def validate(self):
      """Validates the inputs."""
  
      if (self.logits_train is None) != (self.logits_test is None):
          raise ValueError(
              "logits_train and logits_test should both be either set or unset"
          )
  
      if (self.labels_train is None) != (self.labels_test is None):
          raise ValueError(
              "labels_train and labels_test should both be either set or unset"
          )
  
      if self.logits_train is None or self.labels_train is None:
          raise ValueError(
              "Labels, logits of training, test sets should all be set"
          )
  
      if (
          self.vocab_size is None
          or self.train_size is None
          or self.test_size is None
      ):
          raise ValueError(
              "vocab_size, train_size, test_size should all be set"
          )
  
      if self.vocab_size is not None and not int:
          raise ValueError("vocab_size should be of integer type")
  
      if self.train_size is not None and not int:
          raise ValueError("train_size should be of integer type")
  
      if self.test_size is not None and not int:
          raise ValueError("test_size should be of integer type")
  
      _is_iterator(self.logits_train, "logits_train")
      _is_iterator(self.logits_test, "logits_test")
      _is_iterator(self.labels_train, "labels_train")
      _is_iterator(self.labels_test, "labels_test")
  
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 1 for calling the Seq2SeqAttackInputData obj's underlying member method code with example usage: obj.validate() without return types