Mercurial > ift6266
annotate deep/stacked_dae/nist_sda.py @ 185:b9ea8e2d071a
Enlevé ce qui concernait la réutilisation de résultats de préentraînement (trop compliqué pour peu de bénéfice: c'est le finetuning qui est vraiment long
author | fsavard |
---|---|
date | Fri, 26 Feb 2010 17:45:52 -0500 |
parents | 1f5937e9e530 |
children | d364a130b221 |
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 |
185
b9ea8e2d071a
Enlevé ce qui concernait la réutilisation de résultats de préentraînement (trop compliqué pour peu de bénéfice: c'est le finetuning qui est vraiment long
fsavard
parents:
167
diff
changeset
|
4 import ift6266 |
b9ea8e2d071a
Enlevé ce qui concernait la réutilisation de résultats de préentraînement (trop compliqué pour peu de bénéfice: c'est le finetuning qui est vraiment long
fsavard
parents:
167
diff
changeset
|
5 import pylearn |
b9ea8e2d071a
Enlevé ce qui concernait la réutilisation de résultats de préentraînement (trop compliqué pour peu de bénéfice: c'est le finetuning qui est vraiment long
fsavard
parents:
167
diff
changeset
|
6 |
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
|
7 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
|
8 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
|
9 import time |
185
b9ea8e2d071a
Enlevé ce qui concernait la réutilisation de résultats de préentraînement (trop compliqué pour peu de bénéfice: c'est le finetuning qui est vraiment long
fsavard
parents:
167
diff
changeset
|
10 |
b9ea8e2d071a
Enlevé ce qui concernait la réutilisation de résultats de préentraînement (trop compliqué pour peu de bénéfice: c'est le finetuning qui est vraiment long
fsavard
parents:
167
diff
changeset
|
11 import pylearn.version |
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
|
12 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
|
13 from theano.tensor.shared_randomstreams import RandomStreams |
185
b9ea8e2d071a
Enlevé ce qui concernait la réutilisation de résultats de préentraînement (trop compliqué pour peu de bénéfice: c'est le finetuning qui est vraiment long
fsavard
parents:
167
diff
changeset
|
14 |
139
7d8366fb90bf
Ajouté des __init__.py dans l'arborescence pour que les scripts puissent être utilisés avec des paths pour jobman, et fait pas mal de modifs dans stacked_dae pour pouvoir réutiliser le travail fait pour des tests où le pretraining est le même.
fsavard
parents:
131
diff
changeset
|
15 import copy |
7d8366fb90bf
Ajouté des __init__.py dans l'arborescence pour que les scripts puissent être utilisés avec des paths pour jobman, et fait pas mal de modifs dans stacked_dae pour pouvoir réutiliser le travail fait pour des tests où le pretraining est le même.
fsavard
parents:
131
diff
changeset
|
16 import sys |
185
b9ea8e2d071a
Enlevé ce qui concernait la réutilisation de résultats de préentraînement (trop compliqué pour peu de bénéfice: c'est le finetuning qui est vraiment long
fsavard
parents:
167
diff
changeset
|
17 import os |
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
|
18 import os.path |
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 |
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 from jobman import DD |
139
7d8366fb90bf
Ajouté des __init__.py dans l'arborescence pour que les scripts puissent être utilisés avec des paths pour jobman, et fait pas mal de modifs dans stacked_dae pour pouvoir réutiliser le travail fait pour des tests où le pretraining est le même.
fsavard
parents:
131
diff
changeset
|
21 import jobman, jobman.sql |
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
|
22 from pylearn.io import filetensor |
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 |
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 from utils import produit_croise_jobs |
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 |
185
b9ea8e2d071a
Enlevé ce qui concernait la réutilisation de résultats de préentraînement (trop compliqué pour peu de bénéfice: c'est le finetuning qui est vraiment long
fsavard
parents:
167
diff
changeset
|
26 from sgd_optimization import SdaSgdOptimizer |
b9ea8e2d071a
Enlevé ce qui concernait la réutilisation de résultats de préentraînement (trop compliqué pour peu de bénéfice: c'est le finetuning qui est vraiment long
fsavard
parents:
167
diff
changeset
|
27 |
b9ea8e2d071a
Enlevé ce qui concernait la réutilisation de résultats de préentraînement (trop compliqué pour peu de bénéfice: c'est le finetuning qui est vraiment long
fsavard
parents:
167
diff
changeset
|
28 SERIES_AVAILABLE = False |
b9ea8e2d071a
Enlevé ce qui concernait la réutilisation de résultats de préentraînement (trop compliqué pour peu de bénéfice: c'est le finetuning qui est vraiment long
fsavard
parents:
167
diff
changeset
|
29 try: |
b9ea8e2d071a
Enlevé ce qui concernait la réutilisation de résultats de préentraînement (trop compliqué pour peu de bénéfice: c'est le finetuning qui est vraiment long
fsavard
parents:
167
diff
changeset
|
30 from scalar_series import * |
b9ea8e2d071a
Enlevé ce qui concernait la réutilisation de résultats de préentraînement (trop compliqué pour peu de bénéfice: c'est le finetuning qui est vraiment long
fsavard
parents:
167
diff
changeset
|
31 SERIES_AVAILABLE = True |
b9ea8e2d071a
Enlevé ce qui concernait la réutilisation de résultats de préentraînement (trop compliqué pour peu de bénéfice: c'est le finetuning qui est vraiment long
fsavard
parents:
167
diff
changeset
|
32 except ImportError: |
b9ea8e2d071a
Enlevé ce qui concernait la réutilisation de résultats de préentraînement (trop compliqué pour peu de bénéfice: c'est le finetuning qui est vraiment long
fsavard
parents:
167
diff
changeset
|
33 print "Could not import Series" |
b9ea8e2d071a
Enlevé ce qui concernait la réutilisation de résultats de préentraînement (trop compliqué pour peu de bénéfice: c'est le finetuning qui est vraiment long
fsavard
parents:
167
diff
changeset
|
34 |
b9ea8e2d071a
Enlevé ce qui concernait la réutilisation de résultats de préentraînement (trop compliqué pour peu de bénéfice: c'est le finetuning qui est vraiment long
fsavard
parents:
167
diff
changeset
|
35 TEST_CONFIG = True |
139
7d8366fb90bf
Ajouté des __init__.py dans l'arborescence pour que les scripts puissent être utilisés avec des paths pour jobman, et fait pas mal de modifs dans stacked_dae pour pouvoir réutiliser le travail fait pour des tests où le pretraining est le même.
fsavard
parents:
131
diff
changeset
|
36 |
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
|
37 NIST_ALL_LOCATION = '/data/lisa/data/nist/by_class/all' |
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 |
185
b9ea8e2d071a
Enlevé ce qui concernait la réutilisation de résultats de préentraînement (trop compliqué pour peu de bénéfice: c'est le finetuning qui est vraiment long
fsavard
parents:
167
diff
changeset
|
39 JOBDB = 'postgres://ift6266h10@gershwin/ift6266h10_db/fsavard_sda2' |
b9ea8e2d071a
Enlevé ce qui concernait la réutilisation de résultats de préentraînement (trop compliqué pour peu de bénéfice: c'est le finetuning qui est vraiment long
fsavard
parents:
167
diff
changeset
|
40 |
139
7d8366fb90bf
Ajouté des __init__.py dans l'arborescence pour que les scripts puissent être utilisés avec des paths pour jobman, et fait pas mal de modifs dans stacked_dae pour pouvoir réutiliser le travail fait pour des tests où le pretraining est le même.
fsavard
parents:
131
diff
changeset
|
41 REDUCE_TRAIN_TO = None |
7d8366fb90bf
Ajouté des __init__.py dans l'arborescence pour que les scripts puissent être utilisés avec des paths pour jobman, et fait pas mal de modifs dans stacked_dae pour pouvoir réutiliser le travail fait pour des tests où le pretraining est le même.
fsavard
parents:
131
diff
changeset
|
42 MAX_FINETUNING_EPOCHS = 1000 |
185
b9ea8e2d071a
Enlevé ce qui concernait la réutilisation de résultats de préentraînement (trop compliqué pour peu de bénéfice: c'est le finetuning qui est vraiment long
fsavard
parents:
167
diff
changeset
|
43 REDUCE_EVERY = 1000 # number of minibatches before taking means for valid error etc. |
139
7d8366fb90bf
Ajouté des __init__.py dans l'arborescence pour que les scripts puissent être utilisés avec des paths pour jobman, et fait pas mal de modifs dans stacked_dae pour pouvoir réutiliser le travail fait pour des tests où le pretraining est le même.
fsavard
parents:
131
diff
changeset
|
44 if TEST_CONFIG: |
7d8366fb90bf
Ajouté des __init__.py dans l'arborescence pour que les scripts puissent être utilisés avec des paths pour jobman, et fait pas mal de modifs dans stacked_dae pour pouvoir réutiliser le travail fait pour des tests où le pretraining est le même.
fsavard
parents:
131
diff
changeset
|
45 REDUCE_TRAIN_TO = 1000 |
7d8366fb90bf
Ajouté des __init__.py dans l'arborescence pour que les scripts puissent être utilisés avec des paths pour jobman, et fait pas mal de modifs dans stacked_dae pour pouvoir réutiliser le travail fait pour des tests où le pretraining est le même.
fsavard
parents:
131
diff
changeset
|
46 MAX_FINETUNING_EPOCHS = 2 |
185
b9ea8e2d071a
Enlevé ce qui concernait la réutilisation de résultats de préentraînement (trop compliqué pour peu de bénéfice: c'est le finetuning qui est vraiment long
fsavard
parents:
167
diff
changeset
|
47 REDUCE_EVERY = 10 |
139
7d8366fb90bf
Ajouté des __init__.py dans l'arborescence pour que les scripts puissent être utilisés avec des paths pour jobman, et fait pas mal de modifs dans stacked_dae pour pouvoir réutiliser le travail fait pour des tests où le pretraining est le même.
fsavard
parents:
131
diff
changeset
|
48 |
7d8366fb90bf
Ajouté des __init__.py dans l'arborescence pour que les scripts puissent être utilisés avec des paths pour jobman, et fait pas mal de modifs dans stacked_dae pour pouvoir réutiliser le travail fait pour des tests où le pretraining est le même.
fsavard
parents:
131
diff
changeset
|
49 EXPERIMENT_PATH = "ift6266.scripts.stacked_dae.nist_sda.jobman_entrypoint" |
7d8366fb90bf
Ajouté des __init__.py dans l'arborescence pour que les scripts puissent être utilisés avec des paths pour jobman, et fait pas mal de modifs dans stacked_dae pour pouvoir réutiliser le travail fait pour des tests où le pretraining est le même.
fsavard
parents:
131
diff
changeset
|
50 |
185
b9ea8e2d071a
Enlevé ce qui concernait la réutilisation de résultats de préentraînement (trop compliqué pour peu de bénéfice: c'est le finetuning qui est vraiment long
fsavard
parents:
167
diff
changeset
|
51 JOB_VALS = {'pretraining_lr': [0.1, 0.01],#, 0.001],#, 0.0001], |
139
7d8366fb90bf
Ajouté des __init__.py dans l'arborescence pour que les scripts puissent être utilisés avec des paths pour jobman, et fait pas mal de modifs dans stacked_dae pour pouvoir réutiliser le travail fait pour des tests où le pretraining est le même.
fsavard
parents:
131
diff
changeset
|
52 'pretraining_epochs_per_layer': [10,20], |
7d8366fb90bf
Ajouté des __init__.py dans l'arborescence pour que les scripts puissent être utilisés avec des paths pour jobman, et fait pas mal de modifs dans stacked_dae pour pouvoir réutiliser le travail fait pour des tests où le pretraining est le même.
fsavard
parents:
131
diff
changeset
|
53 'hidden_layers_sizes': [300,800], |
185
b9ea8e2d071a
Enlevé ce qui concernait la réutilisation de résultats de préentraînement (trop compliqué pour peu de bénéfice: c'est le finetuning qui est vraiment long
fsavard
parents:
167
diff
changeset
|
54 'corruption_levels': [0.1,0.2,0.3], |
139
7d8366fb90bf
Ajouté des __init__.py dans l'arborescence pour que les scripts puissent être utilisés avec des paths pour jobman, et fait pas mal de modifs dans stacked_dae pour pouvoir réutiliser le travail fait pour des tests où le pretraining est le même.
fsavard
parents:
131
diff
changeset
|
55 'minibatch_size': [20], |
185
b9ea8e2d071a
Enlevé ce qui concernait la réutilisation de résultats de préentraînement (trop compliqué pour peu de bénéfice: c'est le finetuning qui est vraiment long
fsavard
parents:
167
diff
changeset
|
56 'max_finetuning_epochs':[MAX_FINETUNING_EPOCHS], |
b9ea8e2d071a
Enlevé ce qui concernait la réutilisation de résultats de préentraînement (trop compliqué pour peu de bénéfice: c'est le finetuning qui est vraiment long
fsavard
parents:
167
diff
changeset
|
57 'finetuning_lr':[0.1, 0.01], #0.001 was very bad, so we leave it out |
b9ea8e2d071a
Enlevé ce qui concernait la réutilisation de résultats de préentraînement (trop compliqué pour peu de bénéfice: c'est le finetuning qui est vraiment long
fsavard
parents:
167
diff
changeset
|
58 'num_hidden_layers':[2,3]} |
139
7d8366fb90bf
Ajouté des __init__.py dans l'arborescence pour que les scripts puissent être utilisés avec des paths pour jobman, et fait pas mal de modifs dans stacked_dae pour pouvoir réutiliser le travail fait pour des tests où le pretraining est le même.
fsavard
parents:
131
diff
changeset
|
59 |
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
|
60 # Just useful for tests... minimal number of epochs |
139
7d8366fb90bf
Ajouté des __init__.py dans l'arborescence pour que les scripts puissent être utilisés avec des paths pour jobman, et fait pas mal de modifs dans stacked_dae pour pouvoir réutiliser le travail fait pour des tests où le pretraining est le même.
fsavard
parents:
131
diff
changeset
|
61 DEFAULT_HP_NIST = DD({'finetuning_lr':0.01, |
7d8366fb90bf
Ajouté des __init__.py dans l'arborescence pour que les scripts puissent être utilisés avec des paths pour jobman, et fait pas mal de modifs dans stacked_dae pour pouvoir réutiliser le travail fait pour des tests où le pretraining est le même.
fsavard
parents:
131
diff
changeset
|
62 'pretraining_lr':0.01, |
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
|
63 'pretraining_epochs_per_layer':1, |
5c79a2557f2f
Un peu de ménage dans code pour stacked DAE, splitté en fichiers dans un nouveau sous-répertoire.
savardf
parents:
diff
changeset
|
64 'max_finetuning_epochs':1, |
185
b9ea8e2d071a
Enlevé ce qui concernait la réutilisation de résultats de préentraînement (trop compliqué pour peu de bénéfice: c'est le finetuning qui est vraiment long
fsavard
parents:
167
diff
changeset
|
65 'hidden_layers_sizes':1000, |
b9ea8e2d071a
Enlevé ce qui concernait la réutilisation de résultats de préentraînement (trop compliqué pour peu de bénéfice: c'est le finetuning qui est vraiment long
fsavard
parents:
167
diff
changeset
|
66 'corruption_levels':0.2, |
b9ea8e2d071a
Enlevé ce qui concernait la réutilisation de résultats de préentraînement (trop compliqué pour peu de bénéfice: c'est le finetuning qui est vraiment long
fsavard
parents:
167
diff
changeset
|
67 'minibatch_size':20, |
b9ea8e2d071a
Enlevé ce qui concernait la réutilisation de résultats de préentraînement (trop compliqué pour peu de bénéfice: c'est le finetuning qui est vraiment long
fsavard
parents:
167
diff
changeset
|
68 'reduce_train_to':1000, |
b9ea8e2d071a
Enlevé ce qui concernait la réutilisation de résultats de préentraînement (trop compliqué pour peu de bénéfice: c'est le finetuning qui est vraiment long
fsavard
parents:
167
diff
changeset
|
69 'num_hidden_layers':1}) |
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
|
70 |
139
7d8366fb90bf
Ajouté des __init__.py dans l'arborescence pour que les scripts puissent être utilisés avec des paths pour jobman, et fait pas mal de modifs dans stacked_dae pour pouvoir réutiliser le travail fait pour des tests où le pretraining est le même.
fsavard
parents:
131
diff
changeset
|
71 def jobman_entrypoint(state, channel): |
185
b9ea8e2d071a
Enlevé ce qui concernait la réutilisation de résultats de préentraînement (trop compliqué pour peu de bénéfice: c'est le finetuning qui est vraiment long
fsavard
parents:
167
diff
changeset
|
72 pylearn.version.record_versions(state,[theano,ift6266,pylearn]) |
b9ea8e2d071a
Enlevé ce qui concernait la réutilisation de résultats de préentraînement (trop compliqué pour peu de bénéfice: c'est le finetuning qui est vraiment long
fsavard
parents:
167
diff
changeset
|
73 channel.save() |
b9ea8e2d071a
Enlevé ce qui concernait la réutilisation de résultats de préentraînement (trop compliqué pour peu de bénéfice: c'est le finetuning qui est vraiment long
fsavard
parents:
167
diff
changeset
|
74 |
b9ea8e2d071a
Enlevé ce qui concernait la réutilisation de résultats de préentraînement (trop compliqué pour peu de bénéfice: c'est le finetuning qui est vraiment long
fsavard
parents:
167
diff
changeset
|
75 workingdir = os.getcwd() |
139
7d8366fb90bf
Ajouté des __init__.py dans l'arborescence pour que les scripts puissent être utilisés avec des paths pour jobman, et fait pas mal de modifs dans stacked_dae pour pouvoir réutiliser le travail fait pour des tests où le pretraining est le même.
fsavard
parents:
131
diff
changeset
|
76 |
7d8366fb90bf
Ajouté des __init__.py dans l'arborescence pour que les scripts puissent être utilisés avec des paths pour jobman, et fait pas mal de modifs dans stacked_dae pour pouvoir réutiliser le travail fait pour des tests où le pretraining est le même.
fsavard
parents:
131
diff
changeset
|
77 print "Will load NIST" |
185
b9ea8e2d071a
Enlevé ce qui concernait la réutilisation de résultats de préentraînement (trop compliqué pour peu de bénéfice: c'est le finetuning qui est vraiment long
fsavard
parents:
167
diff
changeset
|
78 sys.stdout.flush() |
b9ea8e2d071a
Enlevé ce qui concernait la réutilisation de résultats de préentraînement (trop compliqué pour peu de bénéfice: c'est le finetuning qui est vraiment long
fsavard
parents:
167
diff
changeset
|
79 |
139
7d8366fb90bf
Ajouté des __init__.py dans l'arborescence pour que les scripts puissent être utilisés avec des paths pour jobman, et fait pas mal de modifs dans stacked_dae pour pouvoir réutiliser le travail fait pour des tests où le pretraining est le même.
fsavard
parents:
131
diff
changeset
|
80 nist = NIST(20) |
185
b9ea8e2d071a
Enlevé ce qui concernait la réutilisation de résultats de préentraînement (trop compliqué pour peu de bénéfice: c'est le finetuning qui est vraiment long
fsavard
parents:
167
diff
changeset
|
81 |
139
7d8366fb90bf
Ajouté des __init__.py dans l'arborescence pour que les scripts puissent être utilisés avec des paths pour jobman, et fait pas mal de modifs dans stacked_dae pour pouvoir réutiliser le travail fait pour des tests où le pretraining est le même.
fsavard
parents:
131
diff
changeset
|
82 print "NIST loaded" |
185
b9ea8e2d071a
Enlevé ce qui concernait la réutilisation de résultats de préentraînement (trop compliqué pour peu de bénéfice: c'est le finetuning qui est vraiment long
fsavard
parents:
167
diff
changeset
|
83 sys.stdout.flush() |
139
7d8366fb90bf
Ajouté des __init__.py dans l'arborescence pour que les scripts puissent être utilisés avec des paths pour jobman, et fait pas mal de modifs dans stacked_dae pour pouvoir réutiliser le travail fait pour des tests où le pretraining est le même.
fsavard
parents:
131
diff
changeset
|
84 |
7d8366fb90bf
Ajouté des __init__.py dans l'arborescence pour que les scripts puissent être utilisés avec des paths pour jobman, et fait pas mal de modifs dans stacked_dae pour pouvoir réutiliser le travail fait pour des tests où le pretraining est le même.
fsavard
parents:
131
diff
changeset
|
85 rtt = None |
7d8366fb90bf
Ajouté des __init__.py dans l'arborescence pour que les scripts puissent être utilisés avec des paths pour jobman, et fait pas mal de modifs dans stacked_dae pour pouvoir réutiliser le travail fait pour des tests où le pretraining est le même.
fsavard
parents:
131
diff
changeset
|
86 if state.has_key('reduce_train_to'): |
7d8366fb90bf
Ajouté des __init__.py dans l'arborescence pour que les scripts puissent être utilisés avec des paths pour jobman, et fait pas mal de modifs dans stacked_dae pour pouvoir réutiliser le travail fait pour des tests où le pretraining est le même.
fsavard
parents:
131
diff
changeset
|
87 rtt = state['reduce_train_to'] |
7d8366fb90bf
Ajouté des __init__.py dans l'arborescence pour que les scripts puissent être utilisés avec des paths pour jobman, et fait pas mal de modifs dans stacked_dae pour pouvoir réutiliser le travail fait pour des tests où le pretraining est le même.
fsavard
parents:
131
diff
changeset
|
88 elif REDUCE_TRAIN_TO: |
7d8366fb90bf
Ajouté des __init__.py dans l'arborescence pour que les scripts puissent être utilisés avec des paths pour jobman, et fait pas mal de modifs dans stacked_dae pour pouvoir réutiliser le travail fait pour des tests où le pretraining est le même.
fsavard
parents:
131
diff
changeset
|
89 rtt = REDUCE_TRAIN_TO |
7d8366fb90bf
Ajouté des __init__.py dans l'arborescence pour que les scripts puissent être utilisés avec des paths pour jobman, et fait pas mal de modifs dans stacked_dae pour pouvoir réutiliser le travail fait pour des tests où le pretraining est le même.
fsavard
parents:
131
diff
changeset
|
90 |
7d8366fb90bf
Ajouté des __init__.py dans l'arborescence pour que les scripts puissent être utilisés avec des paths pour jobman, et fait pas mal de modifs dans stacked_dae pour pouvoir réutiliser le travail fait pour des tests où le pretraining est le même.
fsavard
parents:
131
diff
changeset
|
91 if rtt: |
7d8366fb90bf
Ajouté des __init__.py dans l'arborescence pour que les scripts puissent être utilisés avec des paths pour jobman, et fait pas mal de modifs dans stacked_dae pour pouvoir réutiliser le travail fait pour des tests où le pretraining est le même.
fsavard
parents:
131
diff
changeset
|
92 print "Reducing training set to ", rtt, " examples" |
7d8366fb90bf
Ajouté des __init__.py dans l'arborescence pour que les scripts puissent être utilisés avec des paths pour jobman, et fait pas mal de modifs dans stacked_dae pour pouvoir réutiliser le travail fait pour des tests où le pretraining est le même.
fsavard
parents:
131
diff
changeset
|
93 nist.reduce_train_set(rtt) |
7d8366fb90bf
Ajouté des __init__.py dans l'arborescence pour que les scripts puissent être utilisés avec des paths pour jobman, et fait pas mal de modifs dans stacked_dae pour pouvoir réutiliser le travail fait pour des tests où le pretraining est le même.
fsavard
parents:
131
diff
changeset
|
94 |
7d8366fb90bf
Ajouté des __init__.py dans l'arborescence pour que les scripts puissent être utilisés avec des paths pour jobman, et fait pas mal de modifs dans stacked_dae pour pouvoir réutiliser le travail fait pour des tests où le pretraining est le même.
fsavard
parents:
131
diff
changeset
|
95 train,valid,test = nist.get_tvt() |
7d8366fb90bf
Ajouté des __init__.py dans l'arborescence pour que les scripts puissent être utilisés avec des paths pour jobman, et fait pas mal de modifs dans stacked_dae pour pouvoir réutiliser le travail fait pour des tests où le pretraining est le même.
fsavard
parents:
131
diff
changeset
|
96 dataset = (train,valid,test) |
7d8366fb90bf
Ajouté des __init__.py dans l'arborescence pour que les scripts puissent être utilisés avec des paths pour jobman, et fait pas mal de modifs dans stacked_dae pour pouvoir réutiliser le travail fait pour des tests où le pretraining est le même.
fsavard
parents:
131
diff
changeset
|
97 |
7d8366fb90bf
Ajouté des __init__.py dans l'arborescence pour que les scripts puissent être utilisés avec des paths pour jobman, et fait pas mal de modifs dans stacked_dae pour pouvoir réutiliser le travail fait pour des tests où le pretraining est le même.
fsavard
parents:
131
diff
changeset
|
98 n_ins = 32*32 |
7d8366fb90bf
Ajouté des __init__.py dans l'arborescence pour que les scripts puissent être utilisés avec des paths pour jobman, et fait pas mal de modifs dans stacked_dae pour pouvoir réutiliser le travail fait pour des tests où le pretraining est le même.
fsavard
parents:
131
diff
changeset
|
99 n_outs = 62 # 10 digits, 26*2 (lower, capitals) |
7d8366fb90bf
Ajouté des __init__.py dans l'arborescence pour que les scripts puissent être utilisés avec des paths pour jobman, et fait pas mal de modifs dans stacked_dae pour pouvoir réutiliser le travail fait pour des tests où le pretraining est le même.
fsavard
parents:
131
diff
changeset
|
100 |
185
b9ea8e2d071a
Enlevé ce qui concernait la réutilisation de résultats de préentraînement (trop compliqué pour peu de bénéfice: c'est le finetuning qui est vraiment long
fsavard
parents:
167
diff
changeset
|
101 hls = state.hidden_layers_sizes |
b9ea8e2d071a
Enlevé ce qui concernait la réutilisation de résultats de préentraînement (trop compliqué pour peu de bénéfice: c'est le finetuning qui est vraiment long
fsavard
parents:
167
diff
changeset
|
102 cl = state.corruption_levels |
b9ea8e2d071a
Enlevé ce qui concernait la réutilisation de résultats de préentraînement (trop compliqué pour peu de bénéfice: c'est le finetuning qui est vraiment long
fsavard
parents:
167
diff
changeset
|
103 nhl = state.num_hidden_layers |
b9ea8e2d071a
Enlevé ce qui concernait la réutilisation de résultats de préentraînement (trop compliqué pour peu de bénéfice: c'est le finetuning qui est vraiment long
fsavard
parents:
167
diff
changeset
|
104 state.hidden_layers_sizes = [hls] * nhl |
b9ea8e2d071a
Enlevé ce qui concernait la réutilisation de résultats de préentraînement (trop compliqué pour peu de bénéfice: c'est le finetuning qui est vraiment long
fsavard
parents:
167
diff
changeset
|
105 state.corruption_levels = [cl] * nhl |
b9ea8e2d071a
Enlevé ce qui concernait la réutilisation de résultats de préentraînement (trop compliqué pour peu de bénéfice: c'est le finetuning qui est vraiment long
fsavard
parents:
167
diff
changeset
|
106 |
b9ea8e2d071a
Enlevé ce qui concernait la réutilisation de résultats de préentraînement (trop compliqué pour peu de bénéfice: c'est le finetuning qui est vraiment long
fsavard
parents:
167
diff
changeset
|
107 # b,b',W for each hidden layer + b,W of last layer (logreg) |
b9ea8e2d071a
Enlevé ce qui concernait la réutilisation de résultats de préentraînement (trop compliqué pour peu de bénéfice: c'est le finetuning qui est vraiment long
fsavard
parents:
167
diff
changeset
|
108 numparams = nhl * 3 + 2 |
b9ea8e2d071a
Enlevé ce qui concernait la réutilisation de résultats de préentraînement (trop compliqué pour peu de bénéfice: c'est le finetuning qui est vraiment long
fsavard
parents:
167
diff
changeset
|
109 series_mux = None |
b9ea8e2d071a
Enlevé ce qui concernait la réutilisation de résultats de préentraînement (trop compliqué pour peu de bénéfice: c'est le finetuning qui est vraiment long
fsavard
parents:
167
diff
changeset
|
110 if SERIES_AVAILABLE: |
b9ea8e2d071a
Enlevé ce qui concernait la réutilisation de résultats de préentraînement (trop compliqué pour peu de bénéfice: c'est le finetuning qui est vraiment long
fsavard
parents:
167
diff
changeset
|
111 series_mux = create_series(workingdir, numparams) |
b9ea8e2d071a
Enlevé ce qui concernait la réutilisation de résultats de préentraînement (trop compliqué pour peu de bénéfice: c'est le finetuning qui est vraiment long
fsavard
parents:
167
diff
changeset
|
112 |
b9ea8e2d071a
Enlevé ce qui concernait la réutilisation de résultats de préentraînement (trop compliqué pour peu de bénéfice: c'est le finetuning qui est vraiment long
fsavard
parents:
167
diff
changeset
|
113 optimizer = SdaSgdOptimizer(dataset=dataset, hyperparameters=state, \ |
b9ea8e2d071a
Enlevé ce qui concernait la réutilisation de résultats de préentraînement (trop compliqué pour peu de bénéfice: c'est le finetuning qui est vraiment long
fsavard
parents:
167
diff
changeset
|
114 n_ins=n_ins, n_outs=n_outs,\ |
b9ea8e2d071a
Enlevé ce qui concernait la réutilisation de résultats de préentraînement (trop compliqué pour peu de bénéfice: c'est le finetuning qui est vraiment long
fsavard
parents:
167
diff
changeset
|
115 input_divider=255.0, series_mux=series_mux) |
b9ea8e2d071a
Enlevé ce qui concernait la réutilisation de résultats de préentraînement (trop compliqué pour peu de bénéfice: c'est le finetuning qui est vraiment long
fsavard
parents:
167
diff
changeset
|
116 |
b9ea8e2d071a
Enlevé ce qui concernait la réutilisation de résultats de préentraînement (trop compliqué pour peu de bénéfice: c'est le finetuning qui est vraiment long
fsavard
parents:
167
diff
changeset
|
117 optimizer.pretrain() |
b9ea8e2d071a
Enlevé ce qui concernait la réutilisation de résultats de préentraînement (trop compliqué pour peu de bénéfice: c'est le finetuning qui est vraiment long
fsavard
parents:
167
diff
changeset
|
118 channel.save() |
b9ea8e2d071a
Enlevé ce qui concernait la réutilisation de résultats de préentraînement (trop compliqué pour peu de bénéfice: c'est le finetuning qui est vraiment long
fsavard
parents:
167
diff
changeset
|
119 |
b9ea8e2d071a
Enlevé ce qui concernait la réutilisation de résultats de préentraînement (trop compliqué pour peu de bénéfice: c'est le finetuning qui est vraiment long
fsavard
parents:
167
diff
changeset
|
120 optimizer.finetune() |
b9ea8e2d071a
Enlevé ce qui concernait la réutilisation de résultats de préentraînement (trop compliqué pour peu de bénéfice: c'est le finetuning qui est vraiment long
fsavard
parents:
167
diff
changeset
|
121 channel.save() |
b9ea8e2d071a
Enlevé ce qui concernait la réutilisation de résultats de préentraînement (trop compliqué pour peu de bénéfice: c'est le finetuning qui est vraiment long
fsavard
parents:
167
diff
changeset
|
122 |
b9ea8e2d071a
Enlevé ce qui concernait la réutilisation de résultats de préentraînement (trop compliqué pour peu de bénéfice: c'est le finetuning qui est vraiment long
fsavard
parents:
167
diff
changeset
|
123 pylearn.version.record_versions(state,[theano,ift6266,pylearn]) |
b9ea8e2d071a
Enlevé ce qui concernait la réutilisation de résultats de préentraînement (trop compliqué pour peu de bénéfice: c'est le finetuning qui est vraiment long
fsavard
parents:
167
diff
changeset
|
124 channel.save() |
139
7d8366fb90bf
Ajouté des __init__.py dans l'arborescence pour que les scripts puissent être utilisés avec des paths pour jobman, et fait pas mal de modifs dans stacked_dae pour pouvoir réutiliser le travail fait pour des tests où le pretraining est le même.
fsavard
parents:
131
diff
changeset
|
125 |
7d8366fb90bf
Ajouté des __init__.py dans l'arborescence pour que les scripts puissent être utilisés avec des paths pour jobman, et fait pas mal de modifs dans stacked_dae pour pouvoir réutiliser le travail fait pour des tests où le pretraining est le même.
fsavard
parents:
131
diff
changeset
|
126 return channel.COMPLETE |
7d8366fb90bf
Ajouté des __init__.py dans l'arborescence pour que les scripts puissent être utilisés avec des paths pour jobman, et fait pas mal de modifs dans stacked_dae pour pouvoir réutiliser le travail fait pour des tests où le pretraining est le même.
fsavard
parents:
131
diff
changeset
|
127 |
185
b9ea8e2d071a
Enlevé ce qui concernait la réutilisation de résultats de préentraînement (trop compliqué pour peu de bénéfice: c'est le finetuning qui est vraiment long
fsavard
parents:
167
diff
changeset
|
128 def create_series(basedir, numparams): |
b9ea8e2d071a
Enlevé ce qui concernait la réutilisation de résultats de préentraînement (trop compliqué pour peu de bénéfice: c'est le finetuning qui est vraiment long
fsavard
parents:
167
diff
changeset
|
129 mux = SeriesMultiplexer() |
b9ea8e2d071a
Enlevé ce qui concernait la réutilisation de résultats de préentraînement (trop compliqué pour peu de bénéfice: c'est le finetuning qui est vraiment long
fsavard
parents:
167
diff
changeset
|
130 |
b9ea8e2d071a
Enlevé ce qui concernait la réutilisation de résultats de préentraînement (trop compliqué pour peu de bénéfice: c'est le finetuning qui est vraiment long
fsavard
parents:
167
diff
changeset
|
131 # comment out series we don't want to save |
b9ea8e2d071a
Enlevé ce qui concernait la réutilisation de résultats de préentraînement (trop compliqué pour peu de bénéfice: c'est le finetuning qui est vraiment long
fsavard
parents:
167
diff
changeset
|
132 mux.add_series(AccumulatorSeries(name="reconstruction_error", |
b9ea8e2d071a
Enlevé ce qui concernait la réutilisation de résultats de préentraînement (trop compliqué pour peu de bénéfice: c'est le finetuning qui est vraiment long
fsavard
parents:
167
diff
changeset
|
133 reduce_every=REDUCE_EVERY, # every 1000 batches, we take the mean and save |
b9ea8e2d071a
Enlevé ce qui concernait la réutilisation de résultats de préentraînement (trop compliqué pour peu de bénéfice: c'est le finetuning qui est vraiment long
fsavard
parents:
167
diff
changeset
|
134 mean=True, |
b9ea8e2d071a
Enlevé ce qui concernait la réutilisation de résultats de préentraînement (trop compliqué pour peu de bénéfice: c'est le finetuning qui est vraiment long
fsavard
parents:
167
diff
changeset
|
135 directory=basedir, flush_every=1)) |
139
7d8366fb90bf
Ajouté des __init__.py dans l'arborescence pour que les scripts puissent être utilisés avec des paths pour jobman, et fait pas mal de modifs dans stacked_dae pour pouvoir réutiliser le travail fait pour des tests où le pretraining est le même.
fsavard
parents:
131
diff
changeset
|
136 |
185
b9ea8e2d071a
Enlevé ce qui concernait la réutilisation de résultats de préentraînement (trop compliqué pour peu de bénéfice: c'est le finetuning qui est vraiment long
fsavard
parents:
167
diff
changeset
|
137 mux.add_series(AccumulatorSeries(name="training_error", |
b9ea8e2d071a
Enlevé ce qui concernait la réutilisation de résultats de préentraînement (trop compliqué pour peu de bénéfice: c'est le finetuning qui est vraiment long
fsavard
parents:
167
diff
changeset
|
138 reduce_every=REDUCE_EVERY, # every 1000 batches, we take the mean and save |
b9ea8e2d071a
Enlevé ce qui concernait la réutilisation de résultats de préentraînement (trop compliqué pour peu de bénéfice: c'est le finetuning qui est vraiment long
fsavard
parents:
167
diff
changeset
|
139 mean=True, |
b9ea8e2d071a
Enlevé ce qui concernait la réutilisation de résultats de préentraînement (trop compliqué pour peu de bénéfice: c'est le finetuning qui est vraiment long
fsavard
parents:
167
diff
changeset
|
140 directory=basedir, flush_every=1)) |
b9ea8e2d071a
Enlevé ce qui concernait la réutilisation de résultats de préentraînement (trop compliqué pour peu de bénéfice: c'est le finetuning qui est vraiment long
fsavard
parents:
167
diff
changeset
|
141 |
b9ea8e2d071a
Enlevé ce qui concernait la réutilisation de résultats de préentraînement (trop compliqué pour peu de bénéfice: c'est le finetuning qui est vraiment long
fsavard
parents:
167
diff
changeset
|
142 mux.add_series(BaseSeries(name="validation_error", directory=basedir, flush_every=1)) |
b9ea8e2d071a
Enlevé ce qui concernait la réutilisation de résultats de préentraînement (trop compliqué pour peu de bénéfice: c'est le finetuning qui est vraiment long
fsavard
parents:
167
diff
changeset
|
143 mux.add_series(BaseSeries(name="test_error", directory=basedir, flush_every=1)) |
b9ea8e2d071a
Enlevé ce qui concernait la réutilisation de résultats de préentraînement (trop compliqué pour peu de bénéfice: c'est le finetuning qui est vraiment long
fsavard
parents:
167
diff
changeset
|
144 |
b9ea8e2d071a
Enlevé ce qui concernait la réutilisation de résultats de préentraînement (trop compliqué pour peu de bénéfice: c'est le finetuning qui est vraiment long
fsavard
parents:
167
diff
changeset
|
145 mux.add_series(ParamsArrayStats(numparams,name="params",directory=basedir)) |
b9ea8e2d071a
Enlevé ce qui concernait la réutilisation de résultats de préentraînement (trop compliqué pour peu de bénéfice: c'est le finetuning qui est vraiment long
fsavard
parents:
167
diff
changeset
|
146 |
b9ea8e2d071a
Enlevé ce qui concernait la réutilisation de résultats de préentraînement (trop compliqué pour peu de bénéfice: c'est le finetuning qui est vraiment long
fsavard
parents:
167
diff
changeset
|
147 return mux |
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
|
148 |
5c79a2557f2f
Un peu de ménage dans code pour stacked DAE, splitté en fichiers dans un nouveau sous-répertoire.
savardf
parents:
diff
changeset
|
149 def jobman_insert_nist(): |
139
7d8366fb90bf
Ajouté des __init__.py dans l'arborescence pour que les scripts puissent être utilisés avec des paths pour jobman, et fait pas mal de modifs dans stacked_dae pour pouvoir réutiliser le travail fait pour des tests où le pretraining est le même.
fsavard
parents:
131
diff
changeset
|
150 jobs = produit_croise_jobs(JOB_VALS) |
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
|
151 |
185
b9ea8e2d071a
Enlevé ce qui concernait la réutilisation de résultats de préentraînement (trop compliqué pour peu de bénéfice: c'est le finetuning qui est vraiment long
fsavard
parents:
167
diff
changeset
|
152 db = jobman.sql.db(JOBDB) |
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
|
153 for job in jobs: |
139
7d8366fb90bf
Ajouté des __init__.py dans l'arborescence pour que les scripts puissent être utilisés avec des paths pour jobman, et fait pas mal de modifs dans stacked_dae pour pouvoir réutiliser le travail fait pour des tests où le pretraining est le même.
fsavard
parents:
131
diff
changeset
|
154 job.update({jobman.sql.EXPERIMENT: EXPERIMENT_PATH}) |
7d8366fb90bf
Ajouté des __init__.py dans l'arborescence pour que les scripts puissent être utilisés avec des paths pour jobman, et fait pas mal de modifs dans stacked_dae pour pouvoir réutiliser le travail fait pour des tests où le pretraining est le même.
fsavard
parents:
131
diff
changeset
|
155 jobman.sql.insert_dict(job, db) |
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
|
156 |
139
7d8366fb90bf
Ajouté des __init__.py dans l'arborescence pour que les scripts puissent être utilisés avec des paths pour jobman, et fait pas mal de modifs dans stacked_dae pour pouvoir réutiliser le travail fait pour des tests où le pretraining est le même.
fsavard
parents:
131
diff
changeset
|
157 print "inserted" |
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
|
158 |
5c79a2557f2f
Un peu de ménage dans code pour stacked DAE, splitté en fichiers dans un nouveau sous-répertoire.
savardf
parents:
diff
changeset
|
159 class NIST: |
139
7d8366fb90bf
Ajouté des __init__.py dans l'arborescence pour que les scripts puissent être utilisés avec des paths pour jobman, et fait pas mal de modifs dans stacked_dae pour pouvoir réutiliser le travail fait pour des tests où le pretraining est le même.
fsavard
parents:
131
diff
changeset
|
160 def __init__(self, minibatch_size, basepath=None, reduce_train_to=None): |
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
|
161 global NIST_ALL_LOCATION |
5c79a2557f2f
Un peu de ménage dans code pour stacked DAE, splitté en fichiers dans un nouveau sous-répertoire.
savardf
parents:
diff
changeset
|
162 |
5c79a2557f2f
Un peu de ménage dans code pour stacked DAE, splitté en fichiers dans un nouveau sous-répertoire.
savardf
parents:
diff
changeset
|
163 self.minibatch_size = minibatch_size |
5c79a2557f2f
Un peu de ménage dans code pour stacked DAE, splitté en fichiers dans un nouveau sous-répertoire.
savardf
parents:
diff
changeset
|
164 self.basepath = basepath and basepath or NIST_ALL_LOCATION |
5c79a2557f2f
Un peu de ménage dans code pour stacked DAE, splitté en fichiers dans un nouveau sous-répertoire.
savardf
parents:
diff
changeset
|
165 |
5c79a2557f2f
Un peu de ménage dans code pour stacked DAE, splitté en fichiers dans un nouveau sous-répertoire.
savardf
parents:
diff
changeset
|
166 self.set_filenames() |
5c79a2557f2f
Un peu de ménage dans code pour stacked DAE, splitté en fichiers dans un nouveau sous-répertoire.
savardf
parents:
diff
changeset
|
167 |
5c79a2557f2f
Un peu de ménage dans code pour stacked DAE, splitté en fichiers dans un nouveau sous-répertoire.
savardf
parents:
diff
changeset
|
168 # arrays of 2 elements: .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
|
169 self.train = [None, None] |
5c79a2557f2f
Un peu de ménage dans code pour stacked DAE, splitté en fichiers dans un nouveau sous-répertoire.
savardf
parents:
diff
changeset
|
170 self.test = [None, None] |
5c79a2557f2f
Un peu de ménage dans code pour stacked DAE, splitté en fichiers dans un nouveau sous-répertoire.
savardf
parents:
diff
changeset
|
171 |
5c79a2557f2f
Un peu de ménage dans code pour stacked DAE, splitté en fichiers dans un nouveau sous-répertoire.
savardf
parents:
diff
changeset
|
172 self.load_train_test() |
5c79a2557f2f
Un peu de ménage dans code pour stacked DAE, splitté en fichiers dans un nouveau sous-répertoire.
savardf
parents:
diff
changeset
|
173 |
5c79a2557f2f
Un peu de ménage dans code pour stacked DAE, splitté en fichiers dans un nouveau sous-répertoire.
savardf
parents:
diff
changeset
|
174 self.valid = [[], []] |
139
7d8366fb90bf
Ajouté des __init__.py dans l'arborescence pour que les scripts puissent être utilisés avec des paths pour jobman, et fait pas mal de modifs dans stacked_dae pour pouvoir réutiliser le travail fait pour des tests où le pretraining est le même.
fsavard
parents:
131
diff
changeset
|
175 self.split_train_valid() |
7d8366fb90bf
Ajouté des __init__.py dans l'arborescence pour que les scripts puissent être utilisés avec des paths pour jobman, et fait pas mal de modifs dans stacked_dae pour pouvoir réutiliser le travail fait pour des tests où le pretraining est le même.
fsavard
parents:
131
diff
changeset
|
176 if reduce_train_to: |
7d8366fb90bf
Ajouté des __init__.py dans l'arborescence pour que les scripts puissent être utilisés avec des paths pour jobman, et fait pas mal de modifs dans stacked_dae pour pouvoir réutiliser le travail fait pour des tests où le pretraining est le même.
fsavard
parents:
131
diff
changeset
|
177 self.reduce_train_set(reduce_train_to) |
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
|
178 |
5c79a2557f2f
Un peu de ménage dans code pour stacked DAE, splitté en fichiers dans un nouveau sous-répertoire.
savardf
parents:
diff
changeset
|
179 def get_tvt(self): |
5c79a2557f2f
Un peu de ménage dans code pour stacked DAE, splitté en fichiers dans un nouveau sous-répertoire.
savardf
parents:
diff
changeset
|
180 return self.train, self.valid, self.test |
5c79a2557f2f
Un peu de ménage dans code pour stacked DAE, splitté en fichiers dans un nouveau sous-répertoire.
savardf
parents:
diff
changeset
|
181 |
5c79a2557f2f
Un peu de ménage dans code pour stacked DAE, splitté en fichiers dans un nouveau sous-répertoire.
savardf
parents:
diff
changeset
|
182 def set_filenames(self): |
5c79a2557f2f
Un peu de ménage dans code pour stacked DAE, splitté en fichiers dans un nouveau sous-répertoire.
savardf
parents:
diff
changeset
|
183 self.train_files = ['all_train_data.ft', |
5c79a2557f2f
Un peu de ménage dans code pour stacked DAE, splitté en fichiers dans un nouveau sous-répertoire.
savardf
parents:
diff
changeset
|
184 'all_train_labels.ft'] |
5c79a2557f2f
Un peu de ménage dans code pour stacked DAE, splitté en fichiers dans un nouveau sous-répertoire.
savardf
parents:
diff
changeset
|
185 |
5c79a2557f2f
Un peu de ménage dans code pour stacked DAE, splitté en fichiers dans un nouveau sous-répertoire.
savardf
parents:
diff
changeset
|
186 self.test_files = ['all_test_data.ft', |
5c79a2557f2f
Un peu de ménage dans code pour stacked DAE, splitté en fichiers dans un nouveau sous-répertoire.
savardf
parents:
diff
changeset
|
187 'all_test_labels.ft'] |
5c79a2557f2f
Un peu de ménage dans code pour stacked DAE, splitté en fichiers dans un nouveau sous-répertoire.
savardf
parents:
diff
changeset
|
188 |
5c79a2557f2f
Un peu de ménage dans code pour stacked DAE, splitté en fichiers dans un nouveau sous-répertoire.
savardf
parents:
diff
changeset
|
189 def load_train_test(self): |
5c79a2557f2f
Un peu de ménage dans code pour stacked DAE, splitté en fichiers dans un nouveau sous-répertoire.
savardf
parents:
diff
changeset
|
190 self.load_data_labels(self.train_files, self.train) |
5c79a2557f2f
Un peu de ménage dans code pour stacked DAE, splitté en fichiers dans un nouveau sous-répertoire.
savardf
parents:
diff
changeset
|
191 self.load_data_labels(self.test_files, self.test) |
5c79a2557f2f
Un peu de ménage dans code pour stacked DAE, splitté en fichiers dans un nouveau sous-répertoire.
savardf
parents:
diff
changeset
|
192 |
5c79a2557f2f
Un peu de ménage dans code pour stacked DAE, splitté en fichiers dans un nouveau sous-répertoire.
savardf
parents:
diff
changeset
|
193 def load_data_labels(self, filenames, pair): |
5c79a2557f2f
Un peu de ménage dans code pour stacked DAE, splitté en fichiers dans un nouveau sous-répertoire.
savardf
parents:
diff
changeset
|
194 for i, fn in enumerate(filenames): |
5c79a2557f2f
Un peu de ménage dans code pour stacked DAE, splitté en fichiers dans un nouveau sous-répertoire.
savardf
parents:
diff
changeset
|
195 f = open(os.path.join(self.basepath, fn)) |
5c79a2557f2f
Un peu de ménage dans code pour stacked DAE, splitté en fichiers dans un nouveau sous-répertoire.
savardf
parents:
diff
changeset
|
196 pair[i] = filetensor.read(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
|
197 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
|
198 |
139
7d8366fb90bf
Ajouté des __init__.py dans l'arborescence pour que les scripts puissent être utilisés avec des paths pour jobman, et fait pas mal de modifs dans stacked_dae pour pouvoir réutiliser le travail fait pour des tests où le pretraining est le même.
fsavard
parents:
131
diff
changeset
|
199 def reduce_train_set(self, max): |
7d8366fb90bf
Ajouté des __init__.py dans l'arborescence pour que les scripts puissent être utilisés avec des paths pour jobman, et fait pas mal de modifs dans stacked_dae pour pouvoir réutiliser le travail fait pour des tests où le pretraining est le même.
fsavard
parents:
131
diff
changeset
|
200 self.train[0] = self.train[0][:max] |
7d8366fb90bf
Ajouté des __init__.py dans l'arborescence pour que les scripts puissent être utilisés avec des paths pour jobman, et fait pas mal de modifs dans stacked_dae pour pouvoir réutiliser le travail fait pour des tests où le pretraining est le même.
fsavard
parents:
131
diff
changeset
|
201 self.train[1] = self.train[1][:max] |
7d8366fb90bf
Ajouté des __init__.py dans l'arborescence pour que les scripts puissent être utilisés avec des paths pour jobman, et fait pas mal de modifs dans stacked_dae pour pouvoir réutiliser le travail fait pour des tests où le pretraining est le même.
fsavard
parents:
131
diff
changeset
|
202 |
7d8366fb90bf
Ajouté des __init__.py dans l'arborescence pour que les scripts puissent être utilisés avec des paths pour jobman, et fait pas mal de modifs dans stacked_dae pour pouvoir réutiliser le travail fait pour des tests où le pretraining est le même.
fsavard
parents:
131
diff
changeset
|
203 if max < len(self.test[0]): |
7d8366fb90bf
Ajouté des __init__.py dans l'arborescence pour que les scripts puissent être utilisés avec des paths pour jobman, et fait pas mal de modifs dans stacked_dae pour pouvoir réutiliser le travail fait pour des tests où le pretraining est le même.
fsavard
parents:
131
diff
changeset
|
204 for ar in (self.test, self.valid): |
7d8366fb90bf
Ajouté des __init__.py dans l'arborescence pour que les scripts puissent être utilisés avec des paths pour jobman, et fait pas mal de modifs dans stacked_dae pour pouvoir réutiliser le travail fait pour des tests où le pretraining est le même.
fsavard
parents:
131
diff
changeset
|
205 ar[0] = ar[0][:max] |
7d8366fb90bf
Ajouté des __init__.py dans l'arborescence pour que les scripts puissent être utilisés avec des paths pour jobman, et fait pas mal de modifs dans stacked_dae pour pouvoir réutiliser le travail fait pour des tests où le pretraining est le même.
fsavard
parents:
131
diff
changeset
|
206 ar[1] = ar[1][:max] |
7d8366fb90bf
Ajouté des __init__.py dans l'arborescence pour que les scripts puissent être utilisés avec des paths pour jobman, et fait pas mal de modifs dans stacked_dae pour pouvoir réutiliser le travail fait pour des tests où le pretraining est le même.
fsavard
parents:
131
diff
changeset
|
207 |
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
|
208 def split_train_valid(self): |
5c79a2557f2f
Un peu de ménage dans code pour stacked DAE, splitté en fichiers dans un nouveau sous-répertoire.
savardf
parents:
diff
changeset
|
209 test_len = len(self.test[0]) |
5c79a2557f2f
Un peu de ménage dans code pour stacked DAE, splitté en fichiers dans un nouveau sous-répertoire.
savardf
parents:
diff
changeset
|
210 |
5c79a2557f2f
Un peu de ménage dans code pour stacked DAE, splitté en fichiers dans un nouveau sous-répertoire.
savardf
parents:
diff
changeset
|
211 new_train_x = self.train[0][:-test_len] |
5c79a2557f2f
Un peu de ménage dans code pour stacked DAE, splitté en fichiers dans un nouveau sous-répertoire.
savardf
parents:
diff
changeset
|
212 new_train_y = self.train[1][:-test_len] |
5c79a2557f2f
Un peu de ménage dans code pour stacked DAE, splitté en fichiers dans un nouveau sous-répertoire.
savardf
parents:
diff
changeset
|
213 |
5c79a2557f2f
Un peu de ménage dans code pour stacked DAE, splitté en fichiers dans un nouveau sous-répertoire.
savardf
parents:
diff
changeset
|
214 self.valid[0] = self.train[0][-test_len:] |
5c79a2557f2f
Un peu de ménage dans code pour stacked DAE, splitté en fichiers dans un nouveau sous-répertoire.
savardf
parents:
diff
changeset
|
215 self.valid[1] = self.train[1][-test_len:] |
5c79a2557f2f
Un peu de ménage dans code pour stacked DAE, splitté en fichiers dans un nouveau sous-répertoire.
savardf
parents:
diff
changeset
|
216 |
5c79a2557f2f
Un peu de ménage dans code pour stacked DAE, splitté en fichiers dans un nouveau sous-répertoire.
savardf
parents:
diff
changeset
|
217 self.train[0] = new_train_x |
5c79a2557f2f
Un peu de ménage dans code pour stacked DAE, splitté en fichiers dans un nouveau sous-répertoire.
savardf
parents:
diff
changeset
|
218 self.train[1] = new_train_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
|
219 |
5c79a2557f2f
Un peu de ménage dans code pour stacked DAE, splitté en fichiers dans un nouveau sous-répertoire.
savardf
parents:
diff
changeset
|
220 def test_load_nist(): |
5c79a2557f2f
Un peu de ménage dans code pour stacked DAE, splitté en fichiers dans un nouveau sous-répertoire.
savardf
parents:
diff
changeset
|
221 print "Will load NIST" |
5c79a2557f2f
Un peu de ménage dans code pour stacked DAE, splitté en fichiers dans un nouveau sous-répertoire.
savardf
parents:
diff
changeset
|
222 |
5c79a2557f2f
Un peu de ménage dans code pour stacked DAE, splitté en fichiers dans un nouveau sous-répertoire.
savardf
parents:
diff
changeset
|
223 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
|
224 t1 = time.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
|
225 nist = NIST(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
|
226 t2 = time.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
|
227 |
5c79a2557f2f
Un peu de ménage dans code pour stacked DAE, splitté en fichiers dans un nouveau sous-répertoire.
savardf
parents:
diff
changeset
|
228 print "NIST loaded. time delta = ", t2-t1 |
5c79a2557f2f
Un peu de ménage dans code pour stacked DAE, splitté en fichiers dans un nouveau sous-répertoire.
savardf
parents:
diff
changeset
|
229 |
5c79a2557f2f
Un peu de ménage dans code pour stacked DAE, splitté en fichiers dans un nouveau sous-répertoire.
savardf
parents:
diff
changeset
|
230 tr,v,te = nist.get_tvt() |
5c79a2557f2f
Un peu de ménage dans code pour stacked DAE, splitté en fichiers dans un nouveau sous-répertoire.
savardf
parents:
diff
changeset
|
231 |
5c79a2557f2f
Un peu de ménage dans code pour stacked DAE, splitté en fichiers dans un nouveau sous-répertoire.
savardf
parents:
diff
changeset
|
232 print "Lenghts: ", len(tr[0]), len(v[0]), len(te[0]) |
5c79a2557f2f
Un peu de ménage dans code pour stacked DAE, splitté en fichiers dans un nouveau sous-répertoire.
savardf
parents:
diff
changeset
|
233 |
5c79a2557f2f
Un peu de ménage dans code pour stacked DAE, splitté en fichiers dans un nouveau sous-répertoire.
savardf
parents:
diff
changeset
|
234 raw_input("Press any key") |
5c79a2557f2f
Un peu de ménage dans code pour stacked DAE, splitté en fichiers dans un nouveau sous-répertoire.
savardf
parents:
diff
changeset
|
235 |
5c79a2557f2f
Un peu de ménage dans code pour stacked DAE, splitté en fichiers dans un nouveau sous-répertoire.
savardf
parents:
diff
changeset
|
236 # hp for hyperparameters |
5c79a2557f2f
Un peu de ménage dans code pour stacked DAE, splitté en fichiers dans un nouveau sous-répertoire.
savardf
parents:
diff
changeset
|
237 def sgd_optimization_nist(hp=None, dataset_dir='/data/lisa/data/nist'): |
5c79a2557f2f
Un peu de ménage dans code pour stacked DAE, splitté en fichiers dans un nouveau sous-répertoire.
savardf
parents:
diff
changeset
|
238 global DEFAULT_HP_NIST |
5c79a2557f2f
Un peu de ménage dans code pour stacked DAE, splitté en fichiers dans un nouveau sous-répertoire.
savardf
parents:
diff
changeset
|
239 hp = hp and hp or DEFAULT_HP_NIST |
5c79a2557f2f
Un peu de ménage dans code pour stacked DAE, splitté en fichiers dans un nouveau sous-répertoire.
savardf
parents:
diff
changeset
|
240 |
5c79a2557f2f
Un peu de ménage dans code pour stacked DAE, splitté en fichiers dans un nouveau sous-répertoire.
savardf
parents:
diff
changeset
|
241 print "Will load NIST" |
5c79a2557f2f
Un peu de ménage dans code pour stacked DAE, splitté en fichiers dans un nouveau sous-répertoire.
savardf
parents:
diff
changeset
|
242 |
5c79a2557f2f
Un peu de ménage dans code pour stacked DAE, splitté en fichiers dans un nouveau sous-répertoire.
savardf
parents:
diff
changeset
|
243 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
|
244 t1 = time.time() |
139
7d8366fb90bf
Ajouté des __init__.py dans l'arborescence pour que les scripts puissent être utilisés avec des paths pour jobman, et fait pas mal de modifs dans stacked_dae pour pouvoir réutiliser le travail fait pour des tests où le pretraining est le même.
fsavard
parents:
131
diff
changeset
|
245 nist = NIST(20, reduce_train_to=100) |
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
|
246 t2 = time.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
|
247 |
5c79a2557f2f
Un peu de ménage dans code pour stacked DAE, splitté en fichiers dans un nouveau sous-répertoire.
savardf
parents:
diff
changeset
|
248 print "NIST loaded. time delta = ", t2-t1 |
5c79a2557f2f
Un peu de ménage dans code pour stacked DAE, splitté en fichiers dans un nouveau sous-répertoire.
savardf
parents:
diff
changeset
|
249 |
5c79a2557f2f
Un peu de ménage dans code pour stacked DAE, splitté en fichiers dans un nouveau sous-répertoire.
savardf
parents:
diff
changeset
|
250 train,valid,test = nist.get_tvt() |
5c79a2557f2f
Un peu de ménage dans code pour stacked DAE, splitté en fichiers dans un nouveau sous-répertoire.
savardf
parents:
diff
changeset
|
251 dataset = (train,valid,test) |
5c79a2557f2f
Un peu de ménage dans code pour stacked DAE, splitté en fichiers dans un nouveau sous-répertoire.
savardf
parents:
diff
changeset
|
252 |
139
7d8366fb90bf
Ajouté des __init__.py dans l'arborescence pour que les scripts puissent être utilisés avec des paths pour jobman, et fait pas mal de modifs dans stacked_dae pour pouvoir réutiliser le travail fait pour des tests où le pretraining est le même.
fsavard
parents:
131
diff
changeset
|
253 print train[0][15] |
7d8366fb90bf
Ajouté des __init__.py dans l'arborescence pour que les scripts puissent être utilisés avec des paths pour jobman, et fait pas mal de modifs dans stacked_dae pour pouvoir réutiliser le travail fait pour des tests où le pretraining est le même.
fsavard
parents:
131
diff
changeset
|
254 print type(train[0][1]) |
7d8366fb90bf
Ajouté des __init__.py dans l'arborescence pour que les scripts puissent être utilisés avec des paths pour jobman, et fait pas mal de modifs dans stacked_dae pour pouvoir réutiliser le travail fait pour des tests où le pretraining est le même.
fsavard
parents:
131
diff
changeset
|
255 |
7d8366fb90bf
Ajouté des __init__.py dans l'arborescence pour que les scripts puissent être utilisés avec des paths pour jobman, et fait pas mal de modifs dans stacked_dae pour pouvoir réutiliser le travail fait pour des tests où le pretraining est le même.
fsavard
parents:
131
diff
changeset
|
256 |
7d8366fb90bf
Ajouté des __init__.py dans l'arborescence pour que les scripts puissent être utilisés avec des paths pour jobman, et fait pas mal de modifs dans stacked_dae pour pouvoir réutiliser le travail fait pour des tests où le pretraining est le même.
fsavard
parents:
131
diff
changeset
|
257 print "Lengths train, valid, test: ", len(train[0]), len(valid[0]), len(test[0]) |
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
|
258 |
5c79a2557f2f
Un peu de ménage dans code pour stacked DAE, splitté en fichiers dans un nouveau sous-répertoire.
savardf
parents:
diff
changeset
|
259 n_ins = 32*32 |
5c79a2557f2f
Un peu de ménage dans code pour stacked DAE, splitté en fichiers dans un nouveau sous-répertoire.
savardf
parents:
diff
changeset
|
260 n_outs = 62 # 10 digits, 26*2 (lower, capitals) |
5c79a2557f2f
Un peu de ménage dans code pour stacked DAE, splitté en fichiers dans un nouveau sous-répertoire.
savardf
parents:
diff
changeset
|
261 |
139
7d8366fb90bf
Ajouté des __init__.py dans l'arborescence pour que les scripts puissent être utilisés avec des paths pour jobman, et fait pas mal de modifs dans stacked_dae pour pouvoir réutiliser le travail fait pour des tests où le pretraining est le même.
fsavard
parents:
131
diff
changeset
|
262 optimizer = SdaSgdOptimizer(dataset, hp, n_ins, n_outs, input_divider=255.0) |
7d8366fb90bf
Ajouté des __init__.py dans l'arborescence pour que les scripts puissent être utilisés avec des paths pour jobman, et fait pas mal de modifs dans stacked_dae pour pouvoir réutiliser le travail fait pour des tests où le pretraining est le même.
fsavard
parents:
131
diff
changeset
|
263 optimizer.train() |
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
|
264 |
5c79a2557f2f
Un peu de ménage dans code pour stacked DAE, splitté en fichiers dans un nouveau sous-répertoire.
savardf
parents:
diff
changeset
|
265 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
|
266 |
5c79a2557f2f
Un peu de ménage dans code pour stacked DAE, splitté en fichiers dans un nouveau sous-répertoire.
savardf
parents:
diff
changeset
|
267 import sys |
5c79a2557f2f
Un peu de ménage dans code pour stacked DAE, splitté en fichiers dans un nouveau sous-répertoire.
savardf
parents:
diff
changeset
|
268 |
5c79a2557f2f
Un peu de ménage dans code pour stacked DAE, splitté en fichiers dans un nouveau sous-répertoire.
savardf
parents:
diff
changeset
|
269 args = sys.argv[1:] |
5c79a2557f2f
Un peu de ménage dans code pour stacked DAE, splitté en fichiers dans un nouveau sous-répertoire.
savardf
parents:
diff
changeset
|
270 |
5c79a2557f2f
Un peu de ménage dans code pour stacked DAE, splitté en fichiers dans un nouveau sous-répertoire.
savardf
parents:
diff
changeset
|
271 if len(args) > 0 and args[0] == 'load_nist': |
5c79a2557f2f
Un peu de ménage dans code pour stacked DAE, splitté en fichiers dans un nouveau sous-répertoire.
savardf
parents:
diff
changeset
|
272 test_load_nist() |
5c79a2557f2f
Un peu de ménage dans code pour stacked DAE, splitté en fichiers dans un nouveau sous-répertoire.
savardf
parents:
diff
changeset
|
273 |
139
7d8366fb90bf
Ajouté des __init__.py dans l'arborescence pour que les scripts puissent être utilisés avec des paths pour jobman, et fait pas mal de modifs dans stacked_dae pour pouvoir réutiliser le travail fait pour des tests où le pretraining est le même.
fsavard
parents:
131
diff
changeset
|
274 elif len(args) > 0 and args[0] == 'jobman_insert': |
7d8366fb90bf
Ajouté des __init__.py dans l'arborescence pour que les scripts puissent être utilisés avec des paths pour jobman, et fait pas mal de modifs dans stacked_dae pour pouvoir réutiliser le travail fait pour des tests où le pretraining est le même.
fsavard
parents:
131
diff
changeset
|
275 jobman_insert_nist() |
185
b9ea8e2d071a
Enlevé ce qui concernait la réutilisation de résultats de préentraînement (trop compliqué pour peu de bénéfice: c'est le finetuning qui est vraiment long
fsavard
parents:
167
diff
changeset
|
276 |
b9ea8e2d071a
Enlevé ce qui concernait la réutilisation de résultats de préentraînement (trop compliqué pour peu de bénéfice: c'est le finetuning qui est vraiment long
fsavard
parents:
167
diff
changeset
|
277 elif len(args) > 0 and args[0] == 'test_jobman_entrypoint': |
b9ea8e2d071a
Enlevé ce qui concernait la réutilisation de résultats de préentraînement (trop compliqué pour peu de bénéfice: c'est le finetuning qui est vraiment long
fsavard
parents:
167
diff
changeset
|
278 chanmock = DD({'COMPLETE':0}) |
b9ea8e2d071a
Enlevé ce qui concernait la réutilisation de résultats de préentraînement (trop compliqué pour peu de bénéfice: c'est le finetuning qui est vraiment long
fsavard
parents:
167
diff
changeset
|
279 jobman_entrypoint(DEFAULT_HP_NIST, chanmock) |
b9ea8e2d071a
Enlevé ce qui concernait la réutilisation de résultats de préentraînement (trop compliqué pour peu de bénéfice: c'est le finetuning qui est vraiment long
fsavard
parents:
167
diff
changeset
|
280 |
139
7d8366fb90bf
Ajouté des __init__.py dans l'arborescence pour que les scripts puissent être utilisés avec des paths pour jobman, et fait pas mal de modifs dans stacked_dae pour pouvoir réutiliser le travail fait pour des tests où le pretraining est le même.
fsavard
parents:
131
diff
changeset
|
281 elif len(args) > 0 and args[0] == 'estimate': |
7d8366fb90bf
Ajouté des __init__.py dans l'arborescence pour que les scripts puissent être utilisés avec des paths pour jobman, et fait pas mal de modifs dans stacked_dae pour pouvoir réutiliser le travail fait pour des tests où le pretraining est le même.
fsavard
parents:
131
diff
changeset
|
282 estimate_total_time() |
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
|
283 else: |
5c79a2557f2f
Un peu de ménage dans code pour stacked DAE, splitté en fichiers dans un nouveau sous-répertoire.
savardf
parents:
diff
changeset
|
284 sgd_optimization_nist() |
5c79a2557f2f
Un peu de ménage dans code pour stacked DAE, splitté en fichiers dans un nouveau sous-répertoire.
savardf
parents:
diff
changeset
|
285 |