annotate deep/stacked_dae/v_sylvain/train_error.py @ 618:14ba0120baff

review response changes
author Yoshua Bengio <bengioy@iro.umontreal.ca>
date Sun, 09 Jan 2011 14:13:23 -0500
parents 66b05c6077c7
children
rev   line source
326
b762ac18a2d7 Calcule l'erreur d'entrainement
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents:
diff changeset
1 #!/usr/bin/python
b762ac18a2d7 Calcule l'erreur d'entrainement
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents:
diff changeset
2 # coding: utf-8
b762ac18a2d7 Calcule l'erreur d'entrainement
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents:
diff changeset
3
b762ac18a2d7 Calcule l'erreur d'entrainement
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents:
diff changeset
4 import ift6266
b762ac18a2d7 Calcule l'erreur d'entrainement
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents:
diff changeset
5 import pylearn
b762ac18a2d7 Calcule l'erreur d'entrainement
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents:
diff changeset
6
b762ac18a2d7 Calcule l'erreur d'entrainement
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents:
diff changeset
7 import numpy
b762ac18a2d7 Calcule l'erreur d'entrainement
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents:
diff changeset
8 import theano
b762ac18a2d7 Calcule l'erreur d'entrainement
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents:
diff changeset
9 import time
456
66b05c6077c7 Ajout d'option pour choisir l'ensemble de donnees (train/valid/test) ainsi que mettre NIST,P07 et PNIST pour tous les modeles testes
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents: 388
diff changeset
10 import math
326
b762ac18a2d7 Calcule l'erreur d'entrainement
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents:
diff changeset
11
b762ac18a2d7 Calcule l'erreur d'entrainement
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents:
diff changeset
12 import pylearn.version
b762ac18a2d7 Calcule l'erreur d'entrainement
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents:
diff changeset
13 import theano.tensor as T
b762ac18a2d7 Calcule l'erreur d'entrainement
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents:
diff changeset
14 from theano.tensor.shared_randomstreams import RandomStreams
b762ac18a2d7 Calcule l'erreur d'entrainement
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents:
diff changeset
15
b762ac18a2d7 Calcule l'erreur d'entrainement
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents:
diff changeset
16 import copy
b762ac18a2d7 Calcule l'erreur d'entrainement
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents:
diff changeset
17 import sys
b762ac18a2d7 Calcule l'erreur d'entrainement
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents:
diff changeset
18 import os
b762ac18a2d7 Calcule l'erreur d'entrainement
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents:
diff changeset
19 import os.path
b762ac18a2d7 Calcule l'erreur d'entrainement
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents:
diff changeset
20
b762ac18a2d7 Calcule l'erreur d'entrainement
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents:
diff changeset
21 from jobman import DD
b762ac18a2d7 Calcule l'erreur d'entrainement
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents:
diff changeset
22 import jobman, jobman.sql
b762ac18a2d7 Calcule l'erreur d'entrainement
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents:
diff changeset
23 from pylearn.io import filetensor
b762ac18a2d7 Calcule l'erreur d'entrainement
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents:
diff changeset
24
b762ac18a2d7 Calcule l'erreur d'entrainement
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents:
diff changeset
25 from utils import produit_cartesien_jobs
b762ac18a2d7 Calcule l'erreur d'entrainement
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents:
diff changeset
26 from copy import copy
b762ac18a2d7 Calcule l'erreur d'entrainement
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents:
diff changeset
27
b762ac18a2d7 Calcule l'erreur d'entrainement
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents:
diff changeset
28 from sgd_optimization import SdaSgdOptimizer
b762ac18a2d7 Calcule l'erreur d'entrainement
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents:
diff changeset
29
b762ac18a2d7 Calcule l'erreur d'entrainement
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents:
diff changeset
30 #from ift6266.utils.scalar_series import *
b762ac18a2d7 Calcule l'erreur d'entrainement
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents:
diff changeset
31 from ift6266.utils.seriestables import *
b762ac18a2d7 Calcule l'erreur d'entrainement
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents:
diff changeset
32 import tables
b762ac18a2d7 Calcule l'erreur d'entrainement
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents:
diff changeset
33
b762ac18a2d7 Calcule l'erreur d'entrainement
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents:
diff changeset
34 from ift6266 import datasets
b762ac18a2d7 Calcule l'erreur d'entrainement
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents:
diff changeset
35 from config import *
b762ac18a2d7 Calcule l'erreur d'entrainement
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents:
diff changeset
36
b762ac18a2d7 Calcule l'erreur d'entrainement
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents:
diff changeset
37 '''
b762ac18a2d7 Calcule l'erreur d'entrainement
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents:
diff changeset
38 Function called by jobman upon launching each job
b762ac18a2d7 Calcule l'erreur d'entrainement
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents:
diff changeset
39 Its path is the one given when inserting jobs: see EXPERIMENT_PATH
b762ac18a2d7 Calcule l'erreur d'entrainement
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents:
diff changeset
40 '''
456
66b05c6077c7 Ajout d'option pour choisir l'ensemble de donnees (train/valid/test) ainsi que mettre NIST,P07 et PNIST pour tous les modeles testes
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents: 388
diff changeset
41 def jobman_entrypoint(state, channel,set_choice):
326
b762ac18a2d7 Calcule l'erreur d'entrainement
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents:
diff changeset
42 # record mercurial versions of each package
b762ac18a2d7 Calcule l'erreur d'entrainement
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents:
diff changeset
43 pylearn.version.record_versions(state,[theano,ift6266,pylearn])
b762ac18a2d7 Calcule l'erreur d'entrainement
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents:
diff changeset
44 # TODO: remove this, bad for number of simultaneous requests on DB
b762ac18a2d7 Calcule l'erreur d'entrainement
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents:
diff changeset
45 channel.save()
b762ac18a2d7 Calcule l'erreur d'entrainement
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents:
diff changeset
46
b762ac18a2d7 Calcule l'erreur d'entrainement
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents:
diff changeset
47 # For test runs, we don't want to use the whole dataset so
b762ac18a2d7 Calcule l'erreur d'entrainement
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents:
diff changeset
48 # reduce it to fewer elements if asked to.
b762ac18a2d7 Calcule l'erreur d'entrainement
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents:
diff changeset
49 rtt = None
b762ac18a2d7 Calcule l'erreur d'entrainement
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents:
diff changeset
50 if state.has_key('reduce_train_to'):
b762ac18a2d7 Calcule l'erreur d'entrainement
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents:
diff changeset
51 rtt = state['reduce_train_to']
b762ac18a2d7 Calcule l'erreur d'entrainement
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents:
diff changeset
52 elif REDUCE_TRAIN_TO:
b762ac18a2d7 Calcule l'erreur d'entrainement
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents:
diff changeset
53 rtt = REDUCE_TRAIN_TO
b762ac18a2d7 Calcule l'erreur d'entrainement
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents:
diff changeset
54
b762ac18a2d7 Calcule l'erreur d'entrainement
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents:
diff changeset
55 n_ins = 32*32
b762ac18a2d7 Calcule l'erreur d'entrainement
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents:
diff changeset
56 n_outs = 62 # 10 digits, 26*2 (lower, capitals)
b762ac18a2d7 Calcule l'erreur d'entrainement
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents:
diff changeset
57
b762ac18a2d7 Calcule l'erreur d'entrainement
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents:
diff changeset
58 examples_per_epoch = NIST_ALL_TRAIN_SIZE
b762ac18a2d7 Calcule l'erreur d'entrainement
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents:
diff changeset
59
b762ac18a2d7 Calcule l'erreur d'entrainement
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents:
diff changeset
60 PATH = ''
456
66b05c6077c7 Ajout d'option pour choisir l'ensemble de donnees (train/valid/test) ainsi que mettre NIST,P07 et PNIST pour tous les modeles testes
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents: 388
diff changeset
61 if set_choice == 0:
66b05c6077c7 Ajout d'option pour choisir l'ensemble de donnees (train/valid/test) ainsi que mettre NIST,P07 et PNIST pour tous les modeles testes
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents: 388
diff changeset
62 maximum_exemples=int(500000) #Maximum number of exemples seen
66b05c6077c7 Ajout d'option pour choisir l'ensemble de donnees (train/valid/test) ainsi que mettre NIST,P07 et PNIST pour tous les modeles testes
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents: 388
diff changeset
63 else:
66b05c6077c7 Ajout d'option pour choisir l'ensemble de donnees (train/valid/test) ainsi que mettre NIST,P07 et PNIST pour tous les modeles testes
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents: 388
diff changeset
64 maximum_exemples = int(1000000000) #an impossible number
326
b762ac18a2d7 Calcule l'erreur d'entrainement
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents:
diff changeset
65
b762ac18a2d7 Calcule l'erreur d'entrainement
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents:
diff changeset
66
b762ac18a2d7 Calcule l'erreur d'entrainement
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents:
diff changeset
67
b762ac18a2d7 Calcule l'erreur d'entrainement
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents:
diff changeset
68 print "Creating optimizer with state, ", state
b762ac18a2d7 Calcule l'erreur d'entrainement
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents:
diff changeset
69
b762ac18a2d7 Calcule l'erreur d'entrainement
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents:
diff changeset
70 optimizer = SdaSgdOptimizer(dataset=datasets.nist_all(),
b762ac18a2d7 Calcule l'erreur d'entrainement
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents:
diff changeset
71 hyperparameters=state, \
b762ac18a2d7 Calcule l'erreur d'entrainement
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents:
diff changeset
72 n_ins=n_ins, n_outs=n_outs,\
b762ac18a2d7 Calcule l'erreur d'entrainement
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents:
diff changeset
73 examples_per_epoch=examples_per_epoch, \
b762ac18a2d7 Calcule l'erreur d'entrainement
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents:
diff changeset
74 max_minibatches=rtt)
b762ac18a2d7 Calcule l'erreur d'entrainement
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents:
diff changeset
75
b762ac18a2d7 Calcule l'erreur d'entrainement
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents:
diff changeset
76
b762ac18a2d7 Calcule l'erreur d'entrainement
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents:
diff changeset
77
b762ac18a2d7 Calcule l'erreur d'entrainement
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents:
diff changeset
78
b762ac18a2d7 Calcule l'erreur d'entrainement
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents:
diff changeset
79 if os.path.exists(PATH+'params_finetune_NIST.txt'):
b762ac18a2d7 Calcule l'erreur d'entrainement
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents:
diff changeset
80 print ('\n finetune = NIST ')
b762ac18a2d7 Calcule l'erreur d'entrainement
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents:
diff changeset
81 optimizer.reload_parameters(PATH+'params_finetune_NIST.txt')
456
66b05c6077c7 Ajout d'option pour choisir l'ensemble de donnees (train/valid/test) ainsi que mettre NIST,P07 et PNIST pour tous les modeles testes
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents: 388
diff changeset
82 print "For" + str(maximum_exemples) + "over the NIST set: "
66b05c6077c7 Ajout d'option pour choisir l'ensemble de donnees (train/valid/test) ainsi que mettre NIST,P07 et PNIST pour tous les modeles testes
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents: 388
diff changeset
83 optimizer.training_error(datasets.nist_all(maxsize=maximum_exemples),set_choice)
66b05c6077c7 Ajout d'option pour choisir l'ensemble de donnees (train/valid/test) ainsi que mettre NIST,P07 et PNIST pour tous les modeles testes
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents: 388
diff changeset
84 print "For" + str(maximum_exemples) + "over the P07 set: "
66b05c6077c7 Ajout d'option pour choisir l'ensemble de donnees (train/valid/test) ainsi que mettre NIST,P07 et PNIST pour tous les modeles testes
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents: 388
diff changeset
85 optimizer.training_error(datasets.nist_P07(maxsize=maximum_exemples),set_choice)
66b05c6077c7 Ajout d'option pour choisir l'ensemble de donnees (train/valid/test) ainsi que mettre NIST,P07 et PNIST pour tous les modeles testes
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents: 388
diff changeset
86 print "For" + str(maximum_exemples) + "over the PNIST07 set: "
66b05c6077c7 Ajout d'option pour choisir l'ensemble de donnees (train/valid/test) ainsi que mettre NIST,P07 et PNIST pour tous les modeles testes
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents: 388
diff changeset
87 optimizer.training_error(datasets.PNIST07(maxsize=maximum_exemples),set_choice)
326
b762ac18a2d7 Calcule l'erreur d'entrainement
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents:
diff changeset
88
b762ac18a2d7 Calcule l'erreur d'entrainement
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents:
diff changeset
89
b762ac18a2d7 Calcule l'erreur d'entrainement
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents:
diff changeset
90 if os.path.exists(PATH+'params_finetune_P07.txt'):
b762ac18a2d7 Calcule l'erreur d'entrainement
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents:
diff changeset
91 print ('\n finetune = P07 ')
b762ac18a2d7 Calcule l'erreur d'entrainement
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents:
diff changeset
92 optimizer.reload_parameters(PATH+'params_finetune_P07.txt')
456
66b05c6077c7 Ajout d'option pour choisir l'ensemble de donnees (train/valid/test) ainsi que mettre NIST,P07 et PNIST pour tous les modeles testes
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents: 388
diff changeset
93 print "For" + str(maximum_exemples) + "over the NIST set: "
66b05c6077c7 Ajout d'option pour choisir l'ensemble de donnees (train/valid/test) ainsi que mettre NIST,P07 et PNIST pour tous les modeles testes
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents: 388
diff changeset
94 optimizer.training_error(datasets.nist_all(maxsize=maximum_exemples),set_choice)
66b05c6077c7 Ajout d'option pour choisir l'ensemble de donnees (train/valid/test) ainsi que mettre NIST,P07 et PNIST pour tous les modeles testes
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents: 388
diff changeset
95 print "For" + str(maximum_exemples) + "over the P07 set: "
66b05c6077c7 Ajout d'option pour choisir l'ensemble de donnees (train/valid/test) ainsi que mettre NIST,P07 et PNIST pour tous les modeles testes
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents: 388
diff changeset
96 optimizer.training_error(datasets.nist_P07(maxsize=maximum_exemples),set_choice)
66b05c6077c7 Ajout d'option pour choisir l'ensemble de donnees (train/valid/test) ainsi que mettre NIST,P07 et PNIST pour tous les modeles testes
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents: 388
diff changeset
97 print "For" + str(maximum_exemples) + "over the PNIST07 set: "
66b05c6077c7 Ajout d'option pour choisir l'ensemble de donnees (train/valid/test) ainsi que mettre NIST,P07 et PNIST pour tous les modeles testes
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents: 388
diff changeset
98 optimizer.training_error(datasets.PNIST07(maxsize=maximum_exemples),set_choice)
326
b762ac18a2d7 Calcule l'erreur d'entrainement
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents:
diff changeset
99
b762ac18a2d7 Calcule l'erreur d'entrainement
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents:
diff changeset
100
b762ac18a2d7 Calcule l'erreur d'entrainement
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents:
diff changeset
101 if os.path.exists(PATH+'params_finetune_NIST_then_P07.txt'):
b762ac18a2d7 Calcule l'erreur d'entrainement
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents:
diff changeset
102 print ('\n finetune = NIST then P07')
b762ac18a2d7 Calcule l'erreur d'entrainement
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents:
diff changeset
103 optimizer.reload_parameters(PATH+'params_finetune_NIST_then_P07.txt')
456
66b05c6077c7 Ajout d'option pour choisir l'ensemble de donnees (train/valid/test) ainsi que mettre NIST,P07 et PNIST pour tous les modeles testes
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents: 388
diff changeset
104 print "For" + str(maximum_exemples) + "over the NIST set: "
66b05c6077c7 Ajout d'option pour choisir l'ensemble de donnees (train/valid/test) ainsi que mettre NIST,P07 et PNIST pour tous les modeles testes
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents: 388
diff changeset
105 optimizer.training_error(datasets.nist_all(maxsize=maximum_exemples),set_choice)
66b05c6077c7 Ajout d'option pour choisir l'ensemble de donnees (train/valid/test) ainsi que mettre NIST,P07 et PNIST pour tous les modeles testes
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents: 388
diff changeset
106 print "For" + str(maximum_exemples) + "over the P07 set: "
66b05c6077c7 Ajout d'option pour choisir l'ensemble de donnees (train/valid/test) ainsi que mettre NIST,P07 et PNIST pour tous les modeles testes
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents: 388
diff changeset
107 optimizer.training_error(datasets.nist_P07(maxsize=maximum_exemples),set_choice)
66b05c6077c7 Ajout d'option pour choisir l'ensemble de donnees (train/valid/test) ainsi que mettre NIST,P07 et PNIST pour tous les modeles testes
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents: 388
diff changeset
108 print "For" + str(maximum_exemples) + "over the PNIST07 set: "
66b05c6077c7 Ajout d'option pour choisir l'ensemble de donnees (train/valid/test) ainsi que mettre NIST,P07 et PNIST pour tous les modeles testes
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents: 388
diff changeset
109 optimizer.training_error(datasets.PNIST07(maxsize=maximum_exemples),set_choice)
326
b762ac18a2d7 Calcule l'erreur d'entrainement
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents:
diff changeset
110
b762ac18a2d7 Calcule l'erreur d'entrainement
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents:
diff changeset
111 if os.path.exists(PATH+'params_finetune_P07_then_NIST.txt'):
b762ac18a2d7 Calcule l'erreur d'entrainement
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents:
diff changeset
112 print ('\n finetune = P07 then NIST')
b762ac18a2d7 Calcule l'erreur d'entrainement
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents:
diff changeset
113 optimizer.reload_parameters(PATH+'params_finetune_P07_then_NIST.txt')
456
66b05c6077c7 Ajout d'option pour choisir l'ensemble de donnees (train/valid/test) ainsi que mettre NIST,P07 et PNIST pour tous les modeles testes
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents: 388
diff changeset
114 print "For" + str(maximum_exemples) + "over the NIST set: "
66b05c6077c7 Ajout d'option pour choisir l'ensemble de donnees (train/valid/test) ainsi que mettre NIST,P07 et PNIST pour tous les modeles testes
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents: 388
diff changeset
115 optimizer.training_error(datasets.nist_all(maxsize=maximum_exemples),set_choice)
66b05c6077c7 Ajout d'option pour choisir l'ensemble de donnees (train/valid/test) ainsi que mettre NIST,P07 et PNIST pour tous les modeles testes
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents: 388
diff changeset
116 print "For" + str(maximum_exemples) + "over the P07 set: "
66b05c6077c7 Ajout d'option pour choisir l'ensemble de donnees (train/valid/test) ainsi que mettre NIST,P07 et PNIST pour tous les modeles testes
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents: 388
diff changeset
117 optimizer.training_error(datasets.nist_P07(maxsize=maximum_exemples),set_choice)
66b05c6077c7 Ajout d'option pour choisir l'ensemble de donnees (train/valid/test) ainsi que mettre NIST,P07 et PNIST pour tous les modeles testes
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents: 388
diff changeset
118 print "For" + str(maximum_exemples) + "over the PNIST07 set: "
66b05c6077c7 Ajout d'option pour choisir l'ensemble de donnees (train/valid/test) ainsi que mettre NIST,P07 et PNIST pour tous les modeles testes
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents: 388
diff changeset
119 optimizer.training_error(datasets.PNIST07(maxsize=maximum_exemples),set_choice)
326
b762ac18a2d7 Calcule l'erreur d'entrainement
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents:
diff changeset
120
385
442fc117e886 Ajout de la faculte de prendre PNIST07
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents: 326
diff changeset
121 if os.path.exists(PATH+'params_finetune_PNIST07.txt'):
442fc117e886 Ajout de la faculte de prendre PNIST07
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents: 326
diff changeset
122 print ('\n finetune = PNIST07')
442fc117e886 Ajout de la faculte de prendre PNIST07
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents: 326
diff changeset
123 optimizer.reload_parameters(PATH+'params_finetune_PNIST07.txt')
456
66b05c6077c7 Ajout d'option pour choisir l'ensemble de donnees (train/valid/test) ainsi que mettre NIST,P07 et PNIST pour tous les modeles testes
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents: 388
diff changeset
124 print "For" + str(maximum_exemples) + "over the NIST set: "
66b05c6077c7 Ajout d'option pour choisir l'ensemble de donnees (train/valid/test) ainsi que mettre NIST,P07 et PNIST pour tous les modeles testes
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents: 388
diff changeset
125 optimizer.training_error(datasets.nist_all(maxsize=maximum_exemples),set_choice)
66b05c6077c7 Ajout d'option pour choisir l'ensemble de donnees (train/valid/test) ainsi que mettre NIST,P07 et PNIST pour tous les modeles testes
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents: 388
diff changeset
126 print "For" + str(maximum_exemples) + "over the P07 set: "
66b05c6077c7 Ajout d'option pour choisir l'ensemble de donnees (train/valid/test) ainsi que mettre NIST,P07 et PNIST pour tous les modeles testes
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents: 388
diff changeset
127 optimizer.training_error(datasets.nist_P07(maxsize=maximum_exemples),set_choice)
66b05c6077c7 Ajout d'option pour choisir l'ensemble de donnees (train/valid/test) ainsi que mettre NIST,P07 et PNIST pour tous les modeles testes
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents: 388
diff changeset
128 print "For" + str(maximum_exemples) + "over the PNIST07 set: "
66b05c6077c7 Ajout d'option pour choisir l'ensemble de donnees (train/valid/test) ainsi que mettre NIST,P07 et PNIST pour tous les modeles testes
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents: 388
diff changeset
129 optimizer.training_error(datasets.PNIST07(maxsize=maximum_exemples),set_choice)
388
0d97fead004f Changement pour prendre en compte l'option finetune amelioree pour PNIST07
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents: 385
diff changeset
130
0d97fead004f Changement pour prendre en compte l'option finetune amelioree pour PNIST07
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents: 385
diff changeset
131 if os.path.exists(PATH+'params_finetune_PNIST07_then_NIST.txt'):
0d97fead004f Changement pour prendre en compte l'option finetune amelioree pour PNIST07
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents: 385
diff changeset
132 print ('\n finetune = PNIST07 then NIST')
0d97fead004f Changement pour prendre en compte l'option finetune amelioree pour PNIST07
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents: 385
diff changeset
133 optimizer.reload_parameters(PATH+'params_finetune_PNIST07_then_NIST.txt')
456
66b05c6077c7 Ajout d'option pour choisir l'ensemble de donnees (train/valid/test) ainsi que mettre NIST,P07 et PNIST pour tous les modeles testes
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents: 388
diff changeset
134 print "For" + str(maximum_exemples) + "over the NIST set: "
66b05c6077c7 Ajout d'option pour choisir l'ensemble de donnees (train/valid/test) ainsi que mettre NIST,P07 et PNIST pour tous les modeles testes
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents: 388
diff changeset
135 optimizer.training_error(datasets.nist_all(maxsize=maximum_exemples),set_choice)
66b05c6077c7 Ajout d'option pour choisir l'ensemble de donnees (train/valid/test) ainsi que mettre NIST,P07 et PNIST pour tous les modeles testes
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents: 388
diff changeset
136 print "For" + str(maximum_exemples) + "over the P07 set: "
66b05c6077c7 Ajout d'option pour choisir l'ensemble de donnees (train/valid/test) ainsi que mettre NIST,P07 et PNIST pour tous les modeles testes
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents: 388
diff changeset
137 optimizer.training_error(datasets.nist_P07(maxsize=maximum_exemples),set_choice)
66b05c6077c7 Ajout d'option pour choisir l'ensemble de donnees (train/valid/test) ainsi que mettre NIST,P07 et PNIST pour tous les modeles testes
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents: 388
diff changeset
138 print "For" + str(maximum_exemples) + "over the PNIST07 set: "
66b05c6077c7 Ajout d'option pour choisir l'ensemble de donnees (train/valid/test) ainsi que mettre NIST,P07 et PNIST pour tous les modeles testes
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents: 388
diff changeset
139 optimizer.training_error(datasets.PNIST07(maxsize=maximum_exemples),set_choice)
385
442fc117e886 Ajout de la faculte de prendre PNIST07
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents: 326
diff changeset
140
326
b762ac18a2d7 Calcule l'erreur d'entrainement
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents:
diff changeset
141 channel.save()
b762ac18a2d7 Calcule l'erreur d'entrainement
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents:
diff changeset
142
b762ac18a2d7 Calcule l'erreur d'entrainement
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents:
diff changeset
143 return channel.COMPLETE
b762ac18a2d7 Calcule l'erreur d'entrainement
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents:
diff changeset
144
b762ac18a2d7 Calcule l'erreur d'entrainement
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents:
diff changeset
145
b762ac18a2d7 Calcule l'erreur d'entrainement
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents:
diff changeset
146
b762ac18a2d7 Calcule l'erreur d'entrainement
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents:
diff changeset
147 if __name__ == '__main__':
456
66b05c6077c7 Ajout d'option pour choisir l'ensemble de donnees (train/valid/test) ainsi que mettre NIST,P07 et PNIST pour tous les modeles testes
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents: 388
diff changeset
148
66b05c6077c7 Ajout d'option pour choisir l'ensemble de donnees (train/valid/test) ainsi que mettre NIST,P07 et PNIST pour tous les modeles testes
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents: 388
diff changeset
149 args = sys.argv[1:]
66b05c6077c7 Ajout d'option pour choisir l'ensemble de donnees (train/valid/test) ainsi que mettre NIST,P07 et PNIST pour tous les modeles testes
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents: 388
diff changeset
150
66b05c6077c7 Ajout d'option pour choisir l'ensemble de donnees (train/valid/test) ainsi que mettre NIST,P07 et PNIST pour tous les modeles testes
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents: 388
diff changeset
151 type = 0
66b05c6077c7 Ajout d'option pour choisir l'ensemble de donnees (train/valid/test) ainsi que mettre NIST,P07 et PNIST pour tous les modeles testes
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents: 388
diff changeset
152 if len(args) > 0 and args[0] == 'train':
66b05c6077c7 Ajout d'option pour choisir l'ensemble de donnees (train/valid/test) ainsi que mettre NIST,P07 et PNIST pour tous les modeles testes
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents: 388
diff changeset
153 type = 0
66b05c6077c7 Ajout d'option pour choisir l'ensemble de donnees (train/valid/test) ainsi que mettre NIST,P07 et PNIST pour tous les modeles testes
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents: 388
diff changeset
154 elif len(args) > 0 and args[0] == 'valid':
66b05c6077c7 Ajout d'option pour choisir l'ensemble de donnees (train/valid/test) ainsi que mettre NIST,P07 et PNIST pour tous les modeles testes
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents: 388
diff changeset
155 type = 1
66b05c6077c7 Ajout d'option pour choisir l'ensemble de donnees (train/valid/test) ainsi que mettre NIST,P07 et PNIST pour tous les modeles testes
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents: 388
diff changeset
156 elif len(args) > 0 and args[0] == 'test':
66b05c6077c7 Ajout d'option pour choisir l'ensemble de donnees (train/valid/test) ainsi que mettre NIST,P07 et PNIST pour tous les modeles testes
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents: 388
diff changeset
157 type = 2
66b05c6077c7 Ajout d'option pour choisir l'ensemble de donnees (train/valid/test) ainsi que mettre NIST,P07 et PNIST pour tous les modeles testes
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents: 388
diff changeset
158
66b05c6077c7 Ajout d'option pour choisir l'ensemble de donnees (train/valid/test) ainsi que mettre NIST,P07 et PNIST pour tous les modeles testes
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents: 388
diff changeset
159 chanmock = DD({'COMPLETE':0,'save':(lambda:None)})
66b05c6077c7 Ajout d'option pour choisir l'ensemble de donnees (train/valid/test) ainsi que mettre NIST,P07 et PNIST pour tous les modeles testes
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents: 388
diff changeset
160 jobman_entrypoint(DD(DEFAULT_HP_NIST), chanmock, type)
326
b762ac18a2d7 Calcule l'erreur d'entrainement
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents:
diff changeset
161
b762ac18a2d7 Calcule l'erreur d'entrainement
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents:
diff changeset
162