annotate deep/stacked_dae/v_sylvain/nist_sda_retrieve.py @ 287:f9b93ae45723

Programme pour reprendre une partie des experiences seulement. Utile seulement pour un usage tres specifique
author SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
date Fri, 26 Mar 2010 16:17:56 -0400
parents
children a78dbbc61f37
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')
f9b93ae45723 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
f9b93ae45723 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 sys.stdout.flush()
f9b93ae45723 Programme pour reprendre une partie des experiences seulement. Utile seulement pour un usage tres specifique
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents:
diff changeset
89
f9b93ae45723 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 #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
91 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
92 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
93 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
94 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
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 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
97 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
98 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
99 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
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
101 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
102 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
103 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
104 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
105
f9b93ae45723 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 #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
107
f9b93ae45723 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 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
109 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
110 optimizer.reload_parameters('/u/pannetis/IFT6266/ift6266/deep/stacked_dae/v_sylvain/ift6266h10_db/pannetis_finetuningSDA/1/params_pretrain.txt')
f9b93ae45723 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 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
112 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
113 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
114 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
115 optimizer.reload_parameters('/u/pannetis/IFT6266/ift6266/deep/stacked_dae/v_sylvain/ift6266h10_db/pannetis_finetuningSDA/1/params_pretrain.txt')
f9b93ae45723 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 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
117 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
118 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
119 print('\n\n\tfinetune with NIST followed by 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
120 optimizer.reload_parameters('/u/pannetis/IFT6266/ift6266/deep/stacked_dae/v_sylvain/ift6266h10_db/pannetis_finetuningSDA/1/params_pretrain.txt')
f9b93ae45723 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 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
122 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
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 == 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
125 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
126 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
127 optimizer.reload_parameters('/u/pannetis/IFT6266/ift6266/deep/stacked_dae/v_sylvain/ift6266h10_db/pannetis_finetuningSDA/1/params_pretrain.txt')
f9b93ae45723 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_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
129
f9b93ae45723 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 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
132 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
133 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
134 sys.stdout.flush()
f9b93ae45723 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 optimizer.reload_parameters('/u/pannetis/IFT6266/ift6266/deep/stacked_dae/v_sylvain/ift6266h10_db/pannetis_finetuningSDA/1/params_pretrain.txt')
f9b93ae45723 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 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
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 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
139 sys.stdout.flush()
f9b93ae45723 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 optimizer.reload_parameters('/u/pannetis/IFT6266/ift6266/deep/stacked_dae/v_sylvain/ift6266h10_db/pannetis_finetuningSDA/1/params_pretrain.txt')
f9b93ae45723 Programme pour reprendre une partie des experiences seulement. Utile seulement pour un usage tres specifique
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents:
diff changeset
141 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
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 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
144 sys.stdout.flush()
f9b93ae45723 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 optimizer.reload_parameters('/u/pannetis/IFT6266/ift6266/deep/stacked_dae/v_sylvain/ift6266h10_db/pannetis_finetuningSDA/1/params_finetune_NIST.txt')
f9b93ae45723 Programme pour reprendre une partie des experiences seulement. Utile seulement pour un usage tres specifique
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents:
diff changeset
146 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
147 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
148 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
149 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
150 sys.stdout.flush()
f9b93ae45723 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 optimizer.reload_parameters('/u/pannetis/IFT6266/ift6266/deep/stacked_dae/v_sylvain/ift6266h10_db/pannetis_finetuningSDA/1/params_pretrain.txt')
f9b93ae45723 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_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
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
f9b93ae45723 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 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
156
f9b93ae45723 Programme pour reprendre une partie des experiences seulement. Utile seulement pour un usage tres specifique
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents:
diff changeset
157 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
158
f9b93ae45723 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 # 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
160 # 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
161 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
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 # 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
164 # 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
165
f9b93ae45723 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 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
167
f9b93ae45723 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 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
169
f9b93ae45723 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 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
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 # 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
173 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
174 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
175 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
176 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
177 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
178 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
179 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
180 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
181 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
182
f9b93ae45723 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 # 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
184 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
185 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
186 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
187 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
188 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
189 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
190 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
191 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
192 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
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 # 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
195 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
196 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
197 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
198 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
199 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
200
f9b93ae45723 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['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
202 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
203 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
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 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
208 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
209 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
210 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
211
f9b93ae45723 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 # 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
213 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
214 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
215 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
216 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
217 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
218 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
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 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
221
f9b93ae45723 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 # 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
223 # 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
224 # (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
225 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
226 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
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 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
229 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
230 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
231 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
232
f9b93ae45723 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 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
234
f9b93ae45723 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 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
236
f9b93ae45723 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 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
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 #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
240 # 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
241
f9b93ae45723 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 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
243 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
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 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
246 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
247 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
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 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
250 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
251