Пример #1
0
cur_momentum = 0.9

W_inc_rate = (rbm.W_inc * cur_momentum + W_inc) * l_rate
hbias_inc_rate = (rbm.hbias_inc * cur_momentum + hbias_inc) * l_rate
vbias_inc_rate = (rbm.vbias_inc * cur_momentum + vbias_inc) * l_rate
updates = []
updates.append((rbm.W, rbm.W + W_inc_rate))
updates.append((rbm.hbias, rbm.hbias + hbias_inc_rate))
updates.append((rbm.vbias, rbm.vbias + vbias_inc_rate))
updates.append((rbm.W_inc, W_inc))
updates.append((rbm.hbias_inc, hbias_inc))
updates.append((rbm.vbias_inc, vbias_inc))
current_free_energy = rbm.free_energy(rbm.input)

monitoring_cost = rbm.get_reconstruction_cost(v_sample)

f = theano.function([], [
    ph_sample, v_mean, h_mean, vis_probs_fant, hid_probs_fant, W_inc_rate,
    vbias_inc_rate, hbias_inc_rate, current_free_energy, monitoring_cost
],
                    updates=updates,
                    givens=[(rbm.input, data_dum)])

sumcost = []


def it(i):
    global sumcost
    ph_sample, vis_probs_fant, hid_probs_fant, vis_samp, hid_samp, W_inc, vbias_inc, hbias_inc, fen, cost = f(
    )
Пример #2
0
cur_momentum = 0.9

W_inc_rate = (rbm.W_inc * cur_momentum + W_inc) * l_rate
hbias_inc_rate = (rbm.hbias_inc * cur_momentum + hbias_inc) * l_rate
vbias_inc_rate = (rbm.vbias_inc * cur_momentum + vbias_inc) * l_rate
updates=[]
updates.append( (rbm.W, rbm.W + W_inc_rate))
updates.append((rbm.hbias,rbm.hbias + hbias_inc_rate))
updates.append((rbm.vbias,rbm.vbias + vbias_inc_rate))
updates.append((rbm.W_inc,W_inc))
updates.append((rbm.hbias_inc,hbias_inc))
updates.append((rbm.vbias_inc,vbias_inc))
current_free_energy = rbm.free_energy(rbm.input)
        
monitoring_cost = rbm.get_reconstruction_cost(v_sample)

f = theano.function([], [ph_sample, v_mean, h_mean, vis_probs_fant, hid_probs_fant, W_inc_rate, vbias_inc_rate, hbias_inc_rate, current_free_energy, monitoring_cost], updates=updates, givens=[(rbm.input, data_dum)])

sumcost = []
def it(i):
    global sumcost
    ph_sample, vis_probs_fant, hid_probs_fant, vis_samp, hid_samp, W_inc, vbias_inc, hbias_inc, fen, cost = f()
    if i % 10 == 0:
        print "hid_pos: %s" % ph_sample
        print "vis_neg: %s" % vis_probs_fant
        print "hid_neg: %s" % hid_probs_fant
        print "vis_neg_s: %s" % vis_samp
        print "hid_neg_s: %s" % hid_samp
        print "W_inc: %s" % W_inc
        print "vbias_inc: %s" % vbias_inc
Пример #3
0
        del watches['cost']
        del watches['cost_valid']

        load_watches(watches)

train(rbms, data_sh, data_valid_sh, train_params)


valid_set = T.matrix("valid_set0")
Dv = T.sum(valid_set, axis=1)
[preh, h, hs, prev, v, vs], updates = theano.scan(rbm.gibbs_vhv_mf, outputs_info = [None,  None,  None, None, None, valid_set],
        non_sequences = Dv,
        n_steps=5)


cost = rbm.get_reconstruction_cost(vs[-1], valid_set, Dv)
get_cost = theano.function([], [cost, vs], updates = updates, givens=[(valid_set, data_valid_sh)])

#train_params['max_epoch'] = 200
#train_params['mean_field'] = False
#train_params['cd_steps'] = 5
#train_params['learning_rate'] = 0.01
#rbms.stack[0].need_train = True
#
#train(rbms, data_sh, data_valid_sh, train_params)

#train_params['max_epoch'] = 400
#ae.pretrain(data_sh, data_valid_sh, train_params)
#train_params['max_epoch'] = 50
#ae.finetune(data_sh, train_params)
#print_top_to_file(ae, train_params, "_sp0.2", data_nop_sh, range(0,100))