{"record":{"id":"6f42e64a9f5feb5a","repo":"tensorflow/models","slug":"user-positives-is-different-from-item-positiv","errorCode":null,"errorMessage":"User positives ({}) is different from item positives ({})","messagePattern":"User positives \\((.+?)\\) is different from item positives \\((.+?)\\)","errorType":"exception","errorClass":"ValueError","httpStatus":null,"severity":"error","filePath":"official/recommendation/data_pipeline.py","lineNumber":413,"sourceCode":"    self._maximum_number_epochs = maximum_number_epochs\n    self._num_users = num_users\n    self._num_items = num_items\n    self.user_map = user_map\n    self.item_map = item_map\n    self._train_pos_users = train_pos_users\n    self._train_pos_items = train_pos_items\n    self.train_batch_size = train_batch_size\n    self._num_train_negatives = num_train_negatives\n    self._batches_per_train_step = batches_per_train_step\n    self._eval_pos_users = eval_pos_users\n    self._eval_pos_items = eval_pos_items\n    self.eval_batch_size = eval_batch_size\n    self.num_train_epochs = num_train_epochs\n    self.create_data_offline = create_data_offline\n\n    # Training\n    if self._train_pos_users.shape != self._train_pos_items.shape:\n      raise ValueError(\n          \"User positives ({}) is different from item positives ({})\".format(\n              self._train_pos_users.shape, self._train_pos_items.shape))\n\n    (self._train_pos_count,) = self._train_pos_users.shape\n    self._elements_in_epoch = (1 + num_train_negatives) * self._train_pos_count\n    self.train_batches_per_epoch = self._count_batches(self._elements_in_epoch,\n                                                       train_batch_size,\n                                                       batches_per_train_step)\n\n    # Evaluation\n    if eval_batch_size % (1 + rconst.NUM_EVAL_NEGATIVES):\n      raise ValueError(\"Eval batch size {} is not divisible by {}\".format(\n          eval_batch_size, 1 + rconst.NUM_EVAL_NEGATIVES))\n    self._eval_users_per_batch = int(eval_batch_size //\n                                     (1 + rconst.NUM_EVAL_NEGATIVES))\n    self._eval_elements_in_epoch = num_users * (1 + rconst.NUM_EVAL_NEGATIVES)\n    self.eval_batches_per_epoch = self._count_batches(\n        self._eval_elements_in_epoch, eval_batch_size, batches_per_eval_step)","sourceCodeStart":395,"sourceCodeEnd":431,"githubUrl":"https://github.com/tensorflow/models/blob/e006f5f0d534913e49c1f1dae87364039fa607e2/official/recommendation/data_pipeline.py#L395-L431","documentation":"Error \"User positives ({}) is different from item positives ({})\" thrown in tensorflow/models.","triggerScenarios":"Thrown at official/recommendation/data_pipeline.py:413 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"}