Funsor is a tensor-like library for functions and distributions¶
Funsor Core:
- Operations
- Domains
- Interpretations
- Funsors
- Optimizer
- Adjoint Algorithms
- Sum-Product Algorithms
partial_unroll()
partial_sum_product()
dynamic_partial_sum_product()
modified_partial_sum_product()
sum_product()
naive_sequential_sum_product()
sequential_sum_product()
mixed_sequential_sum_product()
naive_sarkka_bilmes_product()
sarkka_bilmes_product()
MarkovProductMeta
MarkovProduct
eager_markov_product()
- Affine Pattern Matching
- Funsor Factory
- Testing Utiltites
xfail_if_not_implemented()
xfail_if_not_found()
requires_backend()
excludes_backend()
ActualExpected
id_from_inputs()
is_array()
assert_close()
check_funsor()
xfail_param()
make_einsum_example()
assert_equiv()
rand()
randint()
randn()
random_scale_tril()
zeros()
ones()
empty()
random_tensor()
random_gaussian()
random_mvn()
make_plated_hmm_einsum()
make_chain_einsum()
make_hmm_einsum()
iter_subsets()
DesugarGetitem
- Typing Utiltites
Interfaces:
- Recipes using Funsor
forward_filter_backward_rsample()
forward_filter_backward_precondition()
- Pyro-Compatible Distributions
- Distribution Funsors
Distribution
Beta
Cauchy
Chi2
BernoulliProbs
BernoulliLogits
Binomial
Categorical
CategoricalLogits
Delta
Dirichlet
DirichletMultinomial
Exponential
Gamma
GammaPoisson
Geometric
Gumbel
HalfCauchy
HalfNormal
Laplace
Logistic
LowRankMultivariateNormal
Multinomial
MultivariateNormal
NonreparameterizedBeta
NonreparameterizedDirichlet
NonreparameterizedGamma
NonreparameterizedNormal
Normal
Pareto
Poisson
StudentT
Uniform
VonMises
- Mini-Pyro Interface
- Mini Pyro
Distribution
get_param_store()
Messenger
trace
replay
block
seed
CondIndepStackFrame
PlateMessenger
tensor_to_funsor()
log_joint
apply_stack()
sample()
param()
plate()
PyroOptim
Adam
ClippedAdam
SVI
Expectation()
elbo()
ELBO
Trace_ELBO
TraceMeanField_ELBO
TraceEnum_ELBO
Jit
Jit_ELBO
JitTrace_ELBO()
JitTraceMeanField_ELBO()
JitTraceEnum_ELBO()
- Einsum Interface
- Compiler & Tracer
Tutorials and Examples
- Named tensor notation with funsors (Part 1)
- Example: Adam optimizer
- Example: Discrete HMM
- Example: Switching Linear Dynamical System EEG
- Example: Forward-Backward algorithm
- Example: Kalman Filter
- Example: Mini Pyro
- Example: PCFG
- Example: Biased Kalman Filter
- Example: Switching Linear Dynamical System
- Example: Talbot’s method for numerical inversion of the Laplace transform
- Example: VAE MNIST