docs: def get_transformed_feature_info(features, schema):
    """Returns information about the transformed features.
  
    Returns:
      Dict in the from
      {transformed_feature_name: {dtype: tf type, size: int or None}}. If the size
      is None, then the tensor is a sparse tensor.
    """
  
    info = collections.defaultdict(dict)
  
    for name, transform in six.iteritems(features):
      transform_name = transform['transform']
      source_column = transform['source_column']
  
      if transform_name == IDENTITY_TRANSFORM:
        schema_type = next(col['type'].lower() for col in schema if col['name'] == source_column)
        if schema_type == FLOAT_SCHEMA:
          info[name]['dtype'] = tf.float32
        elif schema_type == INTEGER_SCHEMA:
          info[name]['dtype'] = tf.int64
        else:
          raise ValueError('itentity should only be applied to integer or float'
                           'columns, but was used on %s' % name)
        info[name]['size'] = 1
      elif transform_name == SCALE_TRANSFORM:
        info[name]['dtype'] = tf.float32
        info[name]['size'] = 1
      elif transform_name == ONE_HOT_TRANSFORM:
        info[name]['dtype'] = tf.int64
        info[name]['size'] = 1
      elif transform_name == EMBEDDING_TRANSFROM:
        info[name]['dtype'] = tf.int64
        info[name]['size'] = 1
      elif transform_name == MULTI_HOT_TRANSFORM:
        info[name]['dtype'] = tf.int64
        info[name]['size'] = None
      elif transform_name == BOW_TRANSFORM or transform_name == TFIDF_TRANSFORM:
        info[name + '_ids']['dtype'] = tf.int64
        info[name + '_weights']['dtype'] = tf.float32
        info[name + '_ids']['size'] = None
        info[name + '_weights']['size'] = None
      elif transform_name == KEY_TRANSFORM:
        schema_type = next(col['type'].lower() for col in schema if col['name'] == source_column)
        if schema_type == FLOAT_SCHEMA:
          info[name]['dtype'] = tf.float32
        elif schema_type == INTEGER_SCHEMA:
          info[name]['dtype'] = tf.int64
        else:
          info[name]['dtype'] = tf.string
        info[name]['size'] = 1
      elif transform_name == TARGET_TRANSFORM:
        # If the input is a string, it gets converted to an int (id)
        schema_type = next(col['type'].lower() for col in schema if col['name'] == source_column)
        if schema_type in NUMERIC_SCHEMA:
          info[name]['dtype'] = tf.float32
        else:
          info[name]['dtype'] = tf.int64
        info[name]['size'] = 1
      elif transform_name == IMAGE_TRANSFORM:
        info[name]['dtype'] = tf.float32
        info[name]['size'] = IMAGE_BOTTLENECK_TENSOR_SIZE
      else:
        raise ValueError('Unknown transfrom %s' % transform_name)
  
    return info