예제 #1
0
파일: mnist_prob.py 프로젝트: surban/ml
#epoch = 9
use_ruslan = False

# load dataset
X, TX = rbmutil.load_mnist(False)

# load ruslan's training set
mdata = scipy.io.loadmat("mnist.mat")
X = gp.as_garray(mdata['fbatchdata'])

# enter output directory
rbmutil.enter_rbm_plot_directory("mnist", cfg.n_hid, cfg.use_pcd, cfg.n_gibbs_steps,
                                 "prob.txt", clean=False)

# Build RBM
rbm = RestrictedBoltzmannMachine(0, cfg.n_vis, cfg.n_hid, 0) 

# load Ruslan's RBM
if use_ruslan:
    print "Loading Ruslan's ml.rbm..."
    mdata = scipy.io.loadmat("matlab_epoch%d.mat" % (epoch + 1))
    ml.rbm.bias_vis = gp.as_garray(mdata['visbiases'][0,:])
    ml.rbm.bias_hid = gp.as_garray(mdata['hidbiases'][0,:])
    ml.rbm.weights = gp.as_garray(mdata['vishid'])
else:
    rbmutil.load_parameters(rbm, "weights-%02i.npz" % epoch)

# load pratition function
if use_ruslan:
    filename = "matlab-lpf-%02d.npz" % (epoch+1)
else:
예제 #2
0
파일: mnist_ais.py 프로젝트: surban/ml
rbm = RestrictedBoltzmannMachine(0, cfg.n_vis, cfg.n_hid, 0) 
rbmutil.load_parameters(rbm, "weights-%02i.npz" % epoch)

# init AIS estimator
print "Calculating base RBM biases using %d samples with %d Gibbs steps " \
    "inbetween..." % (ais_base_samples, ais_base_gibbs_steps_between_samples)
ais = AnnealedImportanceSampler(rbm, ais_base_samples, ais_base_chains,
                                ais_base_gibbs_steps_between_samples)
print "Saving base RBM biases to %s..." % filename
np.savez_compressed(filename, 
                    base_bias_vis=gp.as_numpy_array(ais.base_bias_vis))
print "Base RBM log partition function:  %f" % ais.base_log_partition_function()

# check base rbm log partition function
if check_base_rbm_partition_function:
    baserbm = RestrictedBoltzmannMachine(0, cfg.n_vis, cfg.n_hid, 0)
    baserbm.weights = gp.zeros(baserbm.weights.shape)
    baserbm.bias_hid = gp.zeros(baserbm.bias_hid.shape)
    baserbm.bias_vis = ais.base_bias_vis
    print "Base RBM log partition function using partition_func:  %f" % baserbm.partition_function(20, 50).ln()

# perform estimation of partition function
print "Estimating partition function using %dx %d AIS runs with %d intermediate "\
    "RBMs and %d Gibbs steps..." % (ais_iterations, ais_runs, len(ais_betas), ais_gibbs_steps)

with open("ais_iterations.csv", 'w') as outfile:
    outfile.write("iterations\tlog Z\n")
    lpfs = []
    for i in range(ais_iterations):
        lpf, lpf_m_3s, lpf_p_3s = ais.log_partition_function(ais_betas, ais_runs, 
                                                             ais_gibbs_steps)
예제 #3
0
파일: mnist_rbm_pl.py 프로젝트: surban/ml
#np.seterr(all='raise')
#gp.acceptable_number_types = 'no nans or infs'

# parameters
epoch = 14
do_sampling = True

# load dataset
X, VX, TX = rbmutil.load_mnist()

# enter output directory
rbmutil.enter_rbm_plot_directory("mnist", cfg.n_hid, cfg.use_pcd, cfg.n_gibbs_steps,
                                 clean=False)

# Build RBM
rbm = RestrictedBoltzmannMachine(0, cfg.n_vis, cfg.n_hid, 0) 
rbmutil.load_parameters(rbm, "weights-%02i.npz" % epoch)
#rbmutil.load_parameters("../../../DeepLearningTutorials/code/rbm_plots/GPU-PCD/weights.npz")
#epoch = 99

# calculate statistics
seen_epoch_samples = 0
pl_bit = 0
pl_sum = 0
rc_sum = 0

for x in util.draw_slices(X, cfg.batch_size, kind='sequential', 
                          samples_are='rows', stop=True):
    print "%d / %d   \r" % (seen_epoch_samples, X.shape[0]),
    seen_epoch_samples += cfg.batch_size
예제 #4
0
파일: mnist_sample.py 프로젝트: surban/ml
# parameters
use_ruslan = True
#epoch = cfg.epochs - 1
epoch = 9
batch = 0

#X, TX = rbmutil.load_mnist(False)
mdata = scipy.io.loadmat("mnist.mat")
X = mdata['fbatchdata']

# enter output directory
rbmutil.enter_rbm_plot_directory("mnist", cfg.n_hid, cfg.use_pcd, cfg.n_gibbs_steps,
                                 "sample.txt", clean=False)

# Build RBM
rbm = RestrictedBoltzmannMachine(0, cfg.n_vis, cfg.n_hid, 0) 

# load Ruslan's RBM
if use_ruslan:
    print "Loading Ruslan's ml.rbm..."
    epoch = 99
    mdata = scipy.io.loadmat("mnistvh.mat")
    ml.rbm.bias_vis = gp.as_garray(mdata['visbiases'][0,:])
    ml.rbm.bias_hid = gp.as_garray(mdata['hidbiases'][0,:])
    ml.rbm.weights = gp.as_garray(mdata['vishid'])
else:
    rbmutil.load_parameters(rbm, "weights-%02i.npz" % epoch)

# compute hidden activations
v = X[batch*cfg.batch_size:(batch+1)*cfg.batch_size]
hid_act = gp.as_numpy_array(rbm.p_hid_given_vis(v))
예제 #5
0
파일: mnist_rbm_from.py 프로젝트: surban/ml
cfg.epochs = 2

# load dataset
X, TX = rbmutil.load_mnist(False)

# load ruslan's training set
mdata = scipy.io.loadmat("mnist.mat")
X = gp.as_garray(mdata['fbatchdata'])

# create output directory
rbmutil.enter_rbm_plot_directory("mnist", cfg.n_hid, cfg.use_pcd, 
                                 cfg.n_gibbs_steps, "training_from.txt", 
                                 clean=False)

# Build RBM
rbm = RestrictedBoltzmannMachine(cfg.batch_size, cfg.n_vis, cfg.n_hid, 
                                 cfg.n_gibbs_steps) 
mr.seed(30)
rbm.weights = 0.01 * (0.5 - mr.rand(rbm.weights.shape))

# load weights
if use_ruslans_start_weights:
    filename = "matlab_epoch%d.mat" % (from_epoch-1 + 1)
    print "Loading Ruslan's start weights from %s" % filename
    mdata = scipy.io.loadmat(filename)
    ml.rbm.weights = gp.as_garray(mdata['vishid'])
    ml.rbm.bias_vis = gp.as_garray(mdata['visbiases'])
    ml.rbm.bias_hid = gp.as_garray(mdata['hidbiases'])
else:
    print "Loading python start weights"
    filename = "weights-%02d.npz" % (from_epoch-1)
    rbmutil.load_parameters(rbm, filename)