[ADD] Method from_mat_inner
to structured matrix interface
#80
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Adds an interface function
from_mat_inner
which extracts a structured matrix fromX @ X.T
whereX
is an arbitrary 2d tensor. This addresses f-dangel/sirfshampoo#24.This function is useful for speeding up
SIRFShampoo
's update which takes a matrix viewG
of the gradient, then extracts a structured matrix ofG @ G.T
. So far, we were mimicking this computation by creating a structured matrixI
which represents the identity matrix, then callI.from_inner(G)
which computes the structured matrix ofI.T @ G @ G.T @ I
, effectively multiplying the identity matrix ontoG
before extracting the structured matrix. The new functionfrom_mat_inner
removes the unnecessary multiplication with identity.