Beispiel #1
0
    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
Beispiel #2
0
    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
Beispiel #3
0
    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_,)
Beispiel #4
0
    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_, )
Beispiel #5
0
    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_)
Beispiel #6
0
    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_)