{"record":{"id":"18f41b2894e2dde9","repo":"keras-team/keras","slug":"unsupported-data-type-type-data","errorCode":null,"errorMessage":"Unsupported data type: {type(data)}","messagePattern":"Unsupported data type: (.+?)","errorType":"exception","errorClass":"NotImplementedError","httpStatus":null,"severity":"error","filePath":"keras/src/layers/preprocessing/normalization.py","lineNumber":409,"sourceCode":"                batch_weight = float(batch_count) / total_count\n                existing_weight = 1.0 - batch_weight\n                new_total_mean = (\n                    total_mean * existing_weight + batch_mean * batch_weight\n                )\n                # The variance is computed using the lack-of-fit sum of squares\n                # formula (see\n                # https://en.wikipedia.org/wiki/Lack-of-fit_sum_of_squares).\n                total_var = (\n                    total_var + (total_mean - new_total_mean) ** 2\n                ) * existing_weight + (\n                    batch_var + (batch_mean - new_total_mean) ** 2\n                ) * batch_weight\n                total_mean = new_total_mean\n                progbar.update(i + 1)\n\n            progbar.update(steps if steps is not None else i + 1, finalize=True)\n        else:\n            raise NotImplementedError(f\"Unsupported data type: {type(data)}\")\n\n        self.adapt_mean.assign(total_mean)\n        self.adapt_variance.assign(total_var)\n        self.finalize_state()\n\n    def finalize_state(self):\n        if self.input_mean is not None or not self.built:\n            return\n\n        # In the adapt case, we make constant tensors for mean and variance with\n        # proper broadcast shape and dtype each time `finalize_state` is called.\n        self.mean = ops.reshape(self.adapt_mean, self._broadcast_shape)\n        self.mean = ops.cast(self.mean, self.compute_dtype)\n        self.variance = ops.reshape(self.adapt_variance, self._broadcast_shape)\n        self.variance = ops.cast(self.variance, self.compute_dtype)\n\n    def call(self, inputs):\n        # This layer can be called in tf.data","sourceCodeStart":391,"sourceCodeEnd":427,"githubUrl":"https://github.com/keras-team/keras/blob/7a34a03db60bf60042242d6a556fc3be119046a5/keras/src/layers/preprocessing/normalization.py#L391-L427","documentation":"Error \"Unsupported data type: {type(data)}\" thrown in keras-team/keras.","triggerScenarios":"Thrown at keras/src/layers/preprocessing/normalization.py:409 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":"7a34a03db60bf60042242d6a556fc3be119046a5","analyzedAt":"2026-08-25T21:25:25.994Z","schemaVersion":2},"datasetVersion":"2026-08-26T02:17:13.382Z"}