code: def cluster_model(model, train_images, train_labels):
      """Apply the clustering wrapper, compile and train the model."""
      clustering_params = {
          "number_of_clusters": 16,
          "cluster_centroids_init": tfmot_cluster_config.CentroidInitialization.DENSITY_BASED,
      }
      model = tfmot_cluster.cluster_weights(model, **clustering_params)
      model.summary()
      compile_and_fit(model, train_images, train_labels, 1)
  
      return model
  
file_path: model-optimization/tensorflow_model_optimization/python/examples/cluster_preserve_qat/keras/mnist_cnn.py
imports: from __future__ import print_function
  import os
  from absl import app
  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.quantization.keras import quantize
  from tensorflow_model_optimization.python.core.quantization.keras.collab_opts.cluster_preserve import default_8bit_cluster_preserve_quantize_scheme
  from tensorflow_model_optimization.python.core.quantization.keras.collab_opts.cluster_preserve.cluster_utils import strip_clustering_cqat
label_desc: Use image node_id 4 for calling a global function with example usage: cluster_model(model, train_images, train_labels) and returns: model