-
Notifications
You must be signed in to change notification settings - Fork 29
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Add KernelLinearOperator, deprecate KeOpsLinearOperator (#62)
* Add KernelLinearOperator, deprecate KeOpsLinearOperator KeOpsLinearOperator does not correctly backpropagate gradients if the covar_func closes over parameters. KernelLinearOperator corrects for this, and is set up to replace LazyEvaluatedKernelTensor in GPyTorch down the line. * Fix KeOpsLinearOperator deprecation * Allow for kernels with reduced batches and multiple outputs per input * LinearOperator kwargs can be differentiated through Previously, only positional args were added to the LinearOperator representation, and so only positional args would receive gradients from _bilinear_derivative. This commit also adds Tensor/LinearOperator kwargs to the representation, and so kwarg Tensor/LinearOperators will also receive gradients. * Hyperparameters for KernelLinearOperator must be kwargs * LO._bilinear_derivative only computes derivatives for args that require gradients * Expand upon closure variables warning for KernelLinearOperator * LO._bilinear_derivative exits early if no parameters require gradients * Refactor KernelLinearOperator._getitem * Allow for optional number of nonbatch parameter dimensions * Fix LO._bilinear_derivative * Update linear_operator/operators/_linear_operator.py Co-authored-by: Max Balandat <[email protected]> * Update linear_operator/operators/kernel_linear_operator.py Co-authored-by: Max Balandat <[email protected]> * Update linear_operator/operators/linear_operator_representation_tree.py Co-authored-by: Max Balandat <[email protected]> * Update linear_operator/operators/kernel_linear_operator.py Co-authored-by: Max Balandat <[email protected]> * Update linear_operator/operators/kernel_linear_operator.py Co-authored-by: Max Balandat <[email protected]> * Update linear_operator/operators/kernel_linear_operator.py Co-authored-by: Max Balandat <[email protected]> * Update linear_operator/operators/kernel_linear_operator.py Co-authored-by: Max Balandat <[email protected]> * Update linear_operator/operators/kernel_linear_operator.py Co-authored-by: Max Balandat <[email protected]> * Update linear_operator/operators/kernel_linear_operator.py Co-authored-by: Max Balandat <[email protected]> * Update linear_operator/operators/kernel_linear_operator.py Co-authored-by: Max Balandat <[email protected]> * Update linear_operator/operators/kernel_linear_operator.py Co-authored-by: Max Balandat <[email protected]> * Fix errors, address comments * KroneckerProductLinearOperator broadcasts * Test cases and fixes for multitask KernelLinearOperator --------- Co-authored-by: Max Balandat <[email protected]>
- Loading branch information
Showing
10 changed files
with
699 additions
and
35 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.