torch_pinverse {torch} | R Documentation |
Pinverse
Description
Pinverse
Usage
torch_pinverse(self, rcond = 1e-15)
Arguments
self |
(Tensor) The input tensor of size |
rcond |
(float) A floating point value to determine the cutoff for small singular values. Default: 1e-15 |
pinverse(input, rcond=1e-15) -> Tensor
Calculates the pseudo-inverse (also known as the Moore-Penrose inverse) of a 2D tensor.
Please look at Moore-Penrose inverse
_ for more details
Note
This method is implemented using the Singular Value Decomposition.
The pseudo-inverse is not necessarily a continuous function in the elements of the matrix `[1]`_. Therefore, derivatives are not always existent, and exist for a constant rank only `[2]`_. However, this method is backprop-able due to the implementation by using SVD results, and could be unstable. Double-backward will also be unstable due to the usage of SVD internally. See `~torch.svd` for more details.
Examples
if (torch_is_installed()) {
input = torch_randn(c(3, 5))
input
torch_pinverse(input)
# Batched pinverse example
a = torch_randn(c(2,6,3))
b = torch_pinverse(a)
torch_matmul(b, a)
}
[Package torch version 0.13.0 Index]