spdlayers
Symmetric Positive Definite (SPD) enforcement layers for PyTorch. Regardless of the input, the output of these layers will always be a SPD tensor! The `Cholesky` layer uses a cholesky factorization to enforce SPD, and the `Eigen` layer uses an eigendecomposition to enforce SPD. Both layers take in some tensor of shape `[batch_size, input_shape]` and output a SPD tensor of shape`[batch_size, output_shape, output_shape]`. The relationship between input and output is defined by the following. ```python input_shape = sum([i for i in range(output_shape + 1)]) ``` The layers have no learnable parameters, and merely serve to transform a vector space to a SPD matrix space.