Mercurial > ift6266
diff deep/stacked_dae/v_sylvain/stacked_dae.py @ 329:54ad8a091783
Rajout de la capacite de faire decroitre le taux d'apprentissage si demande
author | SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca> |
---|---|
date | Sun, 11 Apr 2010 19:52:44 -0400 |
parents | 60cacb9a70e4 |
children | 799ad23a161f |
line wrap: on
line diff
--- a/deep/stacked_dae/v_sylvain/stacked_dae.py Sun Apr 11 19:52:35 2010 -0400 +++ b/deep/stacked_dae/v_sylvain/stacked_dae.py Sun Apr 11 19:52:44 2010 -0400 @@ -203,6 +203,7 @@ self.x = T.matrix('x') # the data is presented as rasterized images self.y = T.ivector('y') # the labels are presented as 1D vector of # [int] labels + self.finetune_lr = T.fscalar('finetune_lr') #To get a dynamic finetune learning rate for i in xrange( self.n_layers ): # construct the sigmoidal layer @@ -275,9 +276,9 @@ # compute list of updates updates = {} for param,gparam in zip(self.params, gparams): - updates[param] = param - gparam*finetune_lr + updates[param] = param - gparam*self.finetune_lr - self.finetune = theano.function([self.x,self.y], cost, + self.finetune = theano.function([self.x,self.y,self.finetune_lr], cost, updates = updates)#, # symbolic variable that points to the number of errors made on the @@ -302,15 +303,16 @@ #self.logistic_params+= self.logLayer2.params # construct a function that implements one step of finetunining - + + self.logistic_params+=self.logLayer2.params # compute the cost, defined as the negative log likelihood cost2 = self.logLayer2.negative_log_likelihood(self.y) # compute the gradients with respect to the model parameters - gparams2 = T.grad(cost2, self.logLayer2.params) + gparams2 = T.grad(cost2, self.logistic_params) # compute list of updates updates2 = {} - for param,gparam in zip(self.logLayer2.params, gparams2): + for param,gparam in zip(self.logistic_params, gparams2): updates2[param] = param - gparam*finetune_lr self.finetune2 = theano.function([self.x,self.y], cost2,