pymc.近似#
- class pymc.Approximation(groups, model=None)[源代码]#
分组近似的包装器
包装组列表,创建一个 Approximation 实例,该实例收集所有组中的采样变量,同时收集显式变分推断所需的 logQ。
- 参数:
- groups: list[Group]
列表的
Group实例。它们应该包含所有模型变量- 模型: 模型
参见
组
注释
一些用于单组近似的快捷方式是可用的:
方法
Approximation.__init__(groups[, model])Approximation.collect(item)Dev - 对 logP 的优化。
Approximation.make_size_and_deterministic_replacements(s, d)Dev - 根据样本大小和确定性标志创建正确的替换
Approximation.rslice(name)Dev - 为命名随机变量进行矢量化采样,无需调用 pytensor.scan。
Approximation.sample([draws, random_seed, ...])从变分后验中抽取样本。
Approximation.sample_node(node[, size, ...])给定的节点或节点在共享的后验分布上采样
Dev - 在通过
symbolic_sample_over_posterior()或symbolic_single_sample()对节点进行采样后,可以分配并应用新的随机生成器到节点Dev - 每次从后验分布中独立采样,对节点进行采样。
Approximation.symbolic_single_sample(node[, ...])Dev - 从后验分布中对节点应用单个样本进行采样。
Approximation.to_flat_input(node[, ...])Dev - 用存储在 self.inputs 中的扁平视图替换变量
属性
all_histogramsany_histogramsdatalogpDev - 通过 pytensor.scan 计算模型中的 \(E_{q}(data term)\),该计算可以在之后进行优化
datalogp_norm开发 - 标准化 \(E_{q}(数据项)\)
ddimhas_logqinputsjoint_histogramlogp开发 - 通过 pytensor.scan 从模型中计算 \(E_{q}(logP)\),该计算可以在之后进行优化
logp_normDev - 归一化的 \(E_{q}(logP)\)
logq开发 - 收集所有组的 logQ
logq_norm开发 - 收集所有组的 logQ 并对其进行归一化
ndimparamsreplacementsDev - 从组中替换 PyMC 随机变量为近似的所有替换
sample_dict_fnscale_cost_to_minibatchDev - 控制缩放成本到小批量的属性
single_symbolic_datalogp开发 - 对于单个 MC 样本估计 \(E_{q}(数据项)\),不需要 pytensor.scan,代码可以优化
single_symbolic_logpDev - 对于单个MC样本估计 \(E_{q}(logP)\),不需要 pytensor.scan,代码可以优化
single_symbolic_varlogpDev - 对于单个MC样本估计 \(E_{q}(prior term)\) ,不需要使用 pytensor.scan ,代码可以优化
sized_symbolic_datalogpDev - 通过 pytensor.scan 从模型中计算采样数据项
sized_symbolic_logpDev - 通过 pytensor.scan 从模型计算采样的 logP
sized_symbolic_varlogpDev - 通过 pytensor.scan 计算模型中的采样先验项
symbolic_logq开发 - 收集所有组的 symbolic_logq
symbolic_normalizing_constantDev - 用于 self.logq 的归一化常数,将其缩放到 minibatch_size 而不是 total_size。
symbolic_randomsymbolic_randomsvarlogpDev - 通过 pytensor.scan 计算模型中的 \(E_{q}(prior term)\),该计算可以在之后进行优化
varlogp_normDev - 标准化 \(E_{q}(prior term)\)