annotate deep/stacked_dae/v_sylvain/nist_sda_retrieve.py @ 306:a78dbbc61f37

Meilleure souplesse d'execution, un parametre hard-coade est maintenant plus propre
author SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
date Wed, 31 Mar 2010 21:02:27 -0400
parents f9b93ae45723
children a76bae0f2388
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
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
53
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
54 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
55 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
56
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
57 examples_per_epoch = NIST_ALL_TRAIN_SIZE
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 series = create_series(state.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
60
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 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
62
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
63 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
64 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
65 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
66 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
67 series=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
68 max_minibatches=rtt)
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
69
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
70 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
71 #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
72 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
73 ## 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
74 ## 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
75 ## 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
76 ## 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
77 ## #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
78 ## 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
79 ## 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
80 ## 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
81 ## 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
82 ## "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
83 ## "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
84 ## 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
85 ## optimizer.pretrain(datasets.nist_P07(min_file=0,max_file=nb_file))
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 print ('Retrieve pre-train done earlier')
306
a78dbbc61f37 Meilleure souplesse d'execution, un parametre hard-coade est maintenant plus propre
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents: 287
diff changeset
87
a78dbbc61f37 Meilleure souplesse d'execution, un parametre hard-coade est maintenant plus propre
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents: 287
diff changeset
88 if state['pretrain_choice'] == 0:
a78dbbc61f37 Meilleure souplesse d'execution, un parametre hard-coade est maintenant plus propre
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents: 287
diff changeset
89 PATH=PATH_NIST
a78dbbc61f37 Meilleure souplesse d'execution, un parametre hard-coade est maintenant plus propre
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents: 287
diff changeset
90 elif state['pretrain_choice'] == 1:
a78dbbc61f37 Meilleure souplesse d'execution, un parametre hard-coade est maintenant plus propre
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents: 287
diff changeset
91 PATH=PATH_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
92
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 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
94 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
95
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 #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
97 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
98 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
99 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
100 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
101
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 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
103 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
104 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
105 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
106
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
107 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
108 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
109 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
110 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
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 #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
113
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 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
115 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
116 optimizer.reload_parameters(PATH+'params_pretrain.txt')
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
117 optimizer.finetune(datasets.nist_all(),datasets.nist_P07(min_file=nb_file),max_finetune_epoch_NIST,ind_test=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
118 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
119 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
120 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
121 optimizer.reload_parameters(PATH+'params_pretrain.txt')
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
122 optimizer.finetune(datasets.nist_P07(min_file=nb_file),datasets.nist_all(),max_finetune_epoch_P07,ind_test=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
123 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
124 if finetune_choice == 2:
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 print('\n\n\tfinetune with NIST followed by 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
126 optimizer.reload_parameters(PATH+'params_pretrain.txt')
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
127 optimizer.finetune(datasets.nist_all(),datasets.nist_P07(min_file=nb_file),max_finetune_epoch_NIST,ind_test=21)
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 optimizer.finetune(datasets.nist_P07(min_file=nb_file),datasets.nist_all(),max_finetune_epoch_P07,ind_test=20)
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 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
130 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
131 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
132 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
133 optimizer.reload_parameters(PATH+'params_pretrain.txt')
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
134 optimizer.finetune(datasets.nist_all(),datasets.nist_P07(min_file=nb_file),max_finetune_epoch_NIST,ind_test=1,special=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
135
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
136
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 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
138 print('\nSERIE OF 3 DIFFERENT FINETUNINGS')
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 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
140 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
141 optimizer.reload_parameters(PATH+'params_pretrain.txt')
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 optimizer.finetune(datasets.nist_all(),datasets.nist_P07(min_file=nb_file),max_finetune_epoch_NIST,ind_test=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
143 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
144 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
145 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
146 optimizer.reload_parameters(PATH+'params_pretrain.txt')
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
147 optimizer.finetune(datasets.nist_P07(min_file=nb_file),datasets.nist_all(),max_finetune_epoch_P07,ind_test=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
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 print('\n\n\tfinetune with NIST (done earlier) followed by P07 (written here)\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
150 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
151 optimizer.reload_parameters('params_finetune_NIST.txt')
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
152 optimizer.finetune(datasets.nist_P07(min_file=nb_file),datasets.nist_all(),max_finetune_epoch_P07,ind_test=20)
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
153 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
154 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
155 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
156 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
157 optimizer.reload_parameters(PATH+'params_pretrain.txt')
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
158 optimizer.finetune(datasets.nist_all(),datasets.nist_P07(min_file=nb_file),max_finetune_epoch_NIST,ind_test=1,special=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
159 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
160
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
161 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
162
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 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
164
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
165 # 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
166 # during the training.
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 def create_series(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
168
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
169 # 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
170 # 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
171
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
172 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
173
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
174 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
175
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 h5f = tables.openFile(os.path.join(basedir, "series.h5"), "w")
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
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 # 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
179 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
180 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
181 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
182 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
183 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
184 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
185 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
186 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
187 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
188
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
189 # 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
190 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
191 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
192 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
193 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
194 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
195 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
196 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
197 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
198 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
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 # 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
201 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
202 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
203 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
204 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
205 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
206
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
207 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
208 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
209 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
210 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
211 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
212
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 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
214 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
215 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
216 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
217
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 # 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
219 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
220 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
221 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
222 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
223 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
224 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
225
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 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
227
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 # 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
229 # 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
230 # (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
231 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
232 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
233
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 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
235 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
236 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
237 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
238
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 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
240
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 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
242
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 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
244
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 #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
246 # 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
247
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 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
249 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
250
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 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
252 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
253 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
254
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 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
256 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
257