{"record":{"id":"a5c95a31bbbe09d3","repo":"tensorflow/models","slug":"layer-must-be-a-tf-keras-layer-layer-observed","errorCode":null,"errorMessage":"`layer` must be a `tf_keras.layer.Layer`. Observed `{}`","messagePattern":"`layer` must be a `tf_keras\\.layer\\.Layer`\\. Observed `(.+?)`","errorType":"exception","errorClass":"ValueError","httpStatus":null,"severity":"error","filePath":"official/nlp/modeling/layers/spectral_normalization.py","lineNumber":75,"sourceCode":"        value estimate.\n      aggregation: (tf.VariableAggregation) Indicates how a distributed variable\n        will be aggregated. Accepted values are constants defined in the class\n        tf.VariableAggregation.\n      inhere_layer_name: (bool) Whether to inhere the name of the input layer.\n      **kwargs: (dict) Other keyword arguments for the layers.Wrapper class.\n    \"\"\"\n    self.iteration = iteration\n    self.do_power_iteration = training\n    self.aggregation = aggregation\n    self.norm_multiplier = norm_multiplier\n\n    # Set layer name.\n    wrapper_name = kwargs.pop('name', None)\n    if inhere_layer_name:\n      wrapper_name = layer.name\n\n    if not isinstance(layer, tf_keras.layers.Layer):\n      raise ValueError('`layer` must be a `tf_keras.layer.Layer`. '\n                       'Observed `{}`'.format(layer))\n    super().__init__(\n        layer, name=wrapper_name, **kwargs)\n\n  def build(self, input_shape):  # pytype: disable=signature-mismatch  # overriding-parameter-count-checks\n    super().build(input_shape)\n    self.layer.kernel._aggregation = self.aggregation  # pylint: disable=protected-access\n    self._dtype = self.layer.kernel.dtype\n\n    self.w = self.layer.kernel\n    self.w_shape = self.w.shape.as_list()\n\n    self.v = self.add_weight(\n        shape=(1, np.prod(self.w_shape[:-1])),\n        initializer=tf.initializers.random_normal(),\n        trainable=False,\n        name='v',\n        dtype=self.dtype,","sourceCodeStart":57,"sourceCodeEnd":93,"githubUrl":"https://github.com/tensorflow/models/blob/e006f5f0d534913e49c1f1dae87364039fa607e2/official/nlp/modeling/layers/spectral_normalization.py#L57-L93","documentation":"Error \"`layer` must be a `tf_keras.layer.Layer`. Observed `{}`\" thrown in tensorflow/models.","triggerScenarios":"Thrown at official/nlp/modeling/layers/spectral_normalization.py:75 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"}