Shortcuts

torch.linalg.tensorinv

torch.linalg.tensorinv(A, ind=2, *, out=None) Tensor

Computes the multiplicative inverse of torch.tensordot().

If m is the product of the first ind dimensions of A and n is the product of the rest of the dimensions, this function expects m and n to be equal. If this is the case, it computes a tensor X such that tensordot(A, X, ind) is the identity matrix in dimension m. X will have the shape of A but with the first ind dimensions pushed back to the end

X.shape == A.shape[ind:] + A.shape[:ind]

Supports input of float, double, cfloat and cdouble dtypes.

Note

When A is a 2-dimensional tensor and ind= 1, this function computes the (multiplicative) inverse of A (see torch.linalg.inv()).

Note

Consider using torch.linalg.tensorsolve() if possible for multiplying a tensor on the left by the tensor inverse, as:

linalg.tensorsolve(A, B) == torch.tensordot(linalg.tensorinv(A), B)  # When B is a tensor with shape A.shape[:B.ndim]

It is always preferred to use tensorsolve() when possible, as it is faster and more numerically stable than computing the pseudoinverse explicitly.

See also

torch.linalg.tensorsolve() computes torch.tensordot(tensorinv(A), B).

Parameters
  • A (Tensor) – tensor to invert. Its shape must satisfy prod(A.shape[:ind]) == prod(A.shape[ind:]).

  • ind (int) – index at which to compute the inverse of torch.tensordot(). Default: 2.

Keyword Arguments

out (Tensor, optional) – output tensor. Ignored if None. Default: None.

Raises

RuntimeError – if the reshaped A is not invertible or the product of the first ind dimensions is not equal to the product of the rest.

Examples:

>>> A = torch.eye(4 * 6).reshape((4, 6, 8, 3))
>>> Ainv = torch.linalg.tensorinv(A, ind=2)
>>> Ainv.shape
torch.Size([8, 3, 4, 6])
>>> B = torch.randn(4, 6)
>>> torch.allclose(torch.tensordot(Ainv, B), torch.linalg.tensorsolve(A, B))
True

>>> A = torch.randn(4, 4)
>>> Atensorinv = torch.linalg.tensorinv(A, ind=1)
>>> Ainv = torch.linalg.inv(A)
>>> torch.allclose(Atensorinv, Ainv)
True

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
pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy