code: def _get_transform_features_signature(model, tf_transform_output):
      """Returns a serving signature that applies tf.Transform to features."""
  
      # We need to track the layers in the model in order to save it.
      # TODO(b/162357359): Revise once the bug is resolved.
      model.tft_layer_eval = (
          tf_transform_output.transform_features_layer()
      )
  
      @tf.function(
          input_signature=[
              tf.TensorSpec(
                  shape=[None], dtype=tf.string, name="examples"
              )
          ]
      )
      def transform_features_fn(serialized_tf_example):
          """Returns the transformed_features to be fed as input to evaluator."""
          raw_feature_spec = tf_transform_output.raw_feature_spec()
          raw_features = tf.io.parse_example(
              serialized_tf_example, raw_feature_spec
          )
          transformed_features = model.tft_layer_eval(raw_features)
          logging.info(
              "eval_transformed_features = %s", transformed_features
          )
          return transformed_features
  
      return transform_features_fn
  
imports: import datetime
  import os
  from typing import List
  from absl import logging
  import keras_tuner
  import tensorflow
  from tensorflow import keras
  import tensorflow_transform
  import tfx.v1
  from tfx_bsl.public import tfxio
  from tensorflow_cloud.core import machine_config
  from tensorflow_cloud.tuner import tuner
  from tensorflow_metadata.proto.v0 import schema_pb2
label_desc: Use image node_id 3 for calling a global function with example usage: _get_transform_features_signature(model, tf_transform_output) and returns: transform_features_fn, transformed_features