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.
Concerns #8 |
Adds a base class for backend-agnostic objects that will be needed in the package.
A
BackendAgnostic
class is setup such that it must have certain attributes, and a reference to some_backend_obj
that will actually be doing the heavy-lifting for accessing / computing these attributes. This allows us to define methods on theBackendAgnostic
class that conform to our expected frontend behaviours / syntax, and have these methods translate the arguments provided by the frontend into the arguments that need to be passed to the_backend_obj
.The most obvious example of these objects will be
Distribution
s - these are required to have asample
method, but different backends (jax.random
,distrax
,numpyro
, etc) have different syntaxes for sampling from their distributions. ABackendAgnostic
distribution necessitates having asample
method, but for the different backends it would be implemented differently;NOTE: This will be one of several "breakdown" PRs that all-together form #23.
NOTE 2: In light if #24, the
jax
-specificrng_key
s should eventually be replaced with some backend-agnostic class that accepts a.split
method.