annotate deep/stacked_dae/v_sylvain/nist_sda_retrieve.py @ 480:150203d2b5c3

added number of train test and valid for NIST
author Xavier Glorot <glorotxa@iro.umontreal.ca>
date Sun, 30 May 2010 19:05:22 -0400
parents d76c85ba12d6
children
rev   line source
287
f9b93ae45723 Programme pour reprendre une partie des experiences seulement. Utile seulement pour un usage tres specifique
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents:
diff changeset
1 #!/usr/bin/python
f9b93ae45723 Programme pour reprendre une partie des experiences seulement. Utile seulement pour un usage tres specifique
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents:
diff changeset
2 # coding: utf-8
f9b93ae45723 Programme pour reprendre une partie des experiences seulement. Utile seulement pour un usage tres specifique
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents:
diff changeset
3
f9b93ae45723 Programme pour reprendre une partie des experiences seulement. Utile seulement pour un usage tres specifique
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents:
diff changeset
4 import ift6266
f9b93ae45723 Programme pour reprendre une partie des experiences seulement. Utile seulement pour un usage tres specifique
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents:
diff changeset
5 import pylearn
f9b93ae45723 Programme pour reprendre une partie des experiences seulement. Utile seulement pour un usage tres specifique
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents:
diff changeset
6
f9b93ae45723 Programme pour reprendre une partie des experiences seulement. Utile seulement pour un usage tres specifique
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents:
diff changeset
7 import numpy
f9b93ae45723 Programme pour reprendre une partie des experiences seulement. Utile seulement pour un usage tres specifique
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents:
diff changeset
8 import theano
f9b93ae45723 Programme pour reprendre une partie des experiences seulement. Utile seulement pour un usage tres specifique
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents:
diff changeset
9 import time
f9b93ae45723 Programme pour reprendre une partie des experiences seulement. Utile seulement pour un usage tres specifique
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents:
diff changeset
10
f9b93ae45723 Programme pour reprendre une partie des experiences seulement. Utile seulement pour un usage tres specifique
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents:
diff changeset
11 import pylearn.version
f9b93ae45723 Programme pour reprendre une partie des experiences seulement. Utile seulement pour un usage tres specifique
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents:
diff changeset
12 import theano.tensor as T
f9b93ae45723 Programme pour reprendre une partie des experiences seulement. Utile seulement pour un usage tres specifique
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents:
diff changeset
13 from theano.tensor.shared_randomstreams import RandomStreams
f9b93ae45723 Programme pour reprendre une partie des experiences seulement. Utile seulement pour un usage tres specifique
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents:
diff changeset
14
f9b93ae45723 Programme pour reprendre une partie des experiences seulement. Utile seulement pour un usage tres specifique
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents:
diff changeset
15 import copy
f9b93ae45723 Programme pour reprendre une partie des experiences seulement. Utile seulement pour un usage tres specifique
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents:
diff changeset
16 import sys
f9b93ae45723 Programme pour reprendre une partie des experiences seulement. Utile seulement pour un usage tres specifique
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents:
diff changeset
17 import os
f9b93ae45723 Programme pour reprendre une partie des experiences seulement. Utile seulement pour un usage tres specifique
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents:
diff changeset
18 import os.path
f9b93ae45723 Programme pour reprendre une partie des experiences seulement. Utile seulement pour un usage tres specifique
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents:
diff changeset
19
f9b93ae45723 Programme pour reprendre une partie des experiences seulement. Utile seulement pour un usage tres specifique
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents:
diff changeset
20 from jobman import DD
f9b93ae45723 Programme pour reprendre une partie des experiences seulement. Utile seulement pour un usage tres specifique
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents:
diff changeset
21 import jobman, jobman.sql
f9b93ae45723 Programme pour reprendre une partie des experiences seulement. Utile seulement pour un usage tres specifique
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents:
diff changeset
22 from pylearn.io import filetensor
f9b93ae45723 Programme pour reprendre une partie des experiences seulement. Utile seulement pour un usage tres specifique
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents:
diff changeset
23
f9b93ae45723 Programme pour reprendre une partie des experiences seulement. Utile seulement pour un usage tres specifique
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents:
diff changeset
24 from utils import produit_cartesien_jobs
f9b93ae45723 Programme pour reprendre une partie des experiences seulement. Utile seulement pour un usage tres specifique
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents:
diff changeset
25 from copy import copy
f9b93ae45723 Programme pour reprendre une partie des experiences seulement. Utile seulement pour un usage tres specifique
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents:
diff changeset
26
f9b93ae45723 Programme pour reprendre une partie des experiences seulement. Utile seulement pour un usage tres specifique
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents:
diff changeset
27 from sgd_optimization import SdaSgdOptimizer
f9b93ae45723 Programme pour reprendre une partie des experiences seulement. Utile seulement pour un usage tres specifique
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents:
diff changeset
28
f9b93ae45723 Programme pour reprendre une partie des experiences seulement. Utile seulement pour un usage tres specifique
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents:
diff changeset
29 #from ift6266.utils.scalar_series import *
f9b93ae45723 Programme pour reprendre une partie des experiences seulement. Utile seulement pour un usage tres specifique
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents:
diff changeset
30 from ift6266.utils.seriestables import *
f9b93ae45723 Programme pour reprendre une partie des experiences seulement. Utile seulement pour un usage tres specifique
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents:
diff changeset
31 import tables
f9b93ae45723 Programme pour reprendre une partie des experiences seulement. Utile seulement pour un usage tres specifique
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents:
diff changeset
32
f9b93ae45723 Programme pour reprendre une partie des experiences seulement. Utile seulement pour un usage tres specifique
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents:
diff changeset
33 from ift6266 import datasets
f9b93ae45723 Programme pour reprendre une partie des experiences seulement. Utile seulement pour un usage tres specifique
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents:
diff changeset
34 from config2 import *
f9b93ae45723 Programme pour reprendre une partie des experiences seulement. Utile seulement pour un usage tres specifique
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents:
diff changeset
35
f9b93ae45723 Programme pour reprendre une partie des experiences seulement. Utile seulement pour un usage tres specifique
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents:
diff changeset
36 '''
f9b93ae45723 Programme pour reprendre une partie des experiences seulement. Utile seulement pour un usage tres specifique
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents:
diff changeset
37 Function called by jobman upon launching each job
f9b93ae45723 Programme pour reprendre une partie des experiences seulement. Utile seulement pour un usage tres specifique
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents:
diff changeset
38 Its path is the one given when inserting jobs: see EXPERIMENT_PATH
f9b93ae45723 Programme pour reprendre une partie des experiences seulement. Utile seulement pour un usage tres specifique
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents:
diff changeset
39 '''
f9b93ae45723 Programme pour reprendre une partie des experiences seulement. Utile seulement pour un usage tres specifique
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents:
diff changeset
40 def jobman_entrypoint(state, channel):
f9b93ae45723 Programme pour reprendre une partie des experiences seulement. Utile seulement pour un usage tres specifique
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents:
diff changeset
41 # record mercurial versions of each package
f9b93ae45723 Programme pour reprendre une partie des experiences seulement. Utile seulement pour un usage tres specifique
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents:
diff changeset
42 pylearn.version.record_versions(state,[theano,ift6266,pylearn])
f9b93ae45723 Programme pour reprendre une partie des experiences seulement. Utile seulement pour un usage tres specifique
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents:
diff changeset
43 # TODO: remove this, bad for number of simultaneous requests on DB
f9b93ae45723 Programme pour reprendre une partie des experiences seulement. Utile seulement pour un usage tres specifique
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents:
diff changeset
44 channel.save()
f9b93ae45723 Programme pour reprendre une partie des experiences seulement. Utile seulement pour un usage tres specifique
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents:
diff changeset
45
f9b93ae45723 Programme pour reprendre une partie des experiences seulement. Utile seulement pour un usage tres specifique
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents:
diff changeset
46 # For test runs, we don't want to use the whole dataset so
f9b93ae45723 Programme pour reprendre une partie des experiences seulement. Utile seulement pour un usage tres specifique
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents:
diff changeset
47 # reduce it to fewer elements if asked to.
f9b93ae45723 Programme pour reprendre une partie des experiences seulement. Utile seulement pour un usage tres specifique
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents:
diff changeset
48 rtt = None
f9b93ae45723 Programme pour reprendre une partie des experiences seulement. Utile seulement pour un usage tres specifique
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents:
diff changeset
49 if state.has_key('reduce_train_to'):
f9b93ae45723 Programme pour reprendre une partie des experiences seulement. Utile seulement pour un usage tres specifique
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents:
diff changeset
50 rtt = state['reduce_train_to']
f9b93ae45723 Programme pour reprendre une partie des experiences seulement. Utile seulement pour un usage tres specifique
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents:
diff changeset
51 elif REDUCE_TRAIN_TO:
f9b93ae45723 Programme pour reprendre une partie des experiences seulement. Utile seulement pour un usage tres specifique
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents:
diff changeset
52 rtt = REDUCE_TRAIN_TO
328
c61b72d07676 Rajout de la capacite de faire decroitre le taux d'apprentissage si demande
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents: 320
diff changeset
53
c61b72d07676 Rajout de la capacite de faire decroitre le taux d'apprentissage si demande
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents: 320
diff changeset
54 if state.has_key('decrease_lr'):
c61b72d07676 Rajout de la capacite de faire decroitre le taux d'apprentissage si demande
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents: 320
diff changeset
55 decrease_lr = state['decrease_lr']
c61b72d07676 Rajout de la capacite de faire decroitre le taux d'apprentissage si demande
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents: 320
diff changeset
56 else :
c61b72d07676 Rajout de la capacite de faire decroitre le taux d'apprentissage si demande
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents: 320
diff changeset
57 decrease_lr = 0
287
f9b93ae45723 Programme pour reprendre une partie des experiences seulement. Utile seulement pour un usage tres specifique
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents:
diff changeset
58
f9b93ae45723 Programme pour reprendre une partie des experiences seulement. Utile seulement pour un usage tres specifique
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents:
diff changeset
59 n_ins = 32*32
f9b93ae45723 Programme pour reprendre une partie des experiences seulement. Utile seulement pour un usage tres specifique
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents:
diff changeset
60 n_outs = 62 # 10 digits, 26*2 (lower, capitals)
f9b93ae45723 Programme pour reprendre une partie des experiences seulement. Utile seulement pour un usage tres specifique
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents:
diff changeset
61
f9b93ae45723 Programme pour reprendre une partie des experiences seulement. Utile seulement pour un usage tres specifique
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents:
diff changeset
62 examples_per_epoch = NIST_ALL_TRAIN_SIZE
317
067e747fd9c0 Ajout de noms differents pour les series produites pour differents choix de pretrain
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents: 316
diff changeset
63 #To be sure variables will not be only in the if statement
067e747fd9c0 Ajout de noms differents pour les series produites pour differents choix de pretrain
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents: 316
diff changeset
64 PATH = ''
067e747fd9c0 Ajout de noms differents pour les series produites pour differents choix de pretrain
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents: 316
diff changeset
65 nom_reptrain = ''
067e747fd9c0 Ajout de noms differents pour les series produites pour differents choix de pretrain
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents: 316
diff changeset
66 nom_serie = ""
067e747fd9c0 Ajout de noms differents pour les series produites pour differents choix de pretrain
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents: 316
diff changeset
67 if state['pretrain_choice'] == 0:
067e747fd9c0 Ajout de noms differents pour les series produites pour differents choix de pretrain
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents: 316
diff changeset
68 PATH=PATH_NIST
067e747fd9c0 Ajout de noms differents pour les series produites pour differents choix de pretrain
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents: 316
diff changeset
69 nom_pretrain='NIST'
067e747fd9c0 Ajout de noms differents pour les series produites pour differents choix de pretrain
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents: 316
diff changeset
70 nom_serie="series_NIST.h5"
067e747fd9c0 Ajout de noms differents pour les series produites pour differents choix de pretrain
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents: 316
diff changeset
71 elif state['pretrain_choice'] == 1:
067e747fd9c0 Ajout de noms differents pour les series produites pour differents choix de pretrain
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents: 316
diff changeset
72 PATH=PATH_P07
067e747fd9c0 Ajout de noms differents pour les series produites pour differents choix de pretrain
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents: 316
diff changeset
73 nom_pretrain='P07'
067e747fd9c0 Ajout de noms differents pour les series produites pour differents choix de pretrain
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents: 316
diff changeset
74 nom_serie="series_P07.h5"
391
d76c85ba12d6 Correction d'un bug mineurpour le nom de la serie h5
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents: 387
diff changeset
75 elif state['pretrain_choice'] == 2:
d76c85ba12d6 Correction d'un bug mineurpour le nom de la serie h5
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents: 387
diff changeset
76 PATH = PATH_PNIST07
d76c85ba12d6 Correction d'un bug mineurpour le nom de la serie h5
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents: 387
diff changeset
77 nom_pretrain='PNIST07'
d76c85ba12d6 Correction d'un bug mineurpour le nom de la serie h5
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents: 387
diff changeset
78 nom_serie="series_PNIST.h5"
287
f9b93ae45723 Programme pour reprendre une partie des experiences seulement. Utile seulement pour un usage tres specifique
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents:
diff changeset
79
317
067e747fd9c0 Ajout de noms differents pour les series produites pour differents choix de pretrain
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents: 316
diff changeset
80 series = create_series(state.num_hidden_layers,nom_serie)
287
f9b93ae45723 Programme pour reprendre une partie des experiences seulement. Utile seulement pour un usage tres specifique
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents:
diff changeset
81
f9b93ae45723 Programme pour reprendre une partie des experiences seulement. Utile seulement pour un usage tres specifique
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents:
diff changeset
82 print "Creating optimizer with state, ", state
f9b93ae45723 Programme pour reprendre une partie des experiences seulement. Utile seulement pour un usage tres specifique
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents:
diff changeset
83
f9b93ae45723 Programme pour reprendre une partie des experiences seulement. Utile seulement pour un usage tres specifique
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents:
diff changeset
84 optimizer = SdaSgdOptimizer(dataset=datasets.nist_all(),
f9b93ae45723 Programme pour reprendre une partie des experiences seulement. Utile seulement pour un usage tres specifique
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents:
diff changeset
85 hyperparameters=state, \
f9b93ae45723 Programme pour reprendre une partie des experiences seulement. Utile seulement pour un usage tres specifique
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents:
diff changeset
86 n_ins=n_ins, n_outs=n_outs,\
f9b93ae45723 Programme pour reprendre une partie des experiences seulement. Utile seulement pour un usage tres specifique
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents:
diff changeset
87 examples_per_epoch=examples_per_epoch, \
f9b93ae45723 Programme pour reprendre une partie des experiences seulement. Utile seulement pour un usage tres specifique
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents:
diff changeset
88 series=series,
316
60e82846a10d Correct a little bug about maximum number of minibatches
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents: 313
diff changeset
89 max_minibatches=rtt)
287
f9b93ae45723 Programme pour reprendre une partie des experiences seulement. Utile seulement pour un usage tres specifique
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents:
diff changeset
90
f9b93ae45723 Programme pour reprendre une partie des experiences seulement. Utile seulement pour un usage tres specifique
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents:
diff changeset
91 parameters=[]
f9b93ae45723 Programme pour reprendre une partie des experiences seulement. Utile seulement pour un usage tres specifique
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents:
diff changeset
92 #Number of files of P07 used for pretraining
f9b93ae45723 Programme pour reprendre une partie des experiences seulement. Utile seulement pour un usage tres specifique
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents:
diff changeset
93 nb_file=0
f9b93ae45723 Programme pour reprendre une partie des experiences seulement. Utile seulement pour un usage tres specifique
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents:
diff changeset
94 ## if state['pretrain_choice'] == 0:
f9b93ae45723 Programme pour reprendre une partie des experiences seulement. Utile seulement pour un usage tres specifique
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents:
diff changeset
95 ## print('\n\tpretraining with NIST\n')
f9b93ae45723 Programme pour reprendre une partie des experiences seulement. Utile seulement pour un usage tres specifique
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents:
diff changeset
96 ## optimizer.pretrain(datasets.nist_all())
f9b93ae45723 Programme pour reprendre une partie des experiences seulement. Utile seulement pour un usage tres specifique
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents:
diff changeset
97 ## elif state['pretrain_choice'] == 1:
f9b93ae45723 Programme pour reprendre une partie des experiences seulement. Utile seulement pour un usage tres specifique
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents:
diff changeset
98 ## #To know how many file will be used during pretraining
f9b93ae45723 Programme pour reprendre une partie des experiences seulement. Utile seulement pour un usage tres specifique
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents:
diff changeset
99 ## nb_file = state['pretraining_epochs_per_layer']
f9b93ae45723 Programme pour reprendre une partie des experiences seulement. Utile seulement pour un usage tres specifique
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents:
diff changeset
100 ## state['pretraining_epochs_per_layer'] = 1 #Only 1 time over the dataset
f9b93ae45723 Programme pour reprendre une partie des experiences seulement. Utile seulement pour un usage tres specifique
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents:
diff changeset
101 ## if nb_file >=100:
f9b93ae45723 Programme pour reprendre une partie des experiences seulement. Utile seulement pour un usage tres specifique
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents:
diff changeset
102 ## sys.exit("The code does not support this much pretraining epoch (99 max with P07).\n"+
f9b93ae45723 Programme pour reprendre une partie des experiences seulement. Utile seulement pour un usage tres specifique
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents:
diff changeset
103 ## "You have to correct the code (and be patient, P07 is huge !!)\n"+
f9b93ae45723 Programme pour reprendre une partie des experiences seulement. Utile seulement pour un usage tres specifique
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents:
diff changeset
104 ## "or reduce the number of pretraining epoch to run the code (better idea).\n")
f9b93ae45723 Programme pour reprendre une partie des experiences seulement. Utile seulement pour un usage tres specifique
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents:
diff changeset
105 ## print('\n\tpretraining with P07')
f9b93ae45723 Programme pour reprendre une partie des experiences seulement. Utile seulement pour un usage tres specifique
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents:
diff changeset
106 ## optimizer.pretrain(datasets.nist_P07(min_file=0,max_file=nb_file))
308
a76bae0f2388 Ajout d'une ligne d'impression importante
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents: 306
diff changeset
107
a76bae0f2388 Ajout d'une ligne d'impression importante
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents: 306
diff changeset
108 print ('Retrieve pre-train done earlier ( '+nom_pretrain+' )')
a76bae0f2388 Ajout d'une ligne d'impression importante
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents: 306
diff changeset
109
a76bae0f2388 Ajout d'une ligne d'impression importante
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents: 306
diff changeset
110
287
f9b93ae45723 Programme pour reprendre une partie des experiences seulement. Utile seulement pour un usage tres specifique
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents:
diff changeset
111
f9b93ae45723 Programme pour reprendre une partie des experiences seulement. Utile seulement pour un usage tres specifique
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents:
diff changeset
112 sys.stdout.flush()
306
a78dbbc61f37 Meilleure souplesse d'execution, un parametre hard-coade est maintenant plus propre
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents: 287
diff changeset
113 channel.save()
287
f9b93ae45723 Programme pour reprendre une partie des experiences seulement. Utile seulement pour un usage tres specifique
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents:
diff changeset
114
f9b93ae45723 Programme pour reprendre une partie des experiences seulement. Utile seulement pour un usage tres specifique
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents:
diff changeset
115 #Set some of the parameters used for the finetuning
f9b93ae45723 Programme pour reprendre une partie des experiences seulement. Utile seulement pour un usage tres specifique
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents:
diff changeset
116 if state.has_key('finetune_set'):
f9b93ae45723 Programme pour reprendre une partie des experiences seulement. Utile seulement pour un usage tres specifique
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents:
diff changeset
117 finetune_choice=state['finetune_set']
f9b93ae45723 Programme pour reprendre une partie des experiences seulement. Utile seulement pour un usage tres specifique
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents:
diff changeset
118 else:
f9b93ae45723 Programme pour reprendre une partie des experiences seulement. Utile seulement pour un usage tres specifique
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents:
diff changeset
119 finetune_choice=FINETUNE_SET
f9b93ae45723 Programme pour reprendre une partie des experiences seulement. Utile seulement pour un usage tres specifique
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents:
diff changeset
120
f9b93ae45723 Programme pour reprendre une partie des experiences seulement. Utile seulement pour un usage tres specifique
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents:
diff changeset
121 if state.has_key('max_finetuning_epochs'):
f9b93ae45723 Programme pour reprendre une partie des experiences seulement. Utile seulement pour un usage tres specifique
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents:
diff changeset
122 max_finetune_epoch_NIST=state['max_finetuning_epochs']
f9b93ae45723 Programme pour reprendre une partie des experiences seulement. Utile seulement pour un usage tres specifique
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents:
diff changeset
123 else:
f9b93ae45723 Programme pour reprendre une partie des experiences seulement. Utile seulement pour un usage tres specifique
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents:
diff changeset
124 max_finetune_epoch_NIST=MAX_FINETUNING_EPOCHS
f9b93ae45723 Programme pour reprendre une partie des experiences seulement. Utile seulement pour un usage tres specifique
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents:
diff changeset
125
f9b93ae45723 Programme pour reprendre une partie des experiences seulement. Utile seulement pour un usage tres specifique
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents:
diff changeset
126 if state.has_key('max_finetuning_epochs_P07'):
f9b93ae45723 Programme pour reprendre une partie des experiences seulement. Utile seulement pour un usage tres specifique
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents:
diff changeset
127 max_finetune_epoch_P07=state['max_finetuning_epochs_P07']
f9b93ae45723 Programme pour reprendre une partie des experiences seulement. Utile seulement pour un usage tres specifique
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents:
diff changeset
128 else:
f9b93ae45723 Programme pour reprendre une partie des experiences seulement. Utile seulement pour un usage tres specifique
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents:
diff changeset
129 max_finetune_epoch_P07=max_finetune_epoch_NIST
f9b93ae45723 Programme pour reprendre une partie des experiences seulement. Utile seulement pour un usage tres specifique
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents:
diff changeset
130
f9b93ae45723 Programme pour reprendre une partie des experiences seulement. Utile seulement pour un usage tres specifique
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents:
diff changeset
131 #Decide how the finetune is done
f9b93ae45723 Programme pour reprendre une partie des experiences seulement. Utile seulement pour un usage tres specifique
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents:
diff changeset
132
f9b93ae45723 Programme pour reprendre une partie des experiences seulement. Utile seulement pour un usage tres specifique
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents:
diff changeset
133 if finetune_choice == 0:
f9b93ae45723 Programme pour reprendre une partie des experiences seulement. Utile seulement pour un usage tres specifique
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents:
diff changeset
134 print('\n\n\tfinetune with NIST\n\n')
306
a78dbbc61f37 Meilleure souplesse d'execution, un parametre hard-coade est maintenant plus propre
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents: 287
diff changeset
135 optimizer.reload_parameters(PATH+'params_pretrain.txt')
328
c61b72d07676 Rajout de la capacite de faire decroitre le taux d'apprentissage si demande
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents: 320
diff changeset
136 optimizer.finetune(datasets.nist_all(),datasets.nist_P07(),max_finetune_epoch_NIST,ind_test=1,decrease=decrease_lr)
287
f9b93ae45723 Programme pour reprendre une partie des experiences seulement. Utile seulement pour un usage tres specifique
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents:
diff changeset
137 channel.save()
f9b93ae45723 Programme pour reprendre une partie des experiences seulement. Utile seulement pour un usage tres specifique
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents:
diff changeset
138 if finetune_choice == 1:
f9b93ae45723 Programme pour reprendre une partie des experiences seulement. Utile seulement pour un usage tres specifique
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents:
diff changeset
139 print('\n\n\tfinetune with P07\n\n')
306
a78dbbc61f37 Meilleure souplesse d'execution, un parametre hard-coade est maintenant plus propre
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents: 287
diff changeset
140 optimizer.reload_parameters(PATH+'params_pretrain.txt')
328
c61b72d07676 Rajout de la capacite de faire decroitre le taux d'apprentissage si demande
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents: 320
diff changeset
141 optimizer.finetune(datasets.nist_P07(),datasets.nist_all(),max_finetune_epoch_P07,ind_test=0,decrease=decrease_lr)
287
f9b93ae45723 Programme pour reprendre une partie des experiences seulement. Utile seulement pour un usage tres specifique
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents:
diff changeset
142 channel.save()
f9b93ae45723 Programme pour reprendre une partie des experiences seulement. Utile seulement pour un usage tres specifique
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents:
diff changeset
143 if finetune_choice == 2:
320
71ffe2c9bfad finetune NIST+P07 change pour P07+NIST, les experiences n'ont pas ete concluentes
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents: 317
diff changeset
144 print('\n\n\tfinetune with P07 followed by NIST\n\n')
306
a78dbbc61f37 Meilleure souplesse d'execution, un parametre hard-coade est maintenant plus propre
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents: 287
diff changeset
145 optimizer.reload_parameters(PATH+'params_pretrain.txt')
328
c61b72d07676 Rajout de la capacite de faire decroitre le taux d'apprentissage si demande
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents: 320
diff changeset
146 optimizer.finetune(datasets.nist_P07(),datasets.nist_all(),max_finetune_epoch_P07,ind_test=20,decrease=decrease_lr)
c61b72d07676 Rajout de la capacite de faire decroitre le taux d'apprentissage si demande
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents: 320
diff changeset
147 optimizer.finetune(datasets.nist_all(),datasets.nist_P07(),max_finetune_epoch_NIST,ind_test=21,decrease=decrease_lr)
287
f9b93ae45723 Programme pour reprendre une partie des experiences seulement. Utile seulement pour un usage tres specifique
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents:
diff changeset
148 channel.save()
f9b93ae45723 Programme pour reprendre une partie des experiences seulement. Utile seulement pour un usage tres specifique
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents:
diff changeset
149 if finetune_choice == 3:
f9b93ae45723 Programme pour reprendre une partie des experiences seulement. Utile seulement pour un usage tres specifique
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents:
diff changeset
150 print('\n\n\tfinetune with NIST only on the logistic regression on top (but validation on P07).\n\
f9b93ae45723 Programme pour reprendre une partie des experiences seulement. Utile seulement pour un usage tres specifique
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents:
diff changeset
151 All hidden units output are input of the logistic regression\n\n')
306
a78dbbc61f37 Meilleure souplesse d'execution, un parametre hard-coade est maintenant plus propre
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents: 287
diff changeset
152 optimizer.reload_parameters(PATH+'params_pretrain.txt')
328
c61b72d07676 Rajout de la capacite de faire decroitre le taux d'apprentissage si demande
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents: 320
diff changeset
153 optimizer.finetune(datasets.nist_all(),datasets.nist_P07(),max_finetune_epoch_NIST,ind_test=1,special=1,decrease=decrease_lr)
383
5c3935aa3f8a Ajout de la faculte de prendre PNIST07
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents: 328
diff changeset
154 if finetune_choice == 4:
5c3935aa3f8a Ajout de la faculte de prendre PNIST07
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents: 328
diff changeset
155 print ('\n\n\tFinetune with PNIST07\n\n')
5c3935aa3f8a Ajout de la faculte de prendre PNIST07
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents: 328
diff changeset
156 optimizer.reload_parameters(PATH+'params_pretrain.txt')
5c3935aa3f8a Ajout de la faculte de prendre PNIST07
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents: 328
diff changeset
157 optimizer.finetune(datasets.PNIST07(),datasets.nist_all(),max_finetune_epoch_NIST,ind_test=2,decrease=decrease_lr,dataset_test2=datasets.nist_P07())
387
44094ff28ed1 Ajout d'une option finetune amelioree pour PNIST07
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents: 383
diff changeset
158 optimizer.finetune(datasets.nist_all(),datasets.PNIST07(),max_finetune_epoch_NIST,ind_test=31,decrease=decrease_lr,dataset_test2=datasets.nist_P07())
287
f9b93ae45723 Programme pour reprendre une partie des experiences seulement. Utile seulement pour un usage tres specifique
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents:
diff changeset
159
f9b93ae45723 Programme pour reprendre une partie des experiences seulement. Utile seulement pour un usage tres specifique
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents:
diff changeset
160 if finetune_choice==-1:
328
c61b72d07676 Rajout de la capacite de faire decroitre le taux d'apprentissage si demande
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents: 320
diff changeset
161 print('\nSERIE OF 4 DIFFERENT FINETUNINGS')
287
f9b93ae45723 Programme pour reprendre une partie des experiences seulement. Utile seulement pour un usage tres specifique
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents:
diff changeset
162 print('\n\n\tfinetune with NIST\n\n')
f9b93ae45723 Programme pour reprendre une partie des experiences seulement. Utile seulement pour un usage tres specifique
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents:
diff changeset
163 sys.stdout.flush()
306
a78dbbc61f37 Meilleure souplesse d'execution, un parametre hard-coade est maintenant plus propre
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents: 287
diff changeset
164 optimizer.reload_parameters(PATH+'params_pretrain.txt')
328
c61b72d07676 Rajout de la capacite de faire decroitre le taux d'apprentissage si demande
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents: 320
diff changeset
165 optimizer.finetune(datasets.nist_all(),datasets.nist_P07(),max_finetune_epoch_NIST,ind_test=1,decrease=decrease_lr)
287
f9b93ae45723 Programme pour reprendre une partie des experiences seulement. Utile seulement pour un usage tres specifique
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents:
diff changeset
166 channel.save()
f9b93ae45723 Programme pour reprendre une partie des experiences seulement. Utile seulement pour un usage tres specifique
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents:
diff changeset
167 print('\n\n\tfinetune with P07\n\n')
f9b93ae45723 Programme pour reprendre une partie des experiences seulement. Utile seulement pour un usage tres specifique
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents:
diff changeset
168 sys.stdout.flush()
306
a78dbbc61f37 Meilleure souplesse d'execution, un parametre hard-coade est maintenant plus propre
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents: 287
diff changeset
169 optimizer.reload_parameters(PATH+'params_pretrain.txt')
328
c61b72d07676 Rajout de la capacite de faire decroitre le taux d'apprentissage si demande
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents: 320
diff changeset
170 optimizer.finetune(datasets.nist_P07(),datasets.nist_all(),max_finetune_epoch_P07,ind_test=0,decrease=decrease_lr)
287
f9b93ae45723 Programme pour reprendre une partie des experiences seulement. Utile seulement pour un usage tres specifique
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents:
diff changeset
171 channel.save()
320
71ffe2c9bfad finetune NIST+P07 change pour P07+NIST, les experiences n'ont pas ete concluentes
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents: 317
diff changeset
172 print('\n\n\tfinetune with P07 (done earlier) followed by NIST (written here)\n\n')
287
f9b93ae45723 Programme pour reprendre une partie des experiences seulement. Utile seulement pour un usage tres specifique
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents:
diff changeset
173 sys.stdout.flush()
320
71ffe2c9bfad finetune NIST+P07 change pour P07+NIST, les experiences n'ont pas ete concluentes
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents: 317
diff changeset
174 optimizer.reload_parameters('params_finetune_P07.txt')
328
c61b72d07676 Rajout de la capacite de faire decroitre le taux d'apprentissage si demande
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents: 320
diff changeset
175 optimizer.finetune(datasets.nist_all(),datasets.nist_P07(),max_finetune_epoch_NIST,ind_test=21,decrease=decrease_lr)
287
f9b93ae45723 Programme pour reprendre une partie des experiences seulement. Utile seulement pour un usage tres specifique
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents:
diff changeset
176 channel.save()
f9b93ae45723 Programme pour reprendre une partie des experiences seulement. Utile seulement pour un usage tres specifique
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents:
diff changeset
177 print('\n\n\tfinetune with NIST only on the logistic regression on top.\n\
f9b93ae45723 Programme pour reprendre une partie des experiences seulement. Utile seulement pour un usage tres specifique
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents:
diff changeset
178 All hidden units output are input of the logistic regression\n\n')
f9b93ae45723 Programme pour reprendre une partie des experiences seulement. Utile seulement pour un usage tres specifique
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents:
diff changeset
179 sys.stdout.flush()
306
a78dbbc61f37 Meilleure souplesse d'execution, un parametre hard-coade est maintenant plus propre
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents: 287
diff changeset
180 optimizer.reload_parameters(PATH+'params_pretrain.txt')
328
c61b72d07676 Rajout de la capacite de faire decroitre le taux d'apprentissage si demande
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents: 320
diff changeset
181 optimizer.finetune(datasets.nist_all(),datasets.nist_P07(),max_finetune_epoch_NIST,ind_test=1,special=1,decrease=decrease_lr)
287
f9b93ae45723 Programme pour reprendre une partie des experiences seulement. Utile seulement pour un usage tres specifique
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents:
diff changeset
182 channel.save()
383
5c3935aa3f8a Ajout de la faculte de prendre PNIST07
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents: 328
diff changeset
183 print ('\n\n\tFinetune with PNIST07\n\n')
5c3935aa3f8a Ajout de la faculte de prendre PNIST07
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents: 328
diff changeset
184 sys.stdout.flush()
5c3935aa3f8a Ajout de la faculte de prendre PNIST07
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents: 328
diff changeset
185 optimizer.reload_parameters(PATH+'params_pretrain.txt')
5c3935aa3f8a Ajout de la faculte de prendre PNIST07
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents: 328
diff changeset
186 optimizer.finetune(datasets.PNIST07(),datasets.nist_all(),max_finetune_epoch_NIST,ind_test=2,decrease=decrease_lr,dataset_test2=datasets.nist_P07())
387
44094ff28ed1 Ajout d'une option finetune amelioree pour PNIST07
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents: 383
diff changeset
187 channel.save()
44094ff28ed1 Ajout d'une option finetune amelioree pour PNIST07
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents: 383
diff changeset
188 sys.stdout.flush()
44094ff28ed1 Ajout d'une option finetune amelioree pour PNIST07
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents: 383
diff changeset
189 optimizer.finetune(datasets.nist_all(),datasets.PNIST07(),max_finetune_epoch_NIST,ind_test=31,decrease=decrease_lr,dataset_test2=datasets.nist_P07())
383
5c3935aa3f8a Ajout de la faculte de prendre PNIST07
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents: 328
diff changeset
190
287
f9b93ae45723 Programme pour reprendre une partie des experiences seulement. Utile seulement pour un usage tres specifique
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents:
diff changeset
191
f9b93ae45723 Programme pour reprendre une partie des experiences seulement. Utile seulement pour un usage tres specifique
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents:
diff changeset
192 channel.save()
f9b93ae45723 Programme pour reprendre une partie des experiences seulement. Utile seulement pour un usage tres specifique
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents:
diff changeset
193
f9b93ae45723 Programme pour reprendre une partie des experiences seulement. Utile seulement pour un usage tres specifique
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents:
diff changeset
194 return channel.COMPLETE
f9b93ae45723 Programme pour reprendre une partie des experiences seulement. Utile seulement pour un usage tres specifique
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents:
diff changeset
195
f9b93ae45723 Programme pour reprendre une partie des experiences seulement. Utile seulement pour un usage tres specifique
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents:
diff changeset
196 # These Series objects are used to save various statistics
f9b93ae45723 Programme pour reprendre une partie des experiences seulement. Utile seulement pour un usage tres specifique
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents:
diff changeset
197 # during the training.
317
067e747fd9c0 Ajout de noms differents pour les series produites pour differents choix de pretrain
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents: 316
diff changeset
198 def create_series(num_hidden_layers, nom_serie):
287
f9b93ae45723 Programme pour reprendre une partie des experiences seulement. Utile seulement pour un usage tres specifique
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents:
diff changeset
199
f9b93ae45723 Programme pour reprendre une partie des experiences seulement. Utile seulement pour un usage tres specifique
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents:
diff changeset
200 # Replace series we don't want to save with DummySeries, e.g.
f9b93ae45723 Programme pour reprendre une partie des experiences seulement. Utile seulement pour un usage tres specifique
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents:
diff changeset
201 # series['training_error'] = DummySeries()
f9b93ae45723 Programme pour reprendre une partie des experiences seulement. Utile seulement pour un usage tres specifique
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents:
diff changeset
202
f9b93ae45723 Programme pour reprendre une partie des experiences seulement. Utile seulement pour un usage tres specifique
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents:
diff changeset
203 series = {}
f9b93ae45723 Programme pour reprendre une partie des experiences seulement. Utile seulement pour un usage tres specifique
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents:
diff changeset
204
f9b93ae45723 Programme pour reprendre une partie des experiences seulement. Utile seulement pour un usage tres specifique
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents:
diff changeset
205 basedir = os.getcwd()
f9b93ae45723 Programme pour reprendre une partie des experiences seulement. Utile seulement pour un usage tres specifique
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents:
diff changeset
206
317
067e747fd9c0 Ajout de noms differents pour les series produites pour differents choix de pretrain
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents: 316
diff changeset
207 h5f = tables.openFile(os.path.join(basedir, nom_serie), "w")
287
f9b93ae45723 Programme pour reprendre une partie des experiences seulement. Utile seulement pour un usage tres specifique
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents:
diff changeset
208
f9b93ae45723 Programme pour reprendre une partie des experiences seulement. Utile seulement pour un usage tres specifique
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents:
diff changeset
209 # reconstruction
f9b93ae45723 Programme pour reprendre une partie des experiences seulement. Utile seulement pour un usage tres specifique
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents:
diff changeset
210 reconstruction_base = \
f9b93ae45723 Programme pour reprendre une partie des experiences seulement. Utile seulement pour un usage tres specifique
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents:
diff changeset
211 ErrorSeries(error_name="reconstruction_error",
f9b93ae45723 Programme pour reprendre une partie des experiences seulement. Utile seulement pour un usage tres specifique
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents:
diff changeset
212 table_name="reconstruction_error",
f9b93ae45723 Programme pour reprendre une partie des experiences seulement. Utile seulement pour un usage tres specifique
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents:
diff changeset
213 hdf5_file=h5f,
f9b93ae45723 Programme pour reprendre une partie des experiences seulement. Utile seulement pour un usage tres specifique
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents:
diff changeset
214 index_names=('epoch','minibatch'),
f9b93ae45723 Programme pour reprendre une partie des experiences seulement. Utile seulement pour un usage tres specifique
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents:
diff changeset
215 title="Reconstruction error (mean over "+str(REDUCE_EVERY)+" minibatches)")
f9b93ae45723 Programme pour reprendre une partie des experiences seulement. Utile seulement pour un usage tres specifique
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents:
diff changeset
216 series['reconstruction_error'] = \
f9b93ae45723 Programme pour reprendre une partie des experiences seulement. Utile seulement pour un usage tres specifique
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents:
diff changeset
217 AccumulatorSeriesWrapper(base_series=reconstruction_base,
f9b93ae45723 Programme pour reprendre une partie des experiences seulement. Utile seulement pour un usage tres specifique
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents:
diff changeset
218 reduce_every=REDUCE_EVERY)
f9b93ae45723 Programme pour reprendre une partie des experiences seulement. Utile seulement pour un usage tres specifique
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents:
diff changeset
219
f9b93ae45723 Programme pour reprendre une partie des experiences seulement. Utile seulement pour un usage tres specifique
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents:
diff changeset
220 # train
f9b93ae45723 Programme pour reprendre une partie des experiences seulement. Utile seulement pour un usage tres specifique
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents:
diff changeset
221 training_base = \
f9b93ae45723 Programme pour reprendre une partie des experiences seulement. Utile seulement pour un usage tres specifique
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents:
diff changeset
222 ErrorSeries(error_name="training_error",
f9b93ae45723 Programme pour reprendre une partie des experiences seulement. Utile seulement pour un usage tres specifique
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents:
diff changeset
223 table_name="training_error",
f9b93ae45723 Programme pour reprendre une partie des experiences seulement. Utile seulement pour un usage tres specifique
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents:
diff changeset
224 hdf5_file=h5f,
f9b93ae45723 Programme pour reprendre une partie des experiences seulement. Utile seulement pour un usage tres specifique
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents:
diff changeset
225 index_names=('epoch','minibatch'),
f9b93ae45723 Programme pour reprendre une partie des experiences seulement. Utile seulement pour un usage tres specifique
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents:
diff changeset
226 title="Training error (mean over "+str(REDUCE_EVERY)+" minibatches)")
f9b93ae45723 Programme pour reprendre une partie des experiences seulement. Utile seulement pour un usage tres specifique
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents:
diff changeset
227 series['training_error'] = \
f9b93ae45723 Programme pour reprendre une partie des experiences seulement. Utile seulement pour un usage tres specifique
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents:
diff changeset
228 AccumulatorSeriesWrapper(base_series=training_base,
f9b93ae45723 Programme pour reprendre une partie des experiences seulement. Utile seulement pour un usage tres specifique
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents:
diff changeset
229 reduce_every=REDUCE_EVERY)
f9b93ae45723 Programme pour reprendre une partie des experiences seulement. Utile seulement pour un usage tres specifique
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents:
diff changeset
230
f9b93ae45723 Programme pour reprendre une partie des experiences seulement. Utile seulement pour un usage tres specifique
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents:
diff changeset
231 # valid and test are not accumulated/mean, saved directly
f9b93ae45723 Programme pour reprendre une partie des experiences seulement. Utile seulement pour un usage tres specifique
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents:
diff changeset
232 series['validation_error'] = \
f9b93ae45723 Programme pour reprendre une partie des experiences seulement. Utile seulement pour un usage tres specifique
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents:
diff changeset
233 ErrorSeries(error_name="validation_error",
f9b93ae45723 Programme pour reprendre une partie des experiences seulement. Utile seulement pour un usage tres specifique
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents:
diff changeset
234 table_name="validation_error",
f9b93ae45723 Programme pour reprendre une partie des experiences seulement. Utile seulement pour un usage tres specifique
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents:
diff changeset
235 hdf5_file=h5f,
f9b93ae45723 Programme pour reprendre une partie des experiences seulement. Utile seulement pour un usage tres specifique
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents:
diff changeset
236 index_names=('epoch','minibatch'))
f9b93ae45723 Programme pour reprendre une partie des experiences seulement. Utile seulement pour un usage tres specifique
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents:
diff changeset
237
f9b93ae45723 Programme pour reprendre une partie des experiences seulement. Utile seulement pour un usage tres specifique
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents:
diff changeset
238 series['test_error'] = \
f9b93ae45723 Programme pour reprendre une partie des experiences seulement. Utile seulement pour un usage tres specifique
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents:
diff changeset
239 ErrorSeries(error_name="test_error",
f9b93ae45723 Programme pour reprendre une partie des experiences seulement. Utile seulement pour un usage tres specifique
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents:
diff changeset
240 table_name="test_error",
f9b93ae45723 Programme pour reprendre une partie des experiences seulement. Utile seulement pour un usage tres specifique
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents:
diff changeset
241 hdf5_file=h5f,
f9b93ae45723 Programme pour reprendre une partie des experiences seulement. Utile seulement pour un usage tres specifique
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents:
diff changeset
242 index_names=('epoch','minibatch'))
f9b93ae45723 Programme pour reprendre une partie des experiences seulement. Utile seulement pour un usage tres specifique
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents:
diff changeset
243
f9b93ae45723 Programme pour reprendre une partie des experiences seulement. Utile seulement pour un usage tres specifique
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents:
diff changeset
244 param_names = []
f9b93ae45723 Programme pour reprendre une partie des experiences seulement. Utile seulement pour un usage tres specifique
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents:
diff changeset
245 for i in range(num_hidden_layers):
f9b93ae45723 Programme pour reprendre une partie des experiences seulement. Utile seulement pour un usage tres specifique
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents:
diff changeset
246 param_names += ['layer%d_W'%i, 'layer%d_b'%i, 'layer%d_bprime'%i]
f9b93ae45723 Programme pour reprendre une partie des experiences seulement. Utile seulement pour un usage tres specifique
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents:
diff changeset
247 param_names += ['logreg_layer_W', 'logreg_layer_b']
f9b93ae45723 Programme pour reprendre une partie des experiences seulement. Utile seulement pour un usage tres specifique
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents:
diff changeset
248
f9b93ae45723 Programme pour reprendre une partie des experiences seulement. Utile seulement pour un usage tres specifique
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents:
diff changeset
249 # comment out series we don't want to save
f9b93ae45723 Programme pour reprendre une partie des experiences seulement. Utile seulement pour un usage tres specifique
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents:
diff changeset
250 series['params'] = SharedParamsStatisticsWrapper(
f9b93ae45723 Programme pour reprendre une partie des experiences seulement. Utile seulement pour un usage tres specifique
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents:
diff changeset
251 new_group_name="params",
f9b93ae45723 Programme pour reprendre une partie des experiences seulement. Utile seulement pour un usage tres specifique
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents:
diff changeset
252 base_group="/",
f9b93ae45723 Programme pour reprendre une partie des experiences seulement. Utile seulement pour un usage tres specifique
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents:
diff changeset
253 arrays_names=param_names,
f9b93ae45723 Programme pour reprendre une partie des experiences seulement. Utile seulement pour un usage tres specifique
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents:
diff changeset
254 hdf5_file=h5f,
f9b93ae45723 Programme pour reprendre une partie des experiences seulement. Utile seulement pour un usage tres specifique
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents:
diff changeset
255 index_names=('epoch',))
f9b93ae45723 Programme pour reprendre une partie des experiences seulement. Utile seulement pour un usage tres specifique
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents:
diff changeset
256
f9b93ae45723 Programme pour reprendre une partie des experiences seulement. Utile seulement pour un usage tres specifique
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents:
diff changeset
257 return series
f9b93ae45723 Programme pour reprendre une partie des experiences seulement. Utile seulement pour un usage tres specifique
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents:
diff changeset
258
f9b93ae45723 Programme pour reprendre une partie des experiences seulement. Utile seulement pour un usage tres specifique
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents:
diff changeset
259 # Perform insertion into the Postgre DB based on combination
f9b93ae45723 Programme pour reprendre une partie des experiences seulement. Utile seulement pour un usage tres specifique
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents:
diff changeset
260 # of hyperparameter values above
f9b93ae45723 Programme pour reprendre une partie des experiences seulement. Utile seulement pour un usage tres specifique
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents:
diff changeset
261 # (see comment for produit_cartesien_jobs() to know how it works)
f9b93ae45723 Programme pour reprendre une partie des experiences seulement. Utile seulement pour un usage tres specifique
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents:
diff changeset
262 def jobman_insert_nist():
f9b93ae45723 Programme pour reprendre une partie des experiences seulement. Utile seulement pour un usage tres specifique
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents:
diff changeset
263 jobs = produit_cartesien_jobs(JOB_VALS)
f9b93ae45723 Programme pour reprendre une partie des experiences seulement. Utile seulement pour un usage tres specifique
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents:
diff changeset
264
f9b93ae45723 Programme pour reprendre une partie des experiences seulement. Utile seulement pour un usage tres specifique
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents:
diff changeset
265 db = jobman.sql.db(JOBDB)
f9b93ae45723 Programme pour reprendre une partie des experiences seulement. Utile seulement pour un usage tres specifique
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents:
diff changeset
266 for job in jobs:
f9b93ae45723 Programme pour reprendre une partie des experiences seulement. Utile seulement pour un usage tres specifique
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents:
diff changeset
267 job.update({jobman.sql.EXPERIMENT: EXPERIMENT_PATH})
f9b93ae45723 Programme pour reprendre une partie des experiences seulement. Utile seulement pour un usage tres specifique
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents:
diff changeset
268 jobman.sql.insert_dict(job, db)
f9b93ae45723 Programme pour reprendre une partie des experiences seulement. Utile seulement pour un usage tres specifique
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents:
diff changeset
269
f9b93ae45723 Programme pour reprendre une partie des experiences seulement. Utile seulement pour un usage tres specifique
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents:
diff changeset
270 print "inserted"
f9b93ae45723 Programme pour reprendre une partie des experiences seulement. Utile seulement pour un usage tres specifique
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents:
diff changeset
271
f9b93ae45723 Programme pour reprendre une partie des experiences seulement. Utile seulement pour un usage tres specifique
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents:
diff changeset
272 if __name__ == '__main__':
f9b93ae45723 Programme pour reprendre une partie des experiences seulement. Utile seulement pour un usage tres specifique
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents:
diff changeset
273
f9b93ae45723 Programme pour reprendre une partie des experiences seulement. Utile seulement pour un usage tres specifique
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents:
diff changeset
274 args = sys.argv[1:]
f9b93ae45723 Programme pour reprendre une partie des experiences seulement. Utile seulement pour un usage tres specifique
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents:
diff changeset
275
f9b93ae45723 Programme pour reprendre une partie des experiences seulement. Utile seulement pour un usage tres specifique
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents:
diff changeset
276 #if len(args) > 0 and args[0] == 'load_nist':
f9b93ae45723 Programme pour reprendre une partie des experiences seulement. Utile seulement pour un usage tres specifique
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents:
diff changeset
277 # test_load_nist()
f9b93ae45723 Programme pour reprendre une partie des experiences seulement. Utile seulement pour un usage tres specifique
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents:
diff changeset
278
f9b93ae45723 Programme pour reprendre une partie des experiences seulement. Utile seulement pour un usage tres specifique
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents:
diff changeset
279 if len(args) > 0 and args[0] == 'jobman_insert':
f9b93ae45723 Programme pour reprendre une partie des experiences seulement. Utile seulement pour un usage tres specifique
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents:
diff changeset
280 jobman_insert_nist()
f9b93ae45723 Programme pour reprendre une partie des experiences seulement. Utile seulement pour un usage tres specifique
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents:
diff changeset
281
f9b93ae45723 Programme pour reprendre une partie des experiences seulement. Utile seulement pour un usage tres specifique
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents:
diff changeset
282 elif len(args) > 0 and args[0] == 'test_jobman_entrypoint':
f9b93ae45723 Programme pour reprendre une partie des experiences seulement. Utile seulement pour un usage tres specifique
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents:
diff changeset
283 chanmock = DD({'COMPLETE':0,'save':(lambda:None)})
f9b93ae45723 Programme pour reprendre une partie des experiences seulement. Utile seulement pour un usage tres specifique
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents:
diff changeset
284 jobman_entrypoint(DD(DEFAULT_HP_NIST), chanmock)
f9b93ae45723 Programme pour reprendre une partie des experiences seulement. Utile seulement pour un usage tres specifique
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents:
diff changeset
285
f9b93ae45723 Programme pour reprendre une partie des experiences seulement. Utile seulement pour un usage tres specifique
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents:
diff changeset
286 else:
f9b93ae45723 Programme pour reprendre une partie des experiences seulement. Utile seulement pour un usage tres specifique
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents:
diff changeset
287 print "Bad arguments"
f9b93ae45723 Programme pour reprendre une partie des experiences seulement. Utile seulement pour un usage tres specifique
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents:
diff changeset
288