Open runame opened 2 months ago
Changes Missing Coverage | Covered Lines | Changed/Added Lines | % | ||
---|---|---|---|---|---|
curvlinops/inverse.py | 36 | 37 | 97.3% | ||
curvlinops/kfac.py | 171 | 173 | 98.84% | ||
<!-- | Total: | 207 | 210 | 98.57% | --> |
Files with Coverage Reduction | New Missed Lines | % | ||
---|---|---|---|---|
curvlinops/kfac.py | 2 | 93.71% | ||
<!-- | Total: | 2 | --> |
Totals | |
---|---|
Change from base Build 10408891176: | 0.5% |
Covered Lines: | 1449 |
Relevant Lines: | 1619 |
@f-dangel One thing that is not tested and that could be wrong is the per-example gradient computation when there is weight sharing.
Will continue this PR in ~2 weeks.
Implements EKFAC (and its inverse) support (resolves #116).
I think we should at some point refactor
KFACLinearOperator
andKFACInverseLinearOperator
to inherit fromKroneckerProductLinearOperator
andEigendecomposedKroneckerProductLinearOperator
(or similar) classes sincetorch_matmat
and other methods can be shared. Also, currentlyKFACInverseLinearOperator
doesn't support trace, det, etc. properties which can also be shared. I created #126 for this.