annotate pylearn/gd/tests/test_dbd.py @ 1422:8c209c847087

adding delta-bar-delta optimization updates to gd module
author James Bergstra <bergstrj@iro.umontreal.ca>
date Fri, 04 Feb 2011 16:07:27 -0500
parents
children
rev   line source
1422
8c209c847087 adding delta-bar-delta optimization updates to gd module
James Bergstra <bergstrj@iro.umontreal.ca>
parents:
diff changeset
1 import theano
8c209c847087 adding delta-bar-delta optimization updates to gd module
James Bergstra <bergstrj@iro.umontreal.ca>
parents:
diff changeset
2 from theano.compile.debugmode import DebugMode
8c209c847087 adding delta-bar-delta optimization updates to gd module
James Bergstra <bergstrj@iro.umontreal.ca>
parents:
diff changeset
3 from pylearn.gd import dbd
8c209c847087 adding delta-bar-delta optimization updates to gd module
James Bergstra <bergstrj@iro.umontreal.ca>
parents:
diff changeset
4
8c209c847087 adding delta-bar-delta optimization updates to gd module
James Bergstra <bergstrj@iro.umontreal.ca>
parents:
diff changeset
5 mode = theano.compile.mode.get_default_mode()
8c209c847087 adding delta-bar-delta optimization updates to gd module
James Bergstra <bergstrj@iro.umontreal.ca>
parents:
diff changeset
6 if isinstance(mode,DebugMode):
8c209c847087 adding delta-bar-delta optimization updates to gd module
James Bergstra <bergstrj@iro.umontreal.ca>
parents:
diff changeset
7 mode = 'FAST_RUN'
8c209c847087 adding delta-bar-delta optimization updates to gd module
James Bergstra <bergstrj@iro.umontreal.ca>
parents:
diff changeset
8
8c209c847087 adding delta-bar-delta optimization updates to gd module
James Bergstra <bergstrj@iro.umontreal.ca>
parents:
diff changeset
9 def test_dbd_basic():
8c209c847087 adding delta-bar-delta optimization updates to gd module
James Bergstra <bergstrj@iro.umontreal.ca>
parents:
diff changeset
10
8c209c847087 adding delta-bar-delta optimization updates to gd module
James Bergstra <bergstrj@iro.umontreal.ca>
parents:
diff changeset
11 x = theano.shared(5.0)
8c209c847087 adding delta-bar-delta optimization updates to gd module
James Bergstra <bergstrj@iro.umontreal.ca>
parents:
diff changeset
12 y = theano.shared(3.0)
8c209c847087 adding delta-bar-delta optimization updates to gd module
James Bergstra <bergstrj@iro.umontreal.ca>
parents:
diff changeset
13
8c209c847087 adding delta-bar-delta optimization updates to gd module
James Bergstra <bergstrj@iro.umontreal.ca>
parents:
diff changeset
14 cost = (1.0 - x * y)**2
8c209c847087 adding delta-bar-delta optimization updates to gd module
James Bergstra <bergstrj@iro.umontreal.ca>
parents:
diff changeset
15 ups = dbd.dbd_updates([x,y], grads=None, stepsizes=[.01,.01],
8c209c847087 adding delta-bar-delta optimization updates to gd module
James Bergstra <bergstrj@iro.umontreal.ca>
parents:
diff changeset
16 cost = cost)
8c209c847087 adding delta-bar-delta optimization updates to gd module
James Bergstra <bergstrj@iro.umontreal.ca>
parents:
diff changeset
17 fn = theano.function([], cost, updates=ups)
8c209c847087 adding delta-bar-delta optimization updates to gd module
James Bergstra <bergstrj@iro.umontreal.ca>
parents:
diff changeset
18 c_i = fn()
8c209c847087 adding delta-bar-delta optimization updates to gd module
James Bergstra <bergstrj@iro.umontreal.ca>
parents:
diff changeset
19 assert c_i > 20
8c209c847087 adding delta-bar-delta optimization updates to gd module
James Bergstra <bergstrj@iro.umontreal.ca>
parents:
diff changeset
20 for i in xrange(20):
8c209c847087 adding delta-bar-delta optimization updates to gd module
James Bergstra <bergstrj@iro.umontreal.ca>
parents:
diff changeset
21 c_i = fn()
8c209c847087 adding delta-bar-delta optimization updates to gd module
James Bergstra <bergstrj@iro.umontreal.ca>
parents:
diff changeset
22 assert c_i < 1.0e-10
8c209c847087 adding delta-bar-delta optimization updates to gd module
James Bergstra <bergstrj@iro.umontreal.ca>
parents:
diff changeset
23