Example:
  x0 = torch.cat([torch.range(1, 10), torch.range(1, 10)], dim=0)
  x = torch.cat([x0, x0], dim=0)
  t0 = CatTransform([ExpTransform(), identity_transform], dim=0, lengths=[10, 10])
  t = CatTransform([t0, t0], dim=0, lengths=[20, 20])
  y = t(x)

class torch.distributions.transforms.ComposeTransform(parts, cache_size=0)
Composes multiple transforms in a chain. The transforms being
   composed are responsible for caching.
Parameters:
      * parts (list of "Transform") -- A list of transforms to
        compose.
  * **cache_size** (*int*) -- Size of cache. If zero, no caching
    is done. If one, the latest single value is cached. Only 0 and
    1 are supported.

class torch.distributions.transforms.CorrCholeskyTransform(cache_size=0)
Transforms an uncontrained real vector x with length D*(D-1)/2 into
   the Cholesky factor of a D-dimension correlation matrix. This
   Cholesky factor is a lower triangular matrix with positive