Table of Contents
Shortcuts

# torch.cholesky

torch.cholesky(input, upper=False, *, out=None) → Tensor

  Computes the Cholesky decomposition of a symmetric positive-definite matrix A A A or for batches of symmetric positive-definite matrices.

  If `upper` is `True`, the returned matrix `U` is upper-triangular, and the decomposition has the form:

  A=U T U A = U^TU A=U T U

  If `upper` is `False`, the returned matrix `L` is lower-triangular, and the decomposition has the form:

  A=L L T A = LL^T A=L L T

  If `upper` is `True`, and A A A is a batch of symmetric positive-definite matrices, then the returned tensor will be composed of upper-triangular Cholesky factors of each of the individual matrices. Similarly, when `upper` is `False`, the returned tensor will be composed of lower-triangular Cholesky factors of each of the individual matrices.

  Warning

  `torch.cholesky()` is deprecated in favor of `torch.linalg.cholesky()` and will be removed in a future PyTorch release.

  `L = torch.cholesky(A)` should be replaced with

      L = torch.linalg.cholesky(A)

  `U = torch.cholesky(A, upper=True)` should be replaced with

      U = torch.linalg.cholesky(A).mH

  This transform will produce equivalent results for all valid (symmetric positive definite) inputs.

  Parameters:

    - input (Tensor) – the input tensor A A A of size (∗,n,n)(*, n, n)(∗,n,n) where * is zero or more batch dimensions consisting of symmetric positive-definite matrices.

    - upper (bool, optional) – flag that indicates whether to return a upper or lower triangular matrix. Default: `False`

  Keyword Arguments:

    out (Tensor, optional) – the output matrix

  Example:

      >>> a = torch.randn(3, 3)
      >>> a = a @ a.mT + 1e-3 # make symmetric positive-definite
      >>> l = torch.cholesky(a)
      >>> a
      tensor([[ 2.4112, -0.7486,  1.4551],
              [-0.7486,  1.3544,  0.1294],
              [ 1.4551,  0.1294,  1.6724]])
      >>> l
      tensor([[ 1.5528,  0.0000,  0.0000],
              [-0.4821,  1.0592,  0.0000],
              [ 0.9371,  0.5487,  0.7023]])
      >>> l @ l.mT
      tensor([[ 2.4112, -0.7486,  1.4551],
              [-0.7486,  1.3544,  0.1294],
              [ 1.4551,  0.1294,  1.6724]])
      >>> a = torch.randn(3, 2, 2) # Example for batched input
      >>> a = a @ a.mT + 1e-03 # make symmetric positive-definite
      >>> l = torch.cholesky(a)
      >>> z = l @ l.mT
      >>> torch.dist(z, a)
      tensor(2.3842e-07)

## Docs

Access comprehensive developer documentation for PyTorch

View Docs

## Tutorials

Get in-depth tutorials for beginners and advanced developers

View Tutorials

## Resources

Find development resources and get your questions answered

View Resources

To analyze traffic and optimize your experience, we serve cookies on this site. By clicking or navigating, you agree to allow our usage of cookies. As the current maintainers of this site, Facebook’s Cookies Policy applies. Learn more, including about available controls: Cookies Policy.