# HG changeset patch # User James Bergstra # Date 1282593818 14400 # Node ID 4cbd65cf902d70bda52b423b268cea8e8a532dec # Parent 38e66e0da66ace65edca9723e7c3d001053d1088 mcRBM - added extra free_energy param diff -r 38e66e0da66a -r 4cbd65cf902d pylearn/algorithms/mcRBM.py --- a/pylearn/algorithms/mcRBM.py Mon Aug 23 16:02:34 2010 -0400 +++ b/pylearn/algorithms/mcRBM.py Mon Aug 23 16:03:38 2010 -0400 @@ -198,7 +198,7 @@ t1 = -TT.sum(TT.nnet.softplus(c + dot(v,W)), axis=1) t2 = 0.5 * TT.sum(v**2, axis=1) t3 = -TT.dot(v, a) - return t0 + t1 + t2 + t3 + return t0 + t1 + t2 + t3, (t0, t1, t2, t3) def expected_h_g_given_v(P, U, W, b, c, v): """Returns theano expression conditional expectations (`h`, `g`) in an mcRBM. @@ -292,8 +292,12 @@ energy_fn = lambda p : self.free_energy_given_v(p[0]), seed=seed) - def free_energy_given_v(self, v): - return free_energy_given_v(self.params, v) + def free_energy_given_v(self, v, extra=False): + rval = free_energy_given_v(self.params, v) + if extra: + return rval + else: + return rval[0] def contrastive_gradient(self, pos_v, neg_v, U_l1_penalty=0, W_l1_penalty=0): """Return a list of gradient expressions for self.params