-
Notifications
You must be signed in to change notification settings - Fork 0
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
GPLVM implementation #1
Conversation
|
||
|
||
@dataclass | ||
class _MultioutputData: |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Are you envisioning this as a mixin class for HeterotopicDataset
, HeterotopicDataset
?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Less a mixin, more a superclass. A mixin could also work, but the existing code would need some refactoring.
def _add_input(self, X): | ||
self.X = X | ||
return self |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
There might be a nicer way to add this functionality in future.
|
||
@property | ||
def params(self) -> dict: | ||
default_key = get_defaults()["key"] |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This is nice for initialisation. It might be nice if the user can override this locally.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Yes - gpx.initialise
really needs to accept a GPJax/MOGPJax object and a PRNGKey
@thomaspinder Nice implementation! Just added some comments for some points to discuss in future. Happy to write some tests and get this merged. |
|
||
@dataclass | ||
class UnsupervisedDataset: | ||
y: jnp.DeviceArray |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
We need to think of typing conventions, e.g., X: f64["N D"]
, y:f64["N Q"]
if D is the dimension of X, and Q is the dimension of y.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Yes - very open to thoughts here. Also unsure of notational conventions within multi-output GPs.
Wonderful, thanks Dan. Have opened issues where relevant. I'll write some tests next week now that you're happy with the general structure. |
Unit tests are now in @daniel-dodd |
Codecov Report
@@ Coverage Diff @@
## master #1 +/- ##
=========================================
Coverage ? 93.84%
=========================================
Files ? 3
Lines ? 65
Branches ? 0
=========================================
Hits ? 61
Misses ? 4
Partials ? 0
Flags with carried forward coverage won't be shown. Click here to find out more. Help us with your feedback. Take ten seconds to tell us how you rate us. Have a feature suggestion? Share it here. |
This PR provides an implementation of the basic GPLVM with an application notebook.
Pull request type