# HG changeset patch # User James Bergstra # Date 1286732721 14400 # Node ID cdda4f98c2a288f3567a1e29318798fdba25f9e9 # Parent ebcb76b388176fabfb880a028e0c1fd015fdc942 mcRBM - added mask for updates to P matrix diff -r ebcb76b38817 -r cdda4f98c2a2 pylearn/algorithms/mcRBM.py --- a/pylearn/algorithms/mcRBM.py Sun Oct 10 13:43:53 2010 -0400 +++ b/pylearn/algorithms/mcRBM.py Sun Oct 10 13:45:21 2010 -0400 @@ -654,6 +654,8 @@ rval = cls.alloc(rbm, visible_batch, batchsize, initial_lr_per_example, rng, l1_penalty, l1_penalty_start, learn_rate_multipliers, lr_anneal_start, persistent_chains) + rval.p_mask = sharedX((rbm.P.value!=0).astype('float32'), 'p_mask') + rval.p_lr = p_lr rval.p_training_start=p_training_start rval.p_training_lr=p_training_lr @@ -795,7 +797,9 @@ ups[self.p_lr] = TT.switch(self.iter > self.p_training_start, self.p_training_lr, 0) - ups[self.rbm.P] = TT.clip(ups[self.rbm.P], -5, 0) + new_P = ups[self.rbm.P] * self.p_mask + no_pos_P = TT.switch(new_P<0, new_P, 0) + ups[self.rbm.P] = - no_pos_P / no_pos_P.sum(axis=0) #normalize to that columns sum 1 return ups