code: def transform(x, *args, **kwargs):
      """Transform a continuous random variable to the unconstrained space.
  
      `transform` selects among a number of default transformations which
      depend on the support of the provided random variable:
  
      + $[0, 1]$ (e.g., Beta): Inverse of sigmoid.
      + $[0, \infty)$ (e.g., Gamma): Inverse of softplus.
      + Simplex (e.g., Dirichlet): Inverse of softmax-centered.
      + $(-\infty, \infty)$ (e.g., Normal, MultivariateNormalTriL): None.
  
      Args:
        x: RandomVariable.
          Continuous random variable to transform.
        *args, **kwargs:
          Arguments to overwrite when forming the `TransformedDistribution`.
          For example, manually specify the transformation by passing in
          the `bijector` argument.
  
      Returns:
        RandomVariable.
        A `TransformedDistribution` random variable, or the provided random
        variable if no transformation was applied.
  
      #### Examples
  
      ```python
      x = Gamma(1.0, 1.0)
      y = ed.transform(x)
      sess = tf.Session()
      sess.run(y)
      -2.2279539
      ```
      """
      if len(args) != 0 or kwargs.get("bijector", None) is not None:
          return TransformedDistribution(x, *args, **kwargs)
  
      try:
          support = x.support
      except AttributeError as e:
          msg = """'{}' object has no 'support'
               so cannot be transformed.""".format(
              type(x).__name__
          )
          raise AttributeError(msg)
  
      if support == "01":
          bij = tfb.Invert(tfb.Sigmoid())
          new_support = "real"
      elif support == "nonnegative":
          bij = tfb.Invert(tfb.Softplus())
          new_support = "real"
      elif support == "simplex":
          bij = tfb.Invert(tfb.SoftmaxCentered(event_ndims=1))
          new_support = "multivariate_real"
      elif support in ("real", "multivariate_real"):
          return x
      else:
          msg = "'transform' does not handle supports of type '{}'".format(
              support
          )
          raise ValueError(msg)
  
      new_x = TransformedDistribution(x, bij, *args, **kwargs)
      new_x.support = new_support
      return new_x
  
imports: from __future__ import absolute_import
  from __future__ import division
  from __future__ import print_function
  import numpy
  import six
  import tensorflow
  from copy import deepcopy
  from edward.models.random_variable import RandomVariable
  from edward.models.random_variables import TransformedDistribution
  from edward.models import PointMass
  from edward.util.graphs import random_variables
  from tensorflow.core.framework import attr_value_pb2
  from tensorflow.python.framework.ops import set_shapes_for_outputs
  from tensorflow.python.util import compat
label_desc: Use image node_id 15 for calling a global function with example usage: transform(x) and returns: new_x, TransformedDistribution, x