{"record":{"id":"876c52634c200862","repo":"tensorflow/models","slug":"router-is-an-abstract-class-that-should-be-subclas","errorCode":null,"errorMessage":"Router is an abstract class that should be subclassed.","messagePattern":"Router is an abstract class that should be subclassed\\.","errorType":"exception","errorClass":"NotImplementedError","httpStatus":null,"severity":"error","filePath":"official/nlp/modeling/layers/moe.py","lineNumber":204,"sourceCode":"        each token and expert. Used for routing tokens to experts.\n      - <float32>[num_groups, tokens_per_group, num_experts] raw router logits.\n        Used for computing router z-loss.\n    \"\"\"\n    if apply_jitter and self.jitter_noise > 0:\n      inputs *= tf.random.uniform(\n          tf.shape(inputs),\n          minval=1.0 - self.jitter_noise,\n          maxval=1.0 + self.jitter_noise,\n          dtype=inputs.dtype)\n    # inputs <float>, router_logits <float32>\n    router_logits = self.router_weights(inputs)\n    router_probs = tf_keras.activations.softmax(router_logits, axis=-1)\n    return router_probs, router_logits\n\n  def _compute_routing_instructions(self, router_probs: tf.Tensor,\n                                    expert_capacity: int) -> RouterOutput:\n    \"\"\"Computes instructions for routing inputs to experts.\"\"\"\n    raise NotImplementedError(\n        \"Router is an abstract class that should be subclassed.\")\n\n\nclass MaskedRouter(Router):\n  \"\"\"Abstract base router class for masked matmul dispatch routers.\n\n  MaskedRouter(s) return RouterMask(s) containing a dispatch mask and combine\n  array for sending and receiving (via masked matmuls) inputs and outputs to and\n  from experts.\n\n  Routing using masked matmuls is generally faster than scatter-based routing on\n  TPUs.\n\n  Uses Keras add_loss() and add_metric() APIs.\n  \"\"\"\n\n  def _compute_routing_instructions(self, router_probs: tf.Tensor,\n                                    expert_capacity: int) -> RouterMask:","sourceCodeStart":186,"sourceCodeEnd":222,"githubUrl":"https://github.com/tensorflow/models/blob/e006f5f0d534913e49c1f1dae87364039fa607e2/official/nlp/modeling/layers/moe.py#L186-L222","documentation":"Error \"Router is an abstract class that should be subclassed.\" thrown in tensorflow/models.","triggerScenarios":"Thrown at official/nlp/modeling/layers/moe.py:204 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"}