annotate scripts/stacked_dae/mnist_sda.py @ 138:128507ac4edf

Initial commit for the stacked convolutional denoising autoencoders
author Owner <salahmeister@gmail.com>
date Sun, 21 Feb 2010 17:30:38 -0600
parents 5c79a2557f2f
children 7d8366fb90bf
rev   line source
131
5c79a2557f2f Un peu de ménage dans code pour stacked DAE, splitté en fichiers dans un nouveau sous-répertoire.
savardf
parents:
diff changeset
1 #!/usr/bin/python
5c79a2557f2f Un peu de ménage dans code pour stacked DAE, splitté en fichiers dans un nouveau sous-répertoire.
savardf
parents:
diff changeset
2 # coding: utf-8
5c79a2557f2f Un peu de ménage dans code pour stacked DAE, splitté en fichiers dans un nouveau sous-répertoire.
savardf
parents:
diff changeset
3
5c79a2557f2f Un peu de ménage dans code pour stacked DAE, splitté en fichiers dans un nouveau sous-répertoire.
savardf
parents:
diff changeset
4 # Parameterize call to sgd_optimization for MNIST
5c79a2557f2f Un peu de ménage dans code pour stacked DAE, splitté en fichiers dans un nouveau sous-répertoire.
savardf
parents:
diff changeset
5
5c79a2557f2f Un peu de ménage dans code pour stacked DAE, splitté en fichiers dans un nouveau sous-répertoire.
savardf
parents:
diff changeset
6 import numpy
5c79a2557f2f Un peu de ménage dans code pour stacked DAE, splitté en fichiers dans un nouveau sous-répertoire.
savardf
parents:
diff changeset
7 import theano
5c79a2557f2f Un peu de ménage dans code pour stacked DAE, splitté en fichiers dans un nouveau sous-répertoire.
savardf
parents:
diff changeset
8 import time
5c79a2557f2f Un peu de ménage dans code pour stacked DAE, splitté en fichiers dans un nouveau sous-répertoire.
savardf
parents:
diff changeset
9 import theano.tensor as T
5c79a2557f2f Un peu de ménage dans code pour stacked DAE, splitté en fichiers dans un nouveau sous-répertoire.
savardf
parents:
diff changeset
10 from theano.tensor.shared_randomstreams import RandomStreams
5c79a2557f2f Un peu de ménage dans code pour stacked DAE, splitté en fichiers dans un nouveau sous-répertoire.
savardf
parents:
diff changeset
11
5c79a2557f2f Un peu de ménage dans code pour stacked DAE, splitté en fichiers dans un nouveau sous-répertoire.
savardf
parents:
diff changeset
12 from stacked_dae import sgd_optimization
5c79a2557f2f Un peu de ménage dans code pour stacked DAE, splitté en fichiers dans un nouveau sous-répertoire.
savardf
parents:
diff changeset
13 import cPickle, gzip
5c79a2557f2f Un peu de ménage dans code pour stacked DAE, splitté en fichiers dans un nouveau sous-répertoire.
savardf
parents:
diff changeset
14 from jobman import DD
5c79a2557f2f Un peu de ménage dans code pour stacked DAE, splitté en fichiers dans un nouveau sous-répertoire.
savardf
parents:
diff changeset
15
5c79a2557f2f Un peu de ménage dans code pour stacked DAE, splitté en fichiers dans un nouveau sous-répertoire.
savardf
parents:
diff changeset
16 MNIST_LOCATION = '/u/savardf/datasets/mnist.pkl.gz'
5c79a2557f2f Un peu de ménage dans code pour stacked DAE, splitté en fichiers dans un nouveau sous-répertoire.
savardf
parents:
diff changeset
17
5c79a2557f2f Un peu de ménage dans code pour stacked DAE, splitté en fichiers dans un nouveau sous-répertoire.
savardf
parents:
diff changeset
18 def sgd_optimization_mnist(learning_rate=0.1, pretraining_epochs = 2, \
5c79a2557f2f Un peu de ménage dans code pour stacked DAE, splitté en fichiers dans un nouveau sous-répertoire.
savardf
parents:
diff changeset
19 pretrain_lr = 0.1, training_epochs = 5, \
5c79a2557f2f Un peu de ménage dans code pour stacked DAE, splitté en fichiers dans un nouveau sous-répertoire.
savardf
parents:
diff changeset
20 dataset='mnist.pkl.gz'):
5c79a2557f2f Un peu de ménage dans code pour stacked DAE, splitté en fichiers dans un nouveau sous-répertoire.
savardf
parents:
diff changeset
21 # Load the dataset
5c79a2557f2f Un peu de ménage dans code pour stacked DAE, splitté en fichiers dans un nouveau sous-répertoire.
savardf
parents:
diff changeset
22 f = gzip.open(dataset,'rb')
5c79a2557f2f Un peu de ménage dans code pour stacked DAE, splitté en fichiers dans un nouveau sous-répertoire.
savardf
parents:
diff changeset
23 # this gives us train, valid, test (each with .x, .y)
5c79a2557f2f Un peu de ménage dans code pour stacked DAE, splitté en fichiers dans un nouveau sous-répertoire.
savardf
parents:
diff changeset
24 dataset = cPickle.load(f)
5c79a2557f2f Un peu de ménage dans code pour stacked DAE, splitté en fichiers dans un nouveau sous-répertoire.
savardf
parents:
diff changeset
25 f.close()
5c79a2557f2f Un peu de ménage dans code pour stacked DAE, splitté en fichiers dans un nouveau sous-répertoire.
savardf
parents:
diff changeset
26
5c79a2557f2f Un peu de ménage dans code pour stacked DAE, splitté en fichiers dans un nouveau sous-répertoire.
savardf
parents:
diff changeset
27 n_ins = 28*28
5c79a2557f2f Un peu de ménage dans code pour stacked DAE, splitté en fichiers dans un nouveau sous-répertoire.
savardf
parents:
diff changeset
28 n_outs = 10
5c79a2557f2f Un peu de ménage dans code pour stacked DAE, splitté en fichiers dans un nouveau sous-répertoire.
savardf
parents:
diff changeset
29
5c79a2557f2f Un peu de ménage dans code pour stacked DAE, splitté en fichiers dans un nouveau sous-répertoire.
savardf
parents:
diff changeset
30 hyperparameters = DD({'finetuning_lr':learning_rate,
5c79a2557f2f Un peu de ménage dans code pour stacked DAE, splitté en fichiers dans un nouveau sous-répertoire.
savardf
parents:
diff changeset
31 'pretraining_lr':pretrain_lr,
5c79a2557f2f Un peu de ménage dans code pour stacked DAE, splitté en fichiers dans un nouveau sous-répertoire.
savardf
parents:
diff changeset
32 'pretraining_epochs_per_layer':pretraining_epochs,
5c79a2557f2f Un peu de ménage dans code pour stacked DAE, splitté en fichiers dans un nouveau sous-répertoire.
savardf
parents:
diff changeset
33 'max_finetuning_epochs':training_epochs,
5c79a2557f2f Un peu de ménage dans code pour stacked DAE, splitté en fichiers dans un nouveau sous-répertoire.
savardf
parents:
diff changeset
34 'hidden_layers_sizes':[1000,1000,1000],
5c79a2557f2f Un peu de ménage dans code pour stacked DAE, splitté en fichiers dans un nouveau sous-répertoire.
savardf
parents:
diff changeset
35 'corruption_levels':[0.2,0.2,0.2],
5c79a2557f2f Un peu de ménage dans code pour stacked DAE, splitté en fichiers dans un nouveau sous-répertoire.
savardf
parents:
diff changeset
36 'minibatch_size':20})
5c79a2557f2f Un peu de ménage dans code pour stacked DAE, splitté en fichiers dans un nouveau sous-répertoire.
savardf
parents:
diff changeset
37
5c79a2557f2f Un peu de ménage dans code pour stacked DAE, splitté en fichiers dans un nouveau sous-répertoire.
savardf
parents:
diff changeset
38 sgd_optimization(dataset, hyperparameters, n_ins, n_outs)
5c79a2557f2f Un peu de ménage dans code pour stacked DAE, splitté en fichiers dans un nouveau sous-répertoire.
savardf
parents:
diff changeset
39
5c79a2557f2f Un peu de ménage dans code pour stacked DAE, splitté en fichiers dans un nouveau sous-répertoire.
savardf
parents:
diff changeset
40 if __name__ == '__main__':
5c79a2557f2f Un peu de ménage dans code pour stacked DAE, splitté en fichiers dans un nouveau sous-répertoire.
savardf
parents:
diff changeset
41 sgd_optimization_mnist()
5c79a2557f2f Un peu de ménage dans code pour stacked DAE, splitté en fichiers dans un nouveau sous-répertoire.
savardf
parents:
diff changeset
42