I have a tall rectangular matrix A of shape m by n, where m >> n, and it has a rank r such that r <= n.

I want to extract the set of r columns from A that are linearly independent, is there an implemented function in Pytorch that does this?

One way to do this is to perform a rank factorization algorithm, and I want to know if such an algorithm is implemented in Pytorch, because it will be more efficient than implementing it by hand, and support back-propagation.

I tried using it, it still returns a matrix that has the same dimension as my input matrix A, but that has rank q, specified as the parameter to the function.

This is not what I’m looking for, I’m looking for removing the linearly dependant column from matrix A, so I end up with a matrix that has the dimension m by r, that is full rank!

Basically, I’m looking for matrix C in this paragraph, I hope this made my question clear!