简易自定义指南

简易指南

class EasyGuide(model)[source]

基础类:pyro.nn.module.PyroModule

“简单指南”的基类,比AutoGuide更灵活,但比原始的Pyro指南更容易编写。

派生类应该定义一个guide()方法。这个guide()方法可以结合普通的指导语句(例如pyro.samplepyro.param)与以下特殊语句:

  • group = self.group(...) 选择模型中的多个 pyro.sample 站点。有关后续方法,请参见 Group

  • with self.plate(...): ... 应该被用来代替 pyro.plate

  • self.map_estimate(...) 使用 Delta 指南进行单个站点的估计。

派生类也可以重写 init() 方法,为模型站点提供自定义初始化。

Parameters

model (callable) – 一个Pyro模型。

property model
abstract guide(*args, **kargs)[source]

指南实现,由用户覆盖。

init(site)[source]

模型初始化方法,用户可能会重写。

这应该输入一个站点并输出该站点的有效样本。 默认行为是随机抽取样本:

return site["fn"]()

有关其他可能的初始化函数,请参阅 http://docs.pyro.ai/en/stable/infer.autoguide.html#module-pyro.infer.autoguide.initialization

forward(*args, **kwargs)[source]

运行指南。这通常由推理算法使用。

注意

此方法由Module内部使用。 用户应改用__call__()

plate(name, size=None, subsample_size=None, subsample=None, *args, **kwargs)[source]

围绕pyro.plate的包装器,允许EasyGuide自动构建板块。你应该在你的guide()实现中使用这个,而不是pyro.plate

group(match='.*')[source]

选择一个Group模型站点进行联合指导。

Parameters

match (str) – 一个正则表达式字符串,用于匹配模型样本站点的名称。

Returns

一组模型站点。

Return type

Group

map_estimate(name)[source]

使用Delta分布构建最大后验(MAP)指南。

Parameters

name (str) – 模型样本站点的名称。

Returns

一个采样值。

Return type

torch.Tensor

training: bool

简易指南

easy_guide(model)[source]

方便的装饰器用于创建 EasyGuide。 以下是等价的:

# Version 1. Decorate a function.
@easy_guide(model)
def guide(self, foo, bar):
    return my_guide(foo, bar)

# Version 2. Create and instantiate a subclass of EasyGuide.
class Guide(EasyGuide):
    def guide(self, foo, bar):
        return my_guide(foo, bar)
guide = Guide(model)

注意 @easy_guide 包装器不能被序列化;要构建一个可以序列化的指南,请改为从 EasyGuide 子类化。

Parameters

model (callable) – 一个Pyro模型。

分组

class Group(guide, sites)[source]

基础类:object

一个自动指南助手,用于匹配一组模型站点。

Variables
  • event_shape (torch.Size) – 模型中所有匹配样本点的总扁平化连接形状。

  • prototype_sites (list) – 模型中原型轨迹的所有匹配样本站点的列表。

Parameters
  • 指南 (EasyGuide) – 一个easyguide实例。

  • 站点 (list) – 模型站点的列表。

property guide
sample(guide_name, fn, infer=None)[source]

围绕 pyro.sample() 的包装器,用于创建单个辅助样本站点,然后解包为多个样本站点以进行模型重放。

Parameters
  • guide_name (str) – 辅助指南站点的名称。

  • fn (可调用) – 一个具有形状 self.event_shape 的分布。

  • infer (dict) – 可选的推理配置字典。

Returns

一对 (guide_z, model_zs) 其中 guide_z 是 单个连接的 blob,而 model_zs 是一个将 站点名称映射到约束模型样本的字典。

Return type

tuple

map_estimate()[source]

使用Delta分布构建最大后验(MAP)指南。

Returns

一个字典,将模型站点名称映射到采样值。

Return type

dict