pymc.FullRank#
- class pymc.FullRank(*args, **kwargs)[source]#
Single Group Full Rank Approximation
Full Rank approximation to the posterior.
Multivariate Gaussian family is fitted to minimize KL divergence from posterior.
In contrast to MeanField approach, correlations between variables are taken into account. The main drawback of the method is its computational cost.
Methods
FullRank.__init__
(*args, **kwargs)FullRank.collect
(item)Dev - optimizations for logP.
Dev - create correct replacements for initial depending on sample size and deterministic flag.
FullRank.rslice
(name)Dev - vectorized sampling for named random variable without call to pytensor.scan.
FullRank.sample
([draws, random_seed, ...])Draw samples from variational posterior.
FullRank.sample_node
(node[, size, ...])Sample given node or nodes over shared posterior.
FullRank.set_size_and_deterministic
(node, s, d)Dev - after node is sampled via
symbolic_sample_over_posterior()
orsymbolic_single_sample()
new random generator can be allocated and applied to node.Dev - perform sampling of node applying independent samples from posterior each time.
FullRank.symbolic_single_sample
(node[, ...])Dev - perform sampling of node applying single sample from posterior.
FullRank.to_flat_input
(node[, more_replacements])Dev - replace vars with flattened view stored in self.inputs.
Attributes
all_histograms
any_histograms
datalogp
Dev - computes \(E_{q}(data term)\) from model via pytensor.scan that can be optimized later.
datalogp_norm
Dev - normalized \(E_{q}(data term)\).
ddim
has_logq
inputs
joint_histogram
logp
Dev - computes \(E_{q}(logP)\) from model via pytensor.scan that can be optimized later.
logp_norm
Dev - normalized \(E_{q}(logP)\).
logq
Dev - collects logQ for all groups.
logq_norm
Dev - collects logQ for all groups and normalizes it.
ndim
params
replacements
Dev - all replacements from groups to replace PyMC random variables with approximation.
sample_dict_fn
scale_cost_to_minibatch
Dev - Property to control scaling cost to minibatch.
single_symbolic_datalogp
Dev - for single MC sample estimate of \(E_{q}(data term)\) pytensor.scan is not needed and code can be optimized.
single_symbolic_logp
Dev - for single MC sample estimate of \(E_{q}(logP)\) pytensor.scan is not needed and code can be optimized.
single_symbolic_varlogp
Dev - for single MC sample estimate of \(E_{q}(prior term)\) pytensor.scan is not needed and code can be optimized.
sized_symbolic_datalogp
Dev - computes sampled data term from model via pytensor.scan.
sized_symbolic_logp
Dev - computes sampled logP from model via pytensor.scan.
sized_symbolic_varlogp
Dev - computes sampled prior term from model via pytensor.scan.
symbolic_logq
Dev - collects symbolic_logq for all groups.
symbolic_normalizing_constant
Dev - normalizing constant for self.logq, scales it to minibatch_size instead of total_size.
symbolic_random
symbolic_randoms
varlogp
Dev - computes \(E_{q}(prior term)\) from model via pytensor.scan that can be optimized later.
varlogp_norm
Dev - normalized \(E_{q}(prior term)\).