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)
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)
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()))
#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()
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()
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
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
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