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