Mercurial > pylearn
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 |