Exemplo n.º 1
0
def test_dbm_loader():
    """ Loads an example model and some data and makes
    sure that inference gets the same result as Ruslan
    Salakhutdino's demo code. """
    pylearn2_path = pylearn2.__path__[0]
    dbm_path = pylearn2_path + '/models/tests/dbm.mat'
    data_path = pylearn2_path + '/models/tests/dbm_data.mat'

    dbm = load_matlab_dbm(dbm_path)

    d = io.loadmat(data_path)

    for key in d:
        try:
            d[key] = np.cast[config.floatX](d[key])
        except:
            pass

    ip = InferenceProcedure(layer_schedule=[0, 1] * 10)
    ip.register_model(dbm)

    V = T.matrix()
    if config.compute_test_value != 'off':
        V.tag.test_value = d['data']
    h1_theano, h2_theano = ip.infer(V)['H_hat']

    f = function([V], [h1_theano, h2_theano])

    data = d['data']

    h1_numpy, h2_numpy = f(data)

    assert np.allclose(d['h1'], h1_numpy)
    assert np.allclose(d['h2'], h2_numpy)
Exemplo n.º 2
0
def test_dbm_loader():
    """ Loads an example model and some data and makes
    sure that inference gets the same result as Ruslan
    Salakhutdino's demo code. """
    pylearn2_path = pylearn2.__path__[0]
    dbm_path = pylearn2_path + '/models/tests/dbm.mat'
    data_path = pylearn2_path + '/models/tests/dbm_data.mat'

    dbm = load_matlab_dbm(dbm_path)

    d = io.loadmat( data_path )

    for key in d:
        try:
            d[key] = np.cast[config.floatX](d[key])
        except:
            pass

    ip = InferenceProcedure( layer_schedule = [0,1] * 10 )
    ip.register_model(dbm)

    V = T.matrix()
    if config.compute_test_value != 'off':
        V.tag.test_value = d['data']
    h1_theano, h2_theano = ip.infer(V)['H_hat']

    f = function([V],[h1_theano,h2_theano])

    data = d['data']

    h1_numpy, h2_numpy = f(data)

    assert np.allclose(d['h1'],h1_numpy)
    assert np.allclose(d['h2'],h2_numpy)
Exemplo n.º 3
0
rows = 10
cols = 10

from pylearn2.models.dbm import load_matlab_dbm
model = load_matlab_dbm('after_joint_train.mat', num_chains=rows * cols)
#model = load_matlab_dbm('after_backprop.mat', num_chains = rows * cols)
dbm = model

from theano import function
import theano.tensor as T

sample_func = function([], updates=model.get_sampling_updates())

render_func = function(
    [], T.nnet.sigmoid(T.dot(dbm.H_chains[0], dbm.W[0].T) + dbm.bias_vis))

from pylearn2.datasets.mnist import MNIST

dataset = MNIST(which_set='train')
X = dataset.get_batch_design(rows * cols)

model.V_chains.set_value(X)

for i in xrange(200):
    print i
    sample_func()

from pylearn2.gui.patch_viewer import make_viewer

pv = make_viewer(dataset.adjust_for_viewer(render_func()))
Exemplo n.º 4
0
#arg1: layer 1 model
#arg2: layer 2 model

import sys
from pylearn2.utils import serial
import numpy as np

if len(sys.argv) == 3:
    l1, l2= sys.argv[1:]
    l1 = serial.load(l1)
    dataset_yaml_src = l1.dataset_yaml_src
    l2 = serial.load(l2)
else:
    if sys.argv[1].endswith('.mat'):
        from pylearn2.models.dbm import load_matlab_dbm
        model = load_matlab_dbm(sys.argv[1])
        model.dataset_yaml_src = "!obj:pylearn2.datasets.mnist.MNIST { which_set : 'train' }"
    else:
        model = serial.load(sys.argv[1])
    dataset_yaml_src = model.dataset_yaml_src
    try:
        l1 = model.s3c
        l2 = model.dbm.rbms[0]
    except:
        l1 , l2 = model.rbms
        l1.W ,= l1.transformer.get_params()


W1 = l1.W.get_value()
l2_weights ,= l2.transformer.get_params()
W2 = l2_weights.get_value()
Exemplo n.º 5
0
rows = 10
cols = 10

from pylearn2.models.dbm import load_matlab_dbm
model = load_matlab_dbm('joint_trained_dbm_230.mat', num_chains=rows * cols)
dbm = model

from theano import function
import theano.tensor as T

sample_func = function([], updates=model.get_sampling_updates())

render_func = function(
    [], T.nnet.sigmoid(T.dot(dbm.H_chains[0], dbm.W[0].T) + dbm.bias_vis))

from pylearn2.datasets.mnist import MNIST

dataset = MNIST(which_set='train')
X = dataset.get_batch_design(rows * cols)

model.V_chains.set_value(X)

for i in xrange(200):
    print i
    sample_func()

from pylearn2.gui.patch_viewer import make_viewer

pv = make_viewer(dataset.adjust_for_viewer(render_func()))

pv.show()
Exemplo n.º 6
0
rows = 10
cols = 10

from pylearn2.models.dbm import load_matlab_dbm
model = load_matlab_dbm('joint_trained_dbm_interm.mat', num_chains = rows * cols)
dbm = model

from theano import function
import theano.tensor as T

sample_func = function([],updates = model.get_sampling_updates())

render_func = function([],T.nnet.sigmoid(T.dot(dbm.H_chains[0],dbm.W[0].T)+dbm.bias_vis))

from pylearn2.datasets.mnist import MNIST

dataset = MNIST(which_set = 'train')
X = dataset.get_batch_design(rows*cols)

model.V_chains.set_value(X)



for i in xrange(200):
    print i
    sample_func()

from pylearn2.gui.patch_viewer import make_viewer


Exemplo n.º 7
0
rows = 10
cols = 10

from pylearn2.models.dbm import load_matlab_dbm
model = load_matlab_dbm('after_joint_train.mat', num_chains = rows * cols)
#model = load_matlab_dbm('after_backprop.mat', num_chains = rows * cols)
dbm = model

from theano import function
import theano.tensor as T

sample_func = function([],updates = model.get_sampling_updates())

render_func = function([],T.nnet.sigmoid(T.dot(dbm.H_chains[0],dbm.W[0].T)+dbm.bias_vis))

from pylearn2.datasets.mnist import MNIST

dataset = MNIST(which_set = 'train')
X = dataset.get_batch_design(rows*cols)

model.V_chains.set_value(X)



for i in xrange(200):
    print i
    sample_func()

from pylearn2.gui.patch_viewer import make_viewer

Exemplo n.º 8
0
rows = 10
cols = 10

from pylearn2.models.dbm import load_matlab_dbm
model = load_matlab_dbm('fullmnist_dbm.mat', num_chains = rows * cols)
dbm = model

from theano import function
import theano.tensor as T

sample_func = function([],updates = model.get_sampling_updates())

render_func = function([],T.nnet.sigmoid(T.dot(dbm.H_chains[0],dbm.W[0].T)+dbm.bias_vis))

from pylearn2.datasets.mnist import MNIST

dataset = MNIST(which_set = 'train')
X = dataset.get_batch_design(rows*cols)

model.V_chains.set_value(X)



for i in xrange(20000):
    print i
    sample_func()

from pylearn2.gui.patch_viewer import make_viewer