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
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
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=[