Exemple #1
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)
        lpfs.append(lpf)
Exemple #2
0
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)

# initialize momentums