# HG changeset patch # User SylvainPL # Date 1270143844 14400 # Node ID a5abd5c8b4b05add688905726c7b350e6724e951 # Parent 60cacb9a70e4bb9d91958795f8e79f98dab5d66e Petits changements pour pouvoir utiliser le GPU diff -r 60cacb9a70e4 -r a5abd5c8b4b0 deep/stacked_dae/v_sylvain/sgd_optimization.py --- a/deep/stacked_dae/v_sylvain/sgd_optimization.py Thu Apr 01 13:43:43 2010 -0400 +++ b/deep/stacked_dae/v_sylvain/sgd_optimization.py Thu Apr 01 13:44:04 2010 -0400 @@ -19,6 +19,9 @@ from ift6266.utils.seriestables import * +#For test purpose only +buffersize=1000 + default_series = { \ 'reconstruction_error' : DummySeries(), 'training_error' : DummySeries(), @@ -203,7 +206,7 @@ while (epoch < num_finetune) and (not done_looping): epoch = epoch + 1 - for x,y in dataset.train(minibatch_size): + for x,y in dataset.train(minibatch_size,bufsize=buffersize): minibatch_index += 1 if special == 0: cost_ij = self.classifier.finetune(x,y) @@ -217,9 +220,9 @@ #minibatch_index += 1 #The validation set is always NIST (we want the model to be good on NIST) if ind_test == 0 | ind_test == 20: - iter=dataset_test.valid(minibatch_size) + iter=dataset_test.valid(minibatch_size,bufsize=buffersize) else: - iter = dataset.valid(minibatch_size) + iter = dataset.valid(minibatch_size,bufsize=buffersize) if self.max_minibatches: iter = itermax(iter, self.max_minibatches) validation_losses = [validate_model(x,y) for x,y in iter] @@ -247,14 +250,14 @@ parameters_finetune=[copy(x.value) for x in self.classifier.params] # test it on the test set - iter = dataset.test(minibatch_size) + iter = dataset.test(minibatch_size,bufsize=buffersize) if self.max_minibatches: iter = itermax(iter, self.max_minibatches) test_losses = [test_model(x,y) for x,y in iter] test_score = numpy.mean(test_losses) #test it on the second test set - iter2 = dataset_test.test(minibatch_size) + iter2 = dataset_test.test(minibatch_size,bufsize=buffersize) if self.max_minibatches: iter2 = itermax(iter2, self.max_minibatches) test_losses2 = [test_model(x,y) for x,y in iter2] @@ -334,7 +337,10 @@ self.parameters_pre=pickle.load(f) f.close() for idx,x in enumerate(self.parameters_pre): - self.classifier.params[idx].value=copy(x) + if x.dtype=='float64': + self.classifier.params[idx].value=theano._asarray(copy(x),dtype=theano.config.floatX) + else: + self.classifier.params[idx].value=copy(x)