class_docstr: Integration tests for clustering.
docstr: Verifies that training a clustered model does not destroy the clusters.
docstr_tok: ["Verifies","that","training","a","clustered","model","does","not","destroy","the","clusters","."]
code: def testValuesRemainClusteredAfterTraining(self):
      """Verifies that training a clustered model does not destroy the clusters."""
      original_model = keras.Sequential(
          [
              layers.Dense(5, input_shape=(5,)),
              layers.Dense(5),
          ]
      )
  
      clustered_model = cluster.cluster_weights(
          original_model, **self.params
      )
  
      clustered_model.compile(
          loss=keras.losses.categorical_crossentropy,
          optimizer="adam",
          metrics=["accuracy"],
      )
  
      clustered_model.fit(x=self.dataset_generator(), steps_per_epoch=1)
      stripped_model = cluster.strip_clustering(clustered_model)
      weights_as_list = (
          stripped_model.get_weights()[0]
          .reshape(
              -1,
          )
          .tolist()
      )
      unique_weights = set(weights_as_list)
      self.assertLessEqual(
          len(unique_weights), self.params["number_of_clusters"]
      )
  
imports: import os
  import tempfile
  from absl.testing import parameterized
  import numpy
  import tensorflow
  from tensorflow_model_optimization.python.core.clustering.keras import cluster
  from tensorflow_model_optimization.python.core.clustering.keras import cluster_config
  from tensorflow_model_optimization.python.core.clustering.keras.experimental import cluster
label_desc: Use image node_id 9 for calling the ClusterIntegrationTest obj's underlying member method code with example usage: obj.testValuesRemainClusteredAfterTraining() without return types