{"record":{"id":"afa25369653578d5","repo":"tensorflow/models","slug":"must-specify-either-tfds-name-and-tfds-split-o","errorCode":null,"errorMessage":"Must specify either `tfds_name` and `tfds_split` or `input_path`.","messagePattern":"Must specify either `tfds_name` and `tfds_split` or `input_path`\\.","errorType":"exception","errorClass":"ValueError","httpStatus":null,"severity":"error","filePath":"official/nlp/data/dual_encoder_dataloader.py","lineNumber":60,"sourceCode":"  vocab_file: str = ''\n  lower_case: bool = True\n  # ...or load preprocessing from a SavedModel at this location.\n  preprocessing_hub_module_url: str = ''\n\n  left_text_fields: Tuple[str] = ('left_input',)\n  right_text_fields: Tuple[str] = ('right_input',)\n  is_training: bool = True\n  seq_length: int = 128\n  file_type: str = 'tfrecord'\n\n\n@data_loader_factory.register_data_loader_cls(DualEncoderDataConfig)\nclass DualEncoderDataLoader(data_loader.DataLoader):\n  \"\"\"A class to load dataset for dual encoder task (tasks/dual_encoder).\"\"\"\n\n  def __init__(self, params):\n    if bool(params.tfds_name) == bool(params.input_path):\n      raise ValueError('Must specify either `tfds_name` and `tfds_split` '\n                       'or `input_path`.')\n    if bool(params.vocab_file) == bool(params.preprocessing_hub_module_url):\n      raise ValueError('Must specify exactly one of vocab_file (with matching '\n                       'lower_case flag) or preprocessing_hub_module_url.')\n    self._params = params\n    self._seq_length = params.seq_length\n    self._left_text_fields = params.left_text_fields\n    self._right_text_fields = params.right_text_fields\n\n    if params.preprocessing_hub_module_url:\n      preprocessing_hub_module = hub.load(params.preprocessing_hub_module_url)\n      self._tokenizer = preprocessing_hub_module.tokenize\n      self._pack_inputs = functools.partial(\n          preprocessing_hub_module.bert_pack_inputs,\n          seq_length=params.seq_length)\n    else:\n      self._tokenizer = layers.BertTokenizer(\n          vocab_file=params.vocab_file, lower_case=params.lower_case)","sourceCodeStart":42,"sourceCodeEnd":78,"githubUrl":"https://github.com/tensorflow/models/blob/e006f5f0d534913e49c1f1dae87364039fa607e2/official/nlp/data/dual_encoder_dataloader.py#L42-L78","documentation":"Error \"Must specify either `tfds_name` and `tfds_split` or `input_path`.\" thrown in tensorflow/models.","triggerScenarios":"Thrown at official/nlp/data/dual_encoder_dataloader.py:60 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":[],"exampleFix":null,"handlingStrategy":null,"validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"e006f5f0d534913e49c1f1dae87364039fa607e2","analyzedAt":"2026-08-24T14:09:15.576Z","schemaVersion":2},"datasetVersion":"2026-08-24T17:17:21.512Z"}