示例#1
0
 def model():
     latent = named.Object("latent")
     latent.list = named.List()
     loc = latent.list.add().loc.param_(torch.zeros(1))
     latent.dict = named.Dict()
     foo = latent.dict["foo"].foo.sample_(dist.Normal(loc, torch.ones(1)))
     latent.object.bar.sample_(dist.Normal(loc, torch.ones(1)), obs=foo)
示例#2
0
 def model():
     latent = named.Object("latent")
     latent.list = named.List()
     mu = latent.list.add().mu.param_(Variable(torch.zeros(1)))
     latent.dict = named.Dict()
     foo = latent.dict["foo"].foo.sample_(dist.normal, mu, ng_ones(1))
     latent.object.bar.observe_(dist.normal, foo, mu, ng_ones(1))
示例#3
0
def test_eval_str():
    state = named.Object("state")
    state.x = 0
    state.ys = named.List()
    state.ys.add().foo = 1
    state.zs = named.Dict()
    state.zs[42].bar = 2

    assert state is eval(str(state))
    assert state.x is eval(str(state.x))
    assert state.ys is eval(str(state.ys))
    assert state.ys[0] is eval(str(state.ys[0]))
    assert state.ys[0].foo is eval(str(state.ys[0].foo))
    assert state.zs is eval(str(state.zs))
    assert state.zs[42] is eval(str(state.zs[42]))
    assert state.zs[42].bar is eval(str(state.zs[42].bar))
示例#4
0
def model(data, k):
    latent = named.Object("latent")

    # Create parameters for a Gaussian mixture model.
    latent.ps.param_(Variable(torch.ones(k) / k, requires_grad=True))
    latent.mus.param_(Variable(torch.zeros(k), requires_grad=True))
    latent.sigmas.param_(Variable(torch.ones(k), requires_grad=True))

    # Observe all the data. We pass a local latent in to the local_model.
    latent.local = named.List()
    for x in data:
        local_model(latent.local.add(),
                    latent.ps,
                    latent.mus,
                    latent.sigmas,
                    obs=x)
示例#5
0
def model(data, k):
    latent = named.Object("latent")

    # Create parameters for a Gaussian mixture model.
    latent.probs.param_(torch.ones(k) / k, constraint=constraints.simplex)
    latent.locs.param_(torch.zeros(k))
    latent.scales.param_(torch.ones(k), constraint=constraints.positive)

    # Observe all the data. We pass a local latent in to the local_model.
    latent.local = named.List()
    for x in data:
        local_model(latent.local.add(),
                    latent.probs,
                    latent.locs,
                    latent.scales,
                    obs=x)
示例#6
0
 def model():
     latent = named.Object("latent")
     loc = latent.loc.param_(torch.zeros(1))
     foo = latent.foo.sample_(dist.Normal(loc, torch.ones(1)))
     latent.bar.sample_(dist.Normal(loc, torch.ones(1)), obs=foo)
     latent.x.z.sample_(dist.Normal(loc, torch.ones(1)))
示例#7
0
def guide(data, k):
    latent = named.Object("latent")
    latent.local = named.List()
    for x in data:
        # We pass a local latent in to the local_guide.
        local_guide(latent.local.add(), k)
示例#8
0
def guide(data):
    guide_recurse(data, named.Object("latent"))
示例#9
0
def model(data):
    latent = named.Object("latent")
    latent.z.sample_(dist.normal, ng_zeros(1), ng_ones(1))
    model_recurse(data, latent)
示例#10
0
def model(data):
    latent = named.Object("latent")
    latent.z.sample_(dist.Normal(0.0, 1.0))
    model_recurse(data, latent)
示例#11
0
 def model():
     latent = named.Object("latent")
     mu = latent.mu.param_(Variable(torch.zeros(1)))
     foo = latent.foo.sample_(dist.normal, mu, ng_ones(1))
     latent.bar.observe_(dist.normal, foo, mu, ng_ones(1))
     latent.x.z.sample_(dist.normal, mu, ng_ones(1))