def test_log_likelihood(self): batch_size = 20 stack = self.stack X, X_ = testing.fmatrix((batch_size, self.n_vis), 'X') n_samples, n_samples_ = testing.iscalar('n_samples') n_samples_ = self.n_samples log_PX, w, log_P, log_Q, KL, Hp, Hq = stack.log_likelihood( X, n_samples=n_samples) do_log_likelihood = theano.function([X, n_samples], [log_PX, log_P, log_Q, w]) log_PX_, log_P_, log_Q_, w_ = do_log_likelihood(X_, n_samples_) print "log_P.shape", log_P_.shape print "log_Q.shape", log_Q_.shape print "log_PX.shape", log_PX_.shape print "w.shape", w_.shape assert log_PX_.shape == (batch_size, ) assert log_P_.shape == (batch_size, n_samples_) assert log_Q_.shape == (batch_size, n_samples_) assert w_.shape == (batch_size, n_samples_) n_layers = len(stack.p_layers) assert len(KL) == n_layers assert len(Hp) == n_layers assert len(Hq) == n_layers
def test_log_likelihood(self): batch_size = 20 stack = self.stack X, X_ = testing.fmatrix((batch_size, self.n_vis), "X") n_samples, n_samples_ = testing.iscalar("n_samples") n_samples_ = self.n_samples log_PX, w, log_P, log_Q, KL, Hp, Hq = stack.log_likelihood(X, n_samples=n_samples) do_log_likelihood = theano.function([X, n_samples], [log_PX, log_P, log_Q, w]) log_PX_, log_P_, log_Q_, w_ = do_log_likelihood(X_, n_samples_) print "log_P.shape", log_P_.shape print "log_Q.shape", log_Q_.shape print "log_PX.shape", log_PX_.shape print "w.shape", w_.shape assert log_PX_.shape == (batch_size,) assert log_P_.shape == (batch_size, n_samples_) assert log_Q_.shape == (batch_size, n_samples_) assert w_.shape == (batch_size, n_samples_) n_layers = len(stack.p_layers) assert len(KL) == n_layers assert len(Hp) == n_layers assert len(Hq) == n_layers
def test_sample_p(self): stack = self.stack n_samples, n_samples_ = testing.iscalar("n_samples") X, log_P = stack.sample_p(n_samples=n_samples) do_sample = theano.function([n_samples], [X[0], log_P], name="do_sample") X0_, log_P_ = do_sample(n_samples_) assert X0_.shape == (n_samples_, self.n_vis) assert log_P_.shape == (n_samples_,)
def test_sample_p(self): stack = self.stack n_samples, n_samples_ = testing.iscalar('n_samples') X, log_P = stack.sample_p(n_samples=n_samples) do_sample = theano.function([n_samples], [X[0], log_P], name="do_sample") X0_, log_P_ = do_sample(n_samples_) assert X0_.shape == (n_samples_, self.n_vis) assert log_P_.shape == (n_samples_, )
def test_gradients(self): batch_size = 20 stack = self.stack n_layers = len(stack.p_layers) X, X_ = testing.fmatrix((batch_size, self.n_vis), "X") n_samples, n_samples_ = testing.iscalar("n_samples") n_samples_ = self.n_samples lr_p = np.ones(n_layers) lr_q = np.ones(n_layers) log_PX, gradients = stack.get_gradients(X, None, lr_p=lr_p, lr_q=lr_q, n_samples=n_samples_)
def test_gradients(self): batch_size = 20 stack = self.stack n_layers = len(stack.p_layers) X, X_ = testing.fmatrix((batch_size, self.n_vis), 'X') n_samples, n_samples_ = testing.iscalar('n_samples') n_samples_ = self.n_samples lr_p = np.ones(n_layers) lr_q = np.ones(n_layers) log_PX, gradients = stack.get_gradients(X, None, lr_p=lr_p, lr_q=lr_q, n_samples=n_samples_)