code: def get_serialized_info(self):
      
      # Flatten tf-example features dict
      # Use NonMutableDict to ensure there is no collision between features keys
      features_dict = utils.NonMutableDict()
      for feature_key, feature in self._feature_dict.items():
        serialized_info = feature.get_serialized_info()
  
        # Features can be either containers (dict of other features) or plain
        # features (ex: single tensor). Plain features have a None
        # feature.features_keys
        if not feature.serialized_keys:
          features_dict[feature_key] = serialized_info
        else:
          # Sanity check which should always be True, as feature.serialized_keys
          # is computed using feature.get_serialized_info()
          _assert_keys_match(serialized_info.keys(), feature.serialized_keys)
          features_dict.update({
              posixpath.join(feature_key, k): v
              for k, v in serialized_info.items()
          })
  
      return features_dict
docs: See base class for details.