A quick closed-form solution for volumetric 3x3 matrices Eigen-Decomposition with Pytorch.
Project description
Volumetric Eigen-Decomposition of 3x3 matrices
A quick closed-form solution for volumetric 3x3 matrices Eigen-Decomposition with Pytorch. Solves Eigen-Decomposition of data with shape Bx9xDxHxW, where B is the batch size, 9 is the flattened 3x3 symmetric matrices, D is the depth, H is the Height, W is the width. The goal is to accelerate the Eigen-Decomposition of multiple (>500k) small matrices (3x3) on GPU with Pytorch using an analytical solution.
Install me
pip install torch-vectorized
How to use
from torchvectorized.vlinalg import vSymeig
# Random batch of volumetric 3x3 symmetric matrices of size 16x9x32x32x32
input = sym(torch.rand(16, 9, 32, 32, 32))
# Output eig_vals with size: 16x3x32x32x32 and eig_vecs with size 16,3,3,32,32,32
eig_vals, eig_vecs = vSymeig(input, eigen_vectors=True)
def sym(self, inputs):
# Ensure symmetry of randomly generated 3x3 matrix using (X + X.T) / 2.0
return (inputs + inputs[:, [0, 3, 6, 1, 4, 7, 2, 5, 8], :, :, :]) / 2.0
Contributing
How to contribute ?
- Create a branch by feature and/or bug fix
- Get the code
- Commit and push
- Create a pull request
Branch naming
Feature branch
feature/ [Short feature description] [Issue number]
Bug branch
fix/ [Short fix description] [Issue number]
Commits syntax:
Adding code:
+ Added [Short Description] [Issue Number]
Deleting code:
- Deleted [Short Description] [Issue Number]
Modifying code:
* Changed [Short Description] [Issue Number]
Merging code:
Y Merged [Short Description] [Issue Number]
Icons made by Freepik from www.flaticon.com is licensed by CC 3.0 BY
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.