示例#1
0
def get_toy_model():
    from learning.models.rws import LayerStack
    from learning.models.sbn import SBN, SBNTop

    p_layers = [SBN(n_X=25, n_Y=10), SBNTop(n_X=10, )]
    q_layers = [SBN(
        n_X=10,
        n_Y=25,
    )]
    model = LayerStack(
        p_layers=p_layers,
        q_layers=q_layers,
    )
    return model
示例#2
0
def test_FromModel():
    D = 5
    n_vis = D**2
    n_hid = 2 * D

    # Ground truth params
    W_bars = np.zeros([n_hid, D, D])
    for d in xrange(D):
        W_bars[d, d, :] = 4.
        W_bars[D + d, :, d] = 4.
    W_bars = W_bars.reshape((n_hid, n_vis))
    P_a = -np.log(D / 2 - 1) * np.ones(n_hid)
    P_b = -2 * np.ones(n_vis)

    # Instantiate model...
    p_layers = [SBN(
        n_X=n_vis,
        n_Y=n_hid,
    ), SBNTop(n_X=n_hid)]
    q_layers = [SBN(
        n_X=n_hid,
        n_Y=n_vis,
    )]
    p_layers[0].set_model_param('W', W_bars)
    p_layers[0].set_model_param('b', P_b)
    p_layers[1].set_model_param('a', P_a)

    model = LayerStack(p_layers=p_layers, q_layers=q_layers)

    # ...and generate data
    n_datapoints = 1000
    data = FromModel(model=model, n_datapoints=n_datapoints)

    assert data.X.shape == (n_datapoints, n_vis)

    yield check_dtype, data
    yield check_range, data
示例#3
0
        n_X=200,
        n_hid=[],
        final_tanh=True,
        log_sigma2_min=log_sigma2_min,
    ),
    DiagonalGaussian(
        n_X=100,
        n_Y=200,
        n_hid=[],
        final_tanh=False,
        log_sigma2_min=log_sigma2_min,
    ),
]

model = LayerStack(
    p_layers=p_layers,
    q_layers=q_layers,
)

trainer = Trainer(
    n_samples=10,
    learning_rate_p=1e-6,
    #learning_rate_q=1e-6,
    learning_rate_q=0.0,
    #learning_rate_s=1e-6,
    learning_rate_s=1e-6,
    weight_decay=0.0,
    batch_size=25,
    dataset=trainset,
    model=model,
    termination=EarlyStopping(lookahead=10),
    epoch_monitors=[