Beispiel #1
0
# 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:
    filename = "lpf-%02d.npz" % epoch
print "Loading partition function %s" % filename
lpf = np.load(filename)
rbm.log_pf = lpf['lpf']

# calculate log probability of training set
tr_lp = gp.mean(rbm.normalized_log_p_vis(X))
tst_lp = gp.mean(rbm.normalized_log_p_vis(TX))

print "Average log p(x from training set) =  %f" % tr_lp
Beispiel #2
0
                                 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
weights_m1 = 0
bias_vis_m1 = 0
bias_hid_m1 = 0

np.set_printoptions(precision=15)
print "start weights after epoch %d:" % (from_epoch-1)
print ml.rbm.weights[0:5,0:5]

print "random state: ", mr.get_uint32()

# train
for epoch in range(from_epoch, cfg.epochs):
    seen_epoch_samples = 0