# Variational Inference#

 `ADVI`(*args, **kwargs) Automatic Differentiation Variational Inference (ADVI) `ASVGD`([approx, estimator, kernel]) Amortized Stein Variational Gradient Descent `SVGD`([n_particles, jitter, model, start, ...]) Stein Variational Gradient Descent `FullRankADVI`(*args, **kwargs) Full Rank Automatic Differentiation Variational Inference (ADVI) `ImplicitGradient`(approx[, estimator, kernel]) Implicit Gradient for Variational Inference `Inference`(op, approx, tf, **kwargs) Base class for Variational Inference `KLqp`(approx[, beta]) Kullback Leibler Divergence Inference `fit`([n, method, model, random_seed, start, ...]) Handy shortcut for using inference methods in functional way

## Approximations#

 `Empirical`([trace, size]) Single Group Full Rank Approximation `FullRank`(*args, **kwargs) Single Group Full Rank Approximation `MeanField`(*args, **kwargs) Single Group Mean Field Approximation `sample_approx`(approx[, draws, ...]) Draw samples from variational posterior.

## OPVI#

 `Approximation`(groups[, model]) Wrapper for grouped approximations `Group`([group, vfam, params]) Base class for grouping variables in VI

## Operators#

 `KL`(approx[, beta]) Operator based on Kullback Leibler Divergence `KSD`(approx[, temperature]) Operator based on Kernelized Stein Discrepancy

## Special#

 `Stein`(approx[, kernel, use_histogram, ...]) `adadelta`([loss_or_grads, params, ...]) Adadelta updates `adagrad`([loss_or_grads, params, ...]) Adagrad updates `adagrad_window`([loss_or_grads, params, ...]) Returns a function that returns parameter updates. `adam`([loss_or_grads, params, learning_rate, ...]) Adam updates `adamax`([loss_or_grads, params, ...]) Adamax updates `apply_momentum`(updates[, params, momentum]) Returns a modified update dictionary including momentum `apply_nesterov_momentum`(updates[, params, ...]) Returns a modified update dictionary including Nesterov momentum `momentum`([loss_or_grads, params, ...]) Stochastic Gradient Descent (SGD) updates with momentum `nesterov_momentum`([loss_or_grads, params, ...]) Stochastic Gradient Descent (SGD) updates with Nesterov momentum `norm_constraint`(tensor_var, max_norm[, ...]) Max weight norm constraints and gradient clipping `rmsprop`([loss_or_grads, params, ...]) RMSProp updates `sgd`([loss_or_grads, params, learning_rate]) Stochastic Gradient Descent (SGD) updates `total_norm_constraint`(tensor_vars, max_norm) Rescales a list of tensors based on their combined norm