annotate transformations/pipeline.py @ 50:ff59670cd1f9

Ajouté l'enregistrement de la complexité, et un strict minimum pour reloader les fichiers d'images et de paramètres
author fsavard
date Thu, 04 Feb 2010 14:13:57 -0500
parents fabf910467b2
children c89defea1e65
rev   line source
41
fdb0e0870fb4 Beaucoup de modifications à pipeline.py pour généraliser et un début de visualisation, et créé un wrapper (run_pipeline.py) pour appeler avec GIMP.
fsavard
parents: 15
diff changeset
1 #!/usr/bin/python
fdb0e0870fb4 Beaucoup de modifications à pipeline.py pour généraliser et un début de visualisation, et créé un wrapper (run_pipeline.py) pour appeler avec GIMP.
fsavard
parents: 15
diff changeset
2 # coding: utf-8
fdb0e0870fb4 Beaucoup de modifications à pipeline.py pour généraliser et un début de visualisation, et créé un wrapper (run_pipeline.py) pour appeler avec GIMP.
fsavard
parents: 15
diff changeset
3
10
faacc76d21c2 Basic new pipeline script for the images tranforms
Arnaud Bergeron <abergeron@gmail.com>
parents:
diff changeset
4 from __future__ import with_statement
faacc76d21c2 Basic new pipeline script for the images tranforms
Arnaud Bergeron <abergeron@gmail.com>
parents:
diff changeset
5
48
fabf910467b2 Ajouté des hooks pour visualisation à différentes étapes. On peut dumper la grille d'images pour chaque image transformée ou visualiser live avec pylab.imshow() (pas encore essayé cette façon... j'ai un problème avec GIMP+python sur mon laptop).
fsavard
parents: 41
diff changeset
6 # This is intended to be run as a GIMP script
fabf910467b2 Ajouté des hooks pour visualisation à différentes étapes. On peut dumper la grille d'images pour chaque image transformée ou visualiser live avec pylab.imshow() (pas encore essayé cette façon... j'ai un problème avec GIMP+python sur mon laptop).
fsavard
parents: 41
diff changeset
7 from gimpfu import *
fabf910467b2 Ajouté des hooks pour visualisation à différentes étapes. On peut dumper la grille d'images pour chaque image transformée ou visualiser live avec pylab.imshow() (pas encore essayé cette façon... j'ai un problème avec GIMP+python sur mon laptop).
fsavard
parents: 41
diff changeset
8
41
fdb0e0870fb4 Beaucoup de modifications à pipeline.py pour généraliser et un début de visualisation, et créé un wrapper (run_pipeline.py) pour appeler avec GIMP.
fsavard
parents: 15
diff changeset
9 import sys, os, getopt
10
faacc76d21c2 Basic new pipeline script for the images tranforms
Arnaud Bergeron <abergeron@gmail.com>
parents:
diff changeset
10 import numpy
faacc76d21c2 Basic new pipeline script for the images tranforms
Arnaud Bergeron <abergeron@gmail.com>
parents:
diff changeset
11 import filetensor as ft
faacc76d21c2 Basic new pipeline script for the images tranforms
Arnaud Bergeron <abergeron@gmail.com>
parents:
diff changeset
12 import random
faacc76d21c2 Basic new pipeline script for the images tranforms
Arnaud Bergeron <abergeron@gmail.com>
parents:
diff changeset
13
48
fabf910467b2 Ajouté des hooks pour visualisation à différentes étapes. On peut dumper la grille d'images pour chaque image transformée ou visualiser live avec pylab.imshow() (pas encore essayé cette façon... j'ai un problème avec GIMP+python sur mon laptop).
fsavard
parents: 41
diff changeset
14 # To debug locally, also call with -s 1 (to stop after 1 batch ~= 100)
fabf910467b2 Ajouté des hooks pour visualisation à différentes étapes. On peut dumper la grille d'images pour chaque image transformée ou visualiser live avec pylab.imshow() (pas encore essayé cette façon... j'ai un problème avec GIMP+python sur mon laptop).
fsavard
parents: 41
diff changeset
15 # (otherwise we allocate all needed memory, might be loonnng and/or crash
fabf910467b2 Ajouté des hooks pour visualisation à différentes étapes. On peut dumper la grille d'images pour chaque image transformée ou visualiser live avec pylab.imshow() (pas encore essayé cette façon... j'ai un problème avec GIMP+python sur mon laptop).
fsavard
parents: 41
diff changeset
16 # if, lucky like me, you have an age-old laptop creaking from everywhere)
50
ff59670cd1f9 Ajouté l'enregistrement de la complexité, et un strict minimum pour reloader les fichiers d'images et de paramètres
fsavard
parents: 48
diff changeset
17 DEBUG = False
ff59670cd1f9 Ajouté l'enregistrement de la complexité, et un strict minimum pour reloader les fichiers d'images et de paramètres
fsavard
parents: 48
diff changeset
18 DEBUG_X = False
ff59670cd1f9 Ajouté l'enregistrement de la complexité, et un strict minimum pour reloader les fichiers d'images et de paramètres
fsavard
parents: 48
diff changeset
19 if DEBUG:
ff59670cd1f9 Ajouté l'enregistrement de la complexité, et un strict minimum pour reloader les fichiers d'images et de paramètres
fsavard
parents: 48
diff changeset
20 DEBUG_X = False # Debug under X (pylab.show())
10
faacc76d21c2 Basic new pipeline script for the images tranforms
Arnaud Bergeron <abergeron@gmail.com>
parents:
diff changeset
21
48
fabf910467b2 Ajouté des hooks pour visualisation à différentes étapes. On peut dumper la grille d'images pour chaque image transformée ou visualiser live avec pylab.imshow() (pas encore essayé cette façon... j'ai un problème avec GIMP+python sur mon laptop).
fsavard
parents: 41
diff changeset
22 DEBUG_IMAGES_PATH = None
fabf910467b2 Ajouté des hooks pour visualisation à différentes étapes. On peut dumper la grille d'images pour chaque image transformée ou visualiser live avec pylab.imshow() (pas encore essayé cette façon... j'ai un problème avec GIMP+python sur mon laptop).
fsavard
parents: 41
diff changeset
23 if DEBUG:
fabf910467b2 Ajouté des hooks pour visualisation à différentes étapes. On peut dumper la grille d'images pour chaque image transformée ou visualiser live avec pylab.imshow() (pas encore essayé cette façon... j'ai un problème avec GIMP+python sur mon laptop).
fsavard
parents: 41
diff changeset
24 # UNTESTED YET
fabf910467b2 Ajouté des hooks pour visualisation à différentes étapes. On peut dumper la grille d'images pour chaque image transformée ou visualiser live avec pylab.imshow() (pas encore essayé cette façon... j'ai un problème avec GIMP+python sur mon laptop).
fsavard
parents: 41
diff changeset
25 # To avoid loading NIST if you don't have it handy
fabf910467b2 Ajouté des hooks pour visualisation à différentes étapes. On peut dumper la grille d'images pour chaque image transformée ou visualiser live avec pylab.imshow() (pas encore essayé cette façon... j'ai un problème avec GIMP+python sur mon laptop).
fsavard
parents: 41
diff changeset
26 # (use with debug_images_iterator(), see main())
fabf910467b2 Ajouté des hooks pour visualisation à différentes étapes. On peut dumper la grille d'images pour chaque image transformée ou visualiser live avec pylab.imshow() (pas encore essayé cette façon... j'ai un problème avec GIMP+python sur mon laptop).
fsavard
parents: 41
diff changeset
27 # To use NIST, leave as = None
fabf910467b2 Ajouté des hooks pour visualisation à différentes étapes. On peut dumper la grille d'images pour chaque image transformée ou visualiser live avec pylab.imshow() (pas encore essayé cette façon... j'ai un problème avec GIMP+python sur mon laptop).
fsavard
parents: 41
diff changeset
28 DEBUG_IMAGES_PATH = None#'/home/francois/Desktop/debug_images'
fabf910467b2 Ajouté des hooks pour visualisation à différentes étapes. On peut dumper la grille d'images pour chaque image transformée ou visualiser live avec pylab.imshow() (pas encore essayé cette façon... j'ai un problème avec GIMP+python sur mon laptop).
fsavard
parents: 41
diff changeset
29
fabf910467b2 Ajouté des hooks pour visualisation à différentes étapes. On peut dumper la grille d'images pour chaque image transformée ou visualiser live avec pylab.imshow() (pas encore essayé cette façon... j'ai un problème avec GIMP+python sur mon laptop).
fsavard
parents: 41
diff changeset
30 # Directory where to dump images to visualize results
fabf910467b2 Ajouté des hooks pour visualisation à différentes étapes. On peut dumper la grille d'images pour chaque image transformée ou visualiser live avec pylab.imshow() (pas encore essayé cette façon... j'ai un problème avec GIMP+python sur mon laptop).
fsavard
parents: 41
diff changeset
31 # (create it, otherwise it'll crash)
fabf910467b2 Ajouté des hooks pour visualisation à différentes étapes. On peut dumper la grille d'images pour chaque image transformée ou visualiser live avec pylab.imshow() (pas encore essayé cette façon... j'ai un problème avec GIMP+python sur mon laptop).
fsavard
parents: 41
diff changeset
32 DEBUG_OUTPUT_DIR = 'debug_out'
fabf910467b2 Ajouté des hooks pour visualisation à différentes étapes. On peut dumper la grille d'images pour chaque image transformée ou visualiser live avec pylab.imshow() (pas encore essayé cette façon... j'ai un problème avec GIMP+python sur mon laptop).
fsavard
parents: 41
diff changeset
33
41
fdb0e0870fb4 Beaucoup de modifications à pipeline.py pour généraliser et un début de visualisation, et créé un wrapper (run_pipeline.py) pour appeler avec GIMP.
fsavard
parents: 15
diff changeset
34 BATCH_SIZE = 100
fdb0e0870fb4 Beaucoup de modifications à pipeline.py pour généraliser et un début de visualisation, et créé un wrapper (run_pipeline.py) pour appeler avec GIMP.
fsavard
parents: 15
diff changeset
35 DEFAULT_NIST_PATH = '/data/lisa/data/nist/by_class/all/all_train_data.ft'
fdb0e0870fb4 Beaucoup de modifications à pipeline.py pour généraliser et un début de visualisation, et créé un wrapper (run_pipeline.py) pour appeler avec GIMP.
fsavard
parents: 15
diff changeset
36 ARGS_FILE = os.environ['PIPELINE_ARGS_TMPFILE']
fdb0e0870fb4 Beaucoup de modifications à pipeline.py pour généraliser et un début de visualisation, et créé un wrapper (run_pipeline.py) pour appeler avec GIMP.
fsavard
parents: 15
diff changeset
37
48
fabf910467b2 Ajouté des hooks pour visualisation à différentes étapes. On peut dumper la grille d'images pour chaque image transformée ou visualiser live avec pylab.imshow() (pas encore essayé cette façon... j'ai un problème avec GIMP+python sur mon laptop).
fsavard
parents: 41
diff changeset
38 if DEBUG_X:
41
fdb0e0870fb4 Beaucoup de modifications à pipeline.py pour généraliser et un début de visualisation, et créé un wrapper (run_pipeline.py) pour appeler avec GIMP.
fsavard
parents: 15
diff changeset
39 import pylab
fdb0e0870fb4 Beaucoup de modifications à pipeline.py pour généraliser et un début de visualisation, et créé un wrapper (run_pipeline.py) pour appeler avec GIMP.
fsavard
parents: 15
diff changeset
40 pylab.ion()
10
faacc76d21c2 Basic new pipeline script for the images tranforms
Arnaud Bergeron <abergeron@gmail.com>
parents:
diff changeset
41
41
fdb0e0870fb4 Beaucoup de modifications à pipeline.py pour généraliser et un début de visualisation, et créé un wrapper (run_pipeline.py) pour appeler avec GIMP.
fsavard
parents: 15
diff changeset
42 #from add_background_image import AddBackground
fdb0e0870fb4 Beaucoup de modifications à pipeline.py pour généraliser et un début de visualisation, et créé un wrapper (run_pipeline.py) pour appeler avec GIMP.
fsavard
parents: 15
diff changeset
43 #from affine_transform import AffineTransformation
48
fabf910467b2 Ajouté des hooks pour visualisation à différentes étapes. On peut dumper la grille d'images pour chaque image transformée ou visualiser live avec pylab.imshow() (pas encore essayé cette façon... j'ai un problème avec GIMP+python sur mon laptop).
fsavard
parents: 41
diff changeset
44 from PoivreSel import PoivreSel
41
fdb0e0870fb4 Beaucoup de modifications à pipeline.py pour généraliser et un début de visualisation, et créé un wrapper (run_pipeline.py) pour appeler avec GIMP.
fsavard
parents: 15
diff changeset
45 from thick import Thick
fdb0e0870fb4 Beaucoup de modifications à pipeline.py pour généraliser et un début de visualisation, et créé un wrapper (run_pipeline.py) pour appeler avec GIMP.
fsavard
parents: 15
diff changeset
46 #from BruitGauss import BruitGauss
fdb0e0870fb4 Beaucoup de modifications à pipeline.py pour généraliser et un début de visualisation, et créé un wrapper (run_pipeline.py) pour appeler avec GIMP.
fsavard
parents: 15
diff changeset
47 #from gimp_script import GIMPTransformation
fdb0e0870fb4 Beaucoup de modifications à pipeline.py pour généraliser et un début de visualisation, et créé un wrapper (run_pipeline.py) pour appeler avec GIMP.
fsavard
parents: 15
diff changeset
48 #from Rature import Rature
48
fabf910467b2 Ajouté des hooks pour visualisation à différentes étapes. On peut dumper la grille d'images pour chaque image transformée ou visualiser live avec pylab.imshow() (pas encore essayé cette façon... j'ai un problème avec GIMP+python sur mon laptop).
fsavard
parents: 41
diff changeset
49 from contrast import Contrast
41
fdb0e0870fb4 Beaucoup de modifications à pipeline.py pour généraliser et un début de visualisation, et créé un wrapper (run_pipeline.py) pour appeler avec GIMP.
fsavard
parents: 15
diff changeset
50 from local_elastic_distortions import LocalElasticDistorter
fdb0e0870fb4 Beaucoup de modifications à pipeline.py pour généraliser et un début de visualisation, et créé un wrapper (run_pipeline.py) pour appeler avec GIMP.
fsavard
parents: 15
diff changeset
51 from slant import Slant
fdb0e0870fb4 Beaucoup de modifications à pipeline.py pour généraliser et un début de visualisation, et créé un wrapper (run_pipeline.py) pour appeler avec GIMP.
fsavard
parents: 15
diff changeset
52
48
fabf910467b2 Ajouté des hooks pour visualisation à différentes étapes. On peut dumper la grille d'images pour chaque image transformée ou visualiser live avec pylab.imshow() (pas encore essayé cette façon... j'ai un problème avec GIMP+python sur mon laptop).
fsavard
parents: 41
diff changeset
53 if DEBUG:
fabf910467b2 Ajouté des hooks pour visualisation à différentes étapes. On peut dumper la grille d'images pour chaque image transformée ou visualiser live avec pylab.imshow() (pas encore essayé cette façon... j'ai un problème avec GIMP+python sur mon laptop).
fsavard
parents: 41
diff changeset
54 from visualizer import Visualizer
fabf910467b2 Ajouté des hooks pour visualisation à différentes étapes. On peut dumper la grille d'images pour chaque image transformée ou visualiser live avec pylab.imshow() (pas encore essayé cette façon... j'ai un problème avec GIMP+python sur mon laptop).
fsavard
parents: 41
diff changeset
55 # Either put the visualizer as in the MODULES_INSTANCES list
fabf910467b2 Ajouté des hooks pour visualisation à différentes étapes. On peut dumper la grille d'images pour chaque image transformée ou visualiser live avec pylab.imshow() (pas encore essayé cette façon... j'ai un problème avec GIMP+python sur mon laptop).
fsavard
parents: 41
diff changeset
56 # after each module you want to visualize, or in the
fabf910467b2 Ajouté des hooks pour visualisation à différentes étapes. On peut dumper la grille d'images pour chaque image transformée ou visualiser live avec pylab.imshow() (pas encore essayé cette façon... j'ai un problème avec GIMP+python sur mon laptop).
fsavard
parents: 41
diff changeset
57 # AFTER_EACH_MODULE_HOOK list (but not both, it's redundant)
fabf910467b2 Ajouté des hooks pour visualisation à différentes étapes. On peut dumper la grille d'images pour chaque image transformée ou visualiser live avec pylab.imshow() (pas encore essayé cette façon... j'ai un problème avec GIMP+python sur mon laptop).
fsavard
parents: 41
diff changeset
58 VISUALIZER = Visualizer(to_dir=DEBUG_OUTPUT_DIR, on_screen=False)
fabf910467b2 Ajouté des hooks pour visualisation à différentes étapes. On peut dumper la grille d'images pour chaque image transformée ou visualiser live avec pylab.imshow() (pas encore essayé cette façon... j'ai un problème avec GIMP+python sur mon laptop).
fsavard
parents: 41
diff changeset
59
fabf910467b2 Ajouté des hooks pour visualisation à différentes étapes. On peut dumper la grille d'images pour chaque image transformée ou visualiser live avec pylab.imshow() (pas encore essayé cette façon... j'ai un problème avec GIMP+python sur mon laptop).
fsavard
parents: 41
diff changeset
60 MODULE_INSTANCES = [Thick(), LocalElasticDistorter(), PoivreSel(), Contrast()]
fabf910467b2 Ajouté des hooks pour visualisation à différentes étapes. On peut dumper la grille d'images pour chaque image transformée ou visualiser live avec pylab.imshow() (pas encore essayé cette façon... j'ai un problème avec GIMP+python sur mon laptop).
fsavard
parents: 41
diff changeset
61
fabf910467b2 Ajouté des hooks pour visualisation à différentes étapes. On peut dumper la grille d'images pour chaque image transformée ou visualiser live avec pylab.imshow() (pas encore essayé cette façon... j'ai un problème avec GIMP+python sur mon laptop).
fsavard
parents: 41
diff changeset
62 # These should have a "after_transform_callback(self, image)" method
fabf910467b2 Ajouté des hooks pour visualisation à différentes étapes. On peut dumper la grille d'images pour chaque image transformée ou visualiser live avec pylab.imshow() (pas encore essayé cette façon... j'ai un problème avec GIMP+python sur mon laptop).
fsavard
parents: 41
diff changeset
63 # (called after each call to transform_image in a module)
fabf910467b2 Ajouté des hooks pour visualisation à différentes étapes. On peut dumper la grille d'images pour chaque image transformée ou visualiser live avec pylab.imshow() (pas encore essayé cette façon... j'ai un problème avec GIMP+python sur mon laptop).
fsavard
parents: 41
diff changeset
64 AFTER_EACH_MODULE_HOOK = []
fabf910467b2 Ajouté des hooks pour visualisation à différentes étapes. On peut dumper la grille d'images pour chaque image transformée ou visualiser live avec pylab.imshow() (pas encore essayé cette façon... j'ai un problème avec GIMP+python sur mon laptop).
fsavard
parents: 41
diff changeset
65 if DEBUG:
fabf910467b2 Ajouté des hooks pour visualisation à différentes étapes. On peut dumper la grille d'images pour chaque image transformée ou visualiser live avec pylab.imshow() (pas encore essayé cette façon... j'ai un problème avec GIMP+python sur mon laptop).
fsavard
parents: 41
diff changeset
66 AFTER_EACH_MODULE_HOOK = [VISUALIZER]
fabf910467b2 Ajouté des hooks pour visualisation à différentes étapes. On peut dumper la grille d'images pour chaque image transformée ou visualiser live avec pylab.imshow() (pas encore essayé cette façon... j'ai un problème avec GIMP+python sur mon laptop).
fsavard
parents: 41
diff changeset
67
fabf910467b2 Ajouté des hooks pour visualisation à différentes étapes. On peut dumper la grille d'images pour chaque image transformée ou visualiser live avec pylab.imshow() (pas encore essayé cette façon... j'ai un problème avec GIMP+python sur mon laptop).
fsavard
parents: 41
diff changeset
68 # These should have a "end_transform_callback(self, final_image" method
fabf910467b2 Ajouté des hooks pour visualisation à différentes étapes. On peut dumper la grille d'images pour chaque image transformée ou visualiser live avec pylab.imshow() (pas encore essayé cette façon... j'ai un problème avec GIMP+python sur mon laptop).
fsavard
parents: 41
diff changeset
69 # (called after all modules have been called)
fabf910467b2 Ajouté des hooks pour visualisation à différentes étapes. On peut dumper la grille d'images pour chaque image transformée ou visualiser live avec pylab.imshow() (pas encore essayé cette façon... j'ai un problème avec GIMP+python sur mon laptop).
fsavard
parents: 41
diff changeset
70 END_TRANSFORM_HOOK = []
fabf910467b2 Ajouté des hooks pour visualisation à différentes étapes. On peut dumper la grille d'images pour chaque image transformée ou visualiser live avec pylab.imshow() (pas encore essayé cette façon... j'ai un problème avec GIMP+python sur mon laptop).
fsavard
parents: 41
diff changeset
71 if DEBUG:
fabf910467b2 Ajouté des hooks pour visualisation à différentes étapes. On peut dumper la grille d'images pour chaque image transformée ou visualiser live avec pylab.imshow() (pas encore essayé cette façon... j'ai un problème avec GIMP+python sur mon laptop).
fsavard
parents: 41
diff changeset
72 END_TRANSFORM_HOOK = [VISUALIZER]
10
faacc76d21c2 Basic new pipeline script for the images tranforms
Arnaud Bergeron <abergeron@gmail.com>
parents:
diff changeset
73
41
fdb0e0870fb4 Beaucoup de modifications à pipeline.py pour généraliser et un début de visualisation, et créé un wrapper (run_pipeline.py) pour appeler avec GIMP.
fsavard
parents: 15
diff changeset
74 class Pipeline():
fdb0e0870fb4 Beaucoup de modifications à pipeline.py pour généraliser et un début de visualisation, et créé un wrapper (run_pipeline.py) pour appeler avec GIMP.
fsavard
parents: 15
diff changeset
75 def __init__(self, modules, num_batches, batch_size, image_size=(32,32)):
fdb0e0870fb4 Beaucoup de modifications à pipeline.py pour généraliser et un début de visualisation, et créé un wrapper (run_pipeline.py) pour appeler avec GIMP.
fsavard
parents: 15
diff changeset
76 self.modules = modules
fdb0e0870fb4 Beaucoup de modifications à pipeline.py pour généraliser et un début de visualisation, et créé un wrapper (run_pipeline.py) pour appeler avec GIMP.
fsavard
parents: 15
diff changeset
77 self.num_batches = num_batches
fdb0e0870fb4 Beaucoup de modifications à pipeline.py pour généraliser et un début de visualisation, et créé un wrapper (run_pipeline.py) pour appeler avec GIMP.
fsavard
parents: 15
diff changeset
78 self.batch_size = batch_size
fdb0e0870fb4 Beaucoup de modifications à pipeline.py pour généraliser et un début de visualisation, et créé un wrapper (run_pipeline.py) pour appeler avec GIMP.
fsavard
parents: 15
diff changeset
79 self.num_params_stored = 0
fdb0e0870fb4 Beaucoup de modifications à pipeline.py pour généraliser et un début de visualisation, et créé un wrapper (run_pipeline.py) pour appeler avec GIMP.
fsavard
parents: 15
diff changeset
80 self.image_size = image_size
fdb0e0870fb4 Beaucoup de modifications à pipeline.py pour généraliser et un début de visualisation, et créé un wrapper (run_pipeline.py) pour appeler avec GIMP.
fsavard
parents: 15
diff changeset
81
fdb0e0870fb4 Beaucoup de modifications à pipeline.py pour généraliser et un début de visualisation, et créé un wrapper (run_pipeline.py) pour appeler avec GIMP.
fsavard
parents: 15
diff changeset
82 self.init_memory()
fdb0e0870fb4 Beaucoup de modifications à pipeline.py pour généraliser et un début de visualisation, et créé un wrapper (run_pipeline.py) pour appeler avec GIMP.
fsavard
parents: 15
diff changeset
83
fdb0e0870fb4 Beaucoup de modifications à pipeline.py pour généraliser et un début de visualisation, et créé un wrapper (run_pipeline.py) pour appeler avec GIMP.
fsavard
parents: 15
diff changeset
84 def init_num_params_stored(self):
fdb0e0870fb4 Beaucoup de modifications à pipeline.py pour généraliser et un début de visualisation, et créé un wrapper (run_pipeline.py) pour appeler avec GIMP.
fsavard
parents: 15
diff changeset
85 # just a dummy call to regenerate_parameters() to get the
fdb0e0870fb4 Beaucoup de modifications à pipeline.py pour généraliser et un début de visualisation, et créé un wrapper (run_pipeline.py) pour appeler avec GIMP.
fsavard
parents: 15
diff changeset
86 # real number of params (only those which are stored)
fdb0e0870fb4 Beaucoup de modifications à pipeline.py pour généraliser et un début de visualisation, et créé un wrapper (run_pipeline.py) pour appeler avec GIMP.
fsavard
parents: 15
diff changeset
87 self.num_params_stored = 0
fdb0e0870fb4 Beaucoup de modifications à pipeline.py pour généraliser et un début de visualisation, et créé un wrapper (run_pipeline.py) pour appeler avec GIMP.
fsavard
parents: 15
diff changeset
88 for m in self.modules:
fdb0e0870fb4 Beaucoup de modifications à pipeline.py pour généraliser et un début de visualisation, et créé un wrapper (run_pipeline.py) pour appeler avec GIMP.
fsavard
parents: 15
diff changeset
89 self.num_params_stored += len(m.regenerate_parameters(0.0))
fdb0e0870fb4 Beaucoup de modifications à pipeline.py pour généraliser et un début de visualisation, et créé un wrapper (run_pipeline.py) pour appeler avec GIMP.
fsavard
parents: 15
diff changeset
90
fdb0e0870fb4 Beaucoup de modifications à pipeline.py pour généraliser et un début de visualisation, et créé un wrapper (run_pipeline.py) pour appeler avec GIMP.
fsavard
parents: 15
diff changeset
91 def init_memory(self):
fdb0e0870fb4 Beaucoup de modifications à pipeline.py pour généraliser et un début de visualisation, et créé un wrapper (run_pipeline.py) pour appeler avec GIMP.
fsavard
parents: 15
diff changeset
92 self.init_num_params_stored()
10
faacc76d21c2 Basic new pipeline script for the images tranforms
Arnaud Bergeron <abergeron@gmail.com>
parents:
diff changeset
93
50
ff59670cd1f9 Ajouté l'enregistrement de la complexité, et un strict minimum pour reloader les fichiers d'images et de paramètres
fsavard
parents: 48
diff changeset
94 total = self.num_batches * self.batch_size
41
fdb0e0870fb4 Beaucoup de modifications à pipeline.py pour généraliser et un début de visualisation, et créé un wrapper (run_pipeline.py) pour appeler avec GIMP.
fsavard
parents: 15
diff changeset
95 num_px = self.image_size[0] * self.image_size[1]
fdb0e0870fb4 Beaucoup de modifications à pipeline.py pour généraliser et un début de visualisation, et créé un wrapper (run_pipeline.py) pour appeler avec GIMP.
fsavard
parents: 15
diff changeset
96
fdb0e0870fb4 Beaucoup de modifications à pipeline.py pour généraliser et un début de visualisation, et créé un wrapper (run_pipeline.py) pour appeler avec GIMP.
fsavard
parents: 15
diff changeset
97 self.res_data = numpy.empty((total, num_px))
50
ff59670cd1f9 Ajouté l'enregistrement de la complexité, et un strict minimum pour reloader les fichiers d'images et de paramètres
fsavard
parents: 48
diff changeset
98 # +1 to store complexity
ff59670cd1f9 Ajouté l'enregistrement de la complexité, et un strict minimum pour reloader les fichiers d'images et de paramètres
fsavard
parents: 48
diff changeset
99 self.params = numpy.empty((total, self.num_params_stored+1))
41
fdb0e0870fb4 Beaucoup de modifications à pipeline.py pour généraliser et un début de visualisation, et créé un wrapper (run_pipeline.py) pour appeler avec GIMP.
fsavard
parents: 15
diff changeset
100
fdb0e0870fb4 Beaucoup de modifications à pipeline.py pour généraliser et un début de visualisation, et créé un wrapper (run_pipeline.py) pour appeler avec GIMP.
fsavard
parents: 15
diff changeset
101 def run(self, batch_iterator, complexity_iterator):
fdb0e0870fb4 Beaucoup de modifications à pipeline.py pour généraliser et un début de visualisation, et créé un wrapper (run_pipeline.py) pour appeler avec GIMP.
fsavard
parents: 15
diff changeset
102 img_size = self.image_size
fdb0e0870fb4 Beaucoup de modifications à pipeline.py pour généraliser et un début de visualisation, et créé un wrapper (run_pipeline.py) pour appeler avec GIMP.
fsavard
parents: 15
diff changeset
103
48
fabf910467b2 Ajouté des hooks pour visualisation à différentes étapes. On peut dumper la grille d'images pour chaque image transformée ou visualiser live avec pylab.imshow() (pas encore essayé cette façon... j'ai un problème avec GIMP+python sur mon laptop).
fsavard
parents: 41
diff changeset
104 should_hook_after_each = len(AFTER_EACH_MODULE_HOOK) != 0
fabf910467b2 Ajouté des hooks pour visualisation à différentes étapes. On peut dumper la grille d'images pour chaque image transformée ou visualiser live avec pylab.imshow() (pas encore essayé cette façon... j'ai un problème avec GIMP+python sur mon laptop).
fsavard
parents: 41
diff changeset
105 should_hook_at_the_end = len(END_TRANSFORM_HOOK) != 0
fabf910467b2 Ajouté des hooks pour visualisation à différentes étapes. On peut dumper la grille d'images pour chaque image transformée ou visualiser live avec pylab.imshow() (pas encore essayé cette façon... j'ai un problème avec GIMP+python sur mon laptop).
fsavard
parents: 41
diff changeset
106
41
fdb0e0870fb4 Beaucoup de modifications à pipeline.py pour généraliser et un début de visualisation, et créé un wrapper (run_pipeline.py) pour appeler avec GIMP.
fsavard
parents: 15
diff changeset
107 for batch_no, batch in enumerate(batch_iterator):
fdb0e0870fb4 Beaucoup de modifications à pipeline.py pour généraliser et un début de visualisation, et créé un wrapper (run_pipeline.py) pour appeler avec GIMP.
fsavard
parents: 15
diff changeset
108 complexity = complexity_iterator.next()
48
fabf910467b2 Ajouté des hooks pour visualisation à différentes étapes. On peut dumper la grille d'images pour chaque image transformée ou visualiser live avec pylab.imshow() (pas encore essayé cette façon... j'ai un problème avec GIMP+python sur mon laptop).
fsavard
parents: 41
diff changeset
109 if DEBUG:
fabf910467b2 Ajouté des hooks pour visualisation à différentes étapes. On peut dumper la grille d'images pour chaque image transformée ou visualiser live avec pylab.imshow() (pas encore essayé cette façon... j'ai un problème avec GIMP+python sur mon laptop).
fsavard
parents: 41
diff changeset
110 print "Complexity:", complexity
41
fdb0e0870fb4 Beaucoup de modifications à pipeline.py pour généraliser et un début de visualisation, et créé un wrapper (run_pipeline.py) pour appeler avec GIMP.
fsavard
parents: 15
diff changeset
111
fdb0e0870fb4 Beaucoup de modifications à pipeline.py pour généraliser et un début de visualisation, et créé un wrapper (run_pipeline.py) pour appeler avec GIMP.
fsavard
parents: 15
diff changeset
112 assert len(batch) == self.batch_size
fdb0e0870fb4 Beaucoup de modifications à pipeline.py pour généraliser et un début de visualisation, et créé un wrapper (run_pipeline.py) pour appeler avec GIMP.
fsavard
parents: 15
diff changeset
113
fdb0e0870fb4 Beaucoup de modifications à pipeline.py pour généraliser et un début de visualisation, et créé un wrapper (run_pipeline.py) pour appeler avec GIMP.
fsavard
parents: 15
diff changeset
114 for img_no, img in enumerate(batch):
fdb0e0870fb4 Beaucoup de modifications à pipeline.py pour généraliser et un début de visualisation, et créé un wrapper (run_pipeline.py) pour appeler avec GIMP.
fsavard
parents: 15
diff changeset
115 sys.stdout.flush()
fdb0e0870fb4 Beaucoup de modifications à pipeline.py pour généraliser et un début de visualisation, et créé un wrapper (run_pipeline.py) pour appeler avec GIMP.
fsavard
parents: 15
diff changeset
116 global_idx = batch_no*self.batch_size + img_no
fdb0e0870fb4 Beaucoup de modifications à pipeline.py pour généraliser et un début de visualisation, et créé un wrapper (run_pipeline.py) pour appeler avec GIMP.
fsavard
parents: 15
diff changeset
117
fdb0e0870fb4 Beaucoup de modifications à pipeline.py pour généraliser et un début de visualisation, et créé un wrapper (run_pipeline.py) pour appeler avec GIMP.
fsavard
parents: 15
diff changeset
118 img = img.reshape(img_size)
15
f6b6c74bb82f Fix the datatypes.
Arnaud Bergeron <abergeron@gmail.com>
parents: 10
diff changeset
119
50
ff59670cd1f9 Ajouté l'enregistrement de la complexité, et un strict minimum pour reloader les fichiers d'images et de paramètres
fsavard
parents: 48
diff changeset
120 param_idx = 1
ff59670cd1f9 Ajouté l'enregistrement de la complexité, et un strict minimum pour reloader les fichiers d'images et de paramètres
fsavard
parents: 48
diff changeset
121 # store complexity along with other params
ff59670cd1f9 Ajouté l'enregistrement de la complexité, et un strict minimum pour reloader les fichiers d'images et de paramètres
fsavard
parents: 48
diff changeset
122 self.params[global_idx, 0] = complexity
41
fdb0e0870fb4 Beaucoup de modifications à pipeline.py pour généraliser et un début de visualisation, et créé un wrapper (run_pipeline.py) pour appeler avec GIMP.
fsavard
parents: 15
diff changeset
123 for mod in self.modules:
fdb0e0870fb4 Beaucoup de modifications à pipeline.py pour généraliser et un début de visualisation, et créé un wrapper (run_pipeline.py) pour appeler avec GIMP.
fsavard
parents: 15
diff changeset
124 # This used to be done _per batch_,
fdb0e0870fb4 Beaucoup de modifications à pipeline.py pour généraliser et un début de visualisation, et créé un wrapper (run_pipeline.py) pour appeler avec GIMP.
fsavard
parents: 15
diff changeset
125 # ie. out of the "for img" loop
fdb0e0870fb4 Beaucoup de modifications à pipeline.py pour généraliser et un début de visualisation, et créé un wrapper (run_pipeline.py) pour appeler avec GIMP.
fsavard
parents: 15
diff changeset
126 p = mod.regenerate_parameters(complexity)
fdb0e0870fb4 Beaucoup de modifications à pipeline.py pour généraliser et un début de visualisation, et créé un wrapper (run_pipeline.py) pour appeler avec GIMP.
fsavard
parents: 15
diff changeset
127 self.params[global_idx, param_idx:param_idx+len(p)] = p
fdb0e0870fb4 Beaucoup de modifications à pipeline.py pour généraliser et un début de visualisation, et créé un wrapper (run_pipeline.py) pour appeler avec GIMP.
fsavard
parents: 15
diff changeset
128 param_idx += len(p)
10
faacc76d21c2 Basic new pipeline script for the images tranforms
Arnaud Bergeron <abergeron@gmail.com>
parents:
diff changeset
129
41
fdb0e0870fb4 Beaucoup de modifications à pipeline.py pour généraliser et un début de visualisation, et créé un wrapper (run_pipeline.py) pour appeler avec GIMP.
fsavard
parents: 15
diff changeset
130 img = mod.transform_image(img)
fdb0e0870fb4 Beaucoup de modifications à pipeline.py pour généraliser et un début de visualisation, et créé un wrapper (run_pipeline.py) pour appeler avec GIMP.
fsavard
parents: 15
diff changeset
131
48
fabf910467b2 Ajouté des hooks pour visualisation à différentes étapes. On peut dumper la grille d'images pour chaque image transformée ou visualiser live avec pylab.imshow() (pas encore essayé cette façon... j'ai un problème avec GIMP+python sur mon laptop).
fsavard
parents: 41
diff changeset
132 if should_hook_after_each:
fabf910467b2 Ajouté des hooks pour visualisation à différentes étapes. On peut dumper la grille d'images pour chaque image transformée ou visualiser live avec pylab.imshow() (pas encore essayé cette façon... j'ai un problème avec GIMP+python sur mon laptop).
fsavard
parents: 41
diff changeset
133 for hook in AFTER_EACH_MODULE_HOOK:
fabf910467b2 Ajouté des hooks pour visualisation à différentes étapes. On peut dumper la grille d'images pour chaque image transformée ou visualiser live avec pylab.imshow() (pas encore essayé cette façon... j'ai un problème avec GIMP+python sur mon laptop).
fsavard
parents: 41
diff changeset
134 hook.after_transform_callback(img)
fabf910467b2 Ajouté des hooks pour visualisation à différentes étapes. On peut dumper la grille d'images pour chaque image transformée ou visualiser live avec pylab.imshow() (pas encore essayé cette façon... j'ai un problème avec GIMP+python sur mon laptop).
fsavard
parents: 41
diff changeset
135
41
fdb0e0870fb4 Beaucoup de modifications à pipeline.py pour généraliser et un début de visualisation, et créé un wrapper (run_pipeline.py) pour appeler avec GIMP.
fsavard
parents: 15
diff changeset
136 self.res_data[global_idx] = \
fdb0e0870fb4 Beaucoup de modifications à pipeline.py pour généraliser et un début de visualisation, et créé un wrapper (run_pipeline.py) pour appeler avec GIMP.
fsavard
parents: 15
diff changeset
137 img.reshape((img_size[0] * img_size[1],))*255
10
faacc76d21c2 Basic new pipeline script for the images tranforms
Arnaud Bergeron <abergeron@gmail.com>
parents:
diff changeset
138
48
fabf910467b2 Ajouté des hooks pour visualisation à différentes étapes. On peut dumper la grille d'images pour chaque image transformée ou visualiser live avec pylab.imshow() (pas encore essayé cette façon... j'ai un problème avec GIMP+python sur mon laptop).
fsavard
parents: 41
diff changeset
139
fabf910467b2 Ajouté des hooks pour visualisation à différentes étapes. On peut dumper la grille d'images pour chaque image transformée ou visualiser live avec pylab.imshow() (pas encore essayé cette façon... j'ai un problème avec GIMP+python sur mon laptop).
fsavard
parents: 41
diff changeset
140 if should_hook_at_the_end:
fabf910467b2 Ajouté des hooks pour visualisation à différentes étapes. On peut dumper la grille d'images pour chaque image transformée ou visualiser live avec pylab.imshow() (pas encore essayé cette façon... j'ai un problème avec GIMP+python sur mon laptop).
fsavard
parents: 41
diff changeset
141 for hook in END_TRANSFORM_HOOK:
fabf910467b2 Ajouté des hooks pour visualisation à différentes étapes. On peut dumper la grille d'images pour chaque image transformée ou visualiser live avec pylab.imshow() (pas encore essayé cette façon... j'ai un problème avec GIMP+python sur mon laptop).
fsavard
parents: 41
diff changeset
142 hook.end_transform_callback(img)
41
fdb0e0870fb4 Beaucoup de modifications à pipeline.py pour généraliser et un début de visualisation, et créé un wrapper (run_pipeline.py) pour appeler avec GIMP.
fsavard
parents: 15
diff changeset
143
fdb0e0870fb4 Beaucoup de modifications à pipeline.py pour généraliser et un début de visualisation, et créé un wrapper (run_pipeline.py) pour appeler avec GIMP.
fsavard
parents: 15
diff changeset
144 def write_output(self, output_file_path, params_output_file_path):
fdb0e0870fb4 Beaucoup de modifications à pipeline.py pour généraliser et un début de visualisation, et créé un wrapper (run_pipeline.py) pour appeler avec GIMP.
fsavard
parents: 15
diff changeset
145 with open(output_file_path, 'wb') as f:
fdb0e0870fb4 Beaucoup de modifications à pipeline.py pour généraliser et un début de visualisation, et créé un wrapper (run_pipeline.py) pour appeler avec GIMP.
fsavard
parents: 15
diff changeset
146 ft.write(f, self.res_data)
10
faacc76d21c2 Basic new pipeline script for the images tranforms
Arnaud Bergeron <abergeron@gmail.com>
parents:
diff changeset
147
41
fdb0e0870fb4 Beaucoup de modifications à pipeline.py pour généraliser et un début de visualisation, et créé un wrapper (run_pipeline.py) pour appeler avec GIMP.
fsavard
parents: 15
diff changeset
148 numpy.save(params_output_file_path, self.params)
fdb0e0870fb4 Beaucoup de modifications à pipeline.py pour généraliser et un début de visualisation, et créé un wrapper (run_pipeline.py) pour appeler avec GIMP.
fsavard
parents: 15
diff changeset
149
fdb0e0870fb4 Beaucoup de modifications à pipeline.py pour généraliser et un début de visualisation, et créé un wrapper (run_pipeline.py) pour appeler avec GIMP.
fsavard
parents: 15
diff changeset
150
fdb0e0870fb4 Beaucoup de modifications à pipeline.py pour généraliser et un début de visualisation, et créé un wrapper (run_pipeline.py) pour appeler avec GIMP.
fsavard
parents: 15
diff changeset
151 ##############################################################################
fdb0e0870fb4 Beaucoup de modifications à pipeline.py pour généraliser et un début de visualisation, et créé un wrapper (run_pipeline.py) pour appeler avec GIMP.
fsavard
parents: 15
diff changeset
152 # COMPLEXITY ITERATORS
fdb0e0870fb4 Beaucoup de modifications à pipeline.py pour généraliser et un début de visualisation, et créé un wrapper (run_pipeline.py) pour appeler avec GIMP.
fsavard
parents: 15
diff changeset
153 # They're called once every batch, to get the complexity to use for that batch
fdb0e0870fb4 Beaucoup de modifications à pipeline.py pour généraliser et un début de visualisation, et créé un wrapper (run_pipeline.py) pour appeler avec GIMP.
fsavard
parents: 15
diff changeset
154 # they must be infinite (should never throw StopIteration when calling next())
10
faacc76d21c2 Basic new pipeline script for the images tranforms
Arnaud Bergeron <abergeron@gmail.com>
parents:
diff changeset
155
41
fdb0e0870fb4 Beaucoup de modifications à pipeline.py pour généraliser et un début de visualisation, et créé un wrapper (run_pipeline.py) pour appeler avec GIMP.
fsavard
parents: 15
diff changeset
156 # probability of generating 0 complexity, otherwise
fdb0e0870fb4 Beaucoup de modifications à pipeline.py pour généraliser et un début de visualisation, et créé un wrapper (run_pipeline.py) pour appeler avec GIMP.
fsavard
parents: 15
diff changeset
157 # uniform over 0.0-max_complexity
fdb0e0870fb4 Beaucoup de modifications à pipeline.py pour généraliser et un début de visualisation, et créé un wrapper (run_pipeline.py) pour appeler avec GIMP.
fsavard
parents: 15
diff changeset
158 def range_complexity_iterator(probability_zero, max_complexity):
fdb0e0870fb4 Beaucoup de modifications à pipeline.py pour généraliser et un début de visualisation, et créé un wrapper (run_pipeline.py) pour appeler avec GIMP.
fsavard
parents: 15
diff changeset
159 assert max_complexity <= 1.0
fdb0e0870fb4 Beaucoup de modifications à pipeline.py pour généraliser et un début de visualisation, et créé un wrapper (run_pipeline.py) pour appeler avec GIMP.
fsavard
parents: 15
diff changeset
160 n = numpy.random.uniform(0.0, 1.0)
fdb0e0870fb4 Beaucoup de modifications à pipeline.py pour généraliser et un début de visualisation, et créé un wrapper (run_pipeline.py) pour appeler avec GIMP.
fsavard
parents: 15
diff changeset
161 while True:
fdb0e0870fb4 Beaucoup de modifications à pipeline.py pour généraliser et un début de visualisation, et créé un wrapper (run_pipeline.py) pour appeler avec GIMP.
fsavard
parents: 15
diff changeset
162 if n < probability_zero:
fdb0e0870fb4 Beaucoup de modifications à pipeline.py pour généraliser et un début de visualisation, et créé un wrapper (run_pipeline.py) pour appeler avec GIMP.
fsavard
parents: 15
diff changeset
163 yield 0.0
fdb0e0870fb4 Beaucoup de modifications à pipeline.py pour généraliser et un début de visualisation, et créé un wrapper (run_pipeline.py) pour appeler avec GIMP.
fsavard
parents: 15
diff changeset
164 else:
fdb0e0870fb4 Beaucoup de modifications à pipeline.py pour généraliser et un début de visualisation, et créé un wrapper (run_pipeline.py) pour appeler avec GIMP.
fsavard
parents: 15
diff changeset
165 yield numpy.random.uniform(0.0, max_complexity)
fdb0e0870fb4 Beaucoup de modifications à pipeline.py pour généraliser et un début de visualisation, et créé un wrapper (run_pipeline.py) pour appeler avec GIMP.
fsavard
parents: 15
diff changeset
166
fdb0e0870fb4 Beaucoup de modifications à pipeline.py pour généraliser et un début de visualisation, et créé un wrapper (run_pipeline.py) pour appeler avec GIMP.
fsavard
parents: 15
diff changeset
167 ##############################################################################
fdb0e0870fb4 Beaucoup de modifications à pipeline.py pour généraliser et un début de visualisation, et créé un wrapper (run_pipeline.py) pour appeler avec GIMP.
fsavard
parents: 15
diff changeset
168 # DATA ITERATORS
fdb0e0870fb4 Beaucoup de modifications à pipeline.py pour généraliser et un début de visualisation, et créé un wrapper (run_pipeline.py) pour appeler avec GIMP.
fsavard
parents: 15
diff changeset
169 # They can be used to interleave different data sources etc.
fdb0e0870fb4 Beaucoup de modifications à pipeline.py pour généraliser et un début de visualisation, et créé un wrapper (run_pipeline.py) pour appeler avec GIMP.
fsavard
parents: 15
diff changeset
170
48
fabf910467b2 Ajouté des hooks pour visualisation à différentes étapes. On peut dumper la grille d'images pour chaque image transformée ou visualiser live avec pylab.imshow() (pas encore essayé cette façon... j'ai un problème avec GIMP+python sur mon laptop).
fsavard
parents: 41
diff changeset
171 '''
fabf910467b2 Ajouté des hooks pour visualisation à différentes étapes. On peut dumper la grille d'images pour chaque image transformée ou visualiser live avec pylab.imshow() (pas encore essayé cette façon... j'ai un problème avec GIMP+python sur mon laptop).
fsavard
parents: 41
diff changeset
172 # Following code (DebugImages and iterator) is untested
fabf910467b2 Ajouté des hooks pour visualisation à différentes étapes. On peut dumper la grille d'images pour chaque image transformée ou visualiser live avec pylab.imshow() (pas encore essayé cette façon... j'ai un problème avec GIMP+python sur mon laptop).
fsavard
parents: 41
diff changeset
173
fabf910467b2 Ajouté des hooks pour visualisation à différentes étapes. On peut dumper la grille d'images pour chaque image transformée ou visualiser live avec pylab.imshow() (pas encore essayé cette façon... j'ai un problème avec GIMP+python sur mon laptop).
fsavard
parents: 41
diff changeset
174 def load_image(filepath):
fabf910467b2 Ajouté des hooks pour visualisation à différentes étapes. On peut dumper la grille d'images pour chaque image transformée ou visualiser live avec pylab.imshow() (pas encore essayé cette façon... j'ai un problème avec GIMP+python sur mon laptop).
fsavard
parents: 41
diff changeset
175 _RGB_TO_GRAYSCALE = [0.3, 0.59, 0.11, 0.0]
fabf910467b2 Ajouté des hooks pour visualisation à différentes étapes. On peut dumper la grille d'images pour chaque image transformée ou visualiser live avec pylab.imshow() (pas encore essayé cette façon... j'ai un problème avec GIMP+python sur mon laptop).
fsavard
parents: 41
diff changeset
176 img = Image.open(filepath)
fabf910467b2 Ajouté des hooks pour visualisation à différentes étapes. On peut dumper la grille d'images pour chaque image transformée ou visualiser live avec pylab.imshow() (pas encore essayé cette façon... j'ai un problème avec GIMP+python sur mon laptop).
fsavard
parents: 41
diff changeset
177 img = numpy.asarray(img)
fabf910467b2 Ajouté des hooks pour visualisation à différentes étapes. On peut dumper la grille d'images pour chaque image transformée ou visualiser live avec pylab.imshow() (pas encore essayé cette façon... j'ai un problème avec GIMP+python sur mon laptop).
fsavard
parents: 41
diff changeset
178 if len(img.shape) > 2:
fabf910467b2 Ajouté des hooks pour visualisation à différentes étapes. On peut dumper la grille d'images pour chaque image transformée ou visualiser live avec pylab.imshow() (pas encore essayé cette façon... j'ai un problème avec GIMP+python sur mon laptop).
fsavard
parents: 41
diff changeset
179 img = (img * _RGB_TO_GRAYSCALE).sum(axis=2)
fabf910467b2 Ajouté des hooks pour visualisation à différentes étapes. On peut dumper la grille d'images pour chaque image transformée ou visualiser live avec pylab.imshow() (pas encore essayé cette façon... j'ai un problème avec GIMP+python sur mon laptop).
fsavard
parents: 41
diff changeset
180 return (img / 255.0).astype('float')
fabf910467b2 Ajouté des hooks pour visualisation à différentes étapes. On peut dumper la grille d'images pour chaque image transformée ou visualiser live avec pylab.imshow() (pas encore essayé cette façon... j'ai un problème avec GIMP+python sur mon laptop).
fsavard
parents: 41
diff changeset
181
fabf910467b2 Ajouté des hooks pour visualisation à différentes étapes. On peut dumper la grille d'images pour chaque image transformée ou visualiser live avec pylab.imshow() (pas encore essayé cette façon... j'ai un problème avec GIMP+python sur mon laptop).
fsavard
parents: 41
diff changeset
182 class DebugImages():
fabf910467b2 Ajouté des hooks pour visualisation à différentes étapes. On peut dumper la grille d'images pour chaque image transformée ou visualiser live avec pylab.imshow() (pas encore essayé cette façon... j'ai un problème avec GIMP+python sur mon laptop).
fsavard
parents: 41
diff changeset
183 def __init__(self, images_dir_path):
fabf910467b2 Ajouté des hooks pour visualisation à différentes étapes. On peut dumper la grille d'images pour chaque image transformée ou visualiser live avec pylab.imshow() (pas encore essayé cette façon... j'ai un problème avec GIMP+python sur mon laptop).
fsavard
parents: 41
diff changeset
184 import glob, os.path
fabf910467b2 Ajouté des hooks pour visualisation à différentes étapes. On peut dumper la grille d'images pour chaque image transformée ou visualiser live avec pylab.imshow() (pas encore essayé cette façon... j'ai un problème avec GIMP+python sur mon laptop).
fsavard
parents: 41
diff changeset
185 self.filelist = glob.glob(os.path.join(images_dir_path, "*.png"))
fabf910467b2 Ajouté des hooks pour visualisation à différentes étapes. On peut dumper la grille d'images pour chaque image transformée ou visualiser live avec pylab.imshow() (pas encore essayé cette façon... j'ai un problème avec GIMP+python sur mon laptop).
fsavard
parents: 41
diff changeset
186
fabf910467b2 Ajouté des hooks pour visualisation à différentes étapes. On peut dumper la grille d'images pour chaque image transformée ou visualiser live avec pylab.imshow() (pas encore essayé cette façon... j'ai un problème avec GIMP+python sur mon laptop).
fsavard
parents: 41
diff changeset
187 def debug_images_iterator(debug_images):
fabf910467b2 Ajouté des hooks pour visualisation à différentes étapes. On peut dumper la grille d'images pour chaque image transformée ou visualiser live avec pylab.imshow() (pas encore essayé cette façon... j'ai un problème avec GIMP+python sur mon laptop).
fsavard
parents: 41
diff changeset
188 for path in debug_images.filelist:
fabf910467b2 Ajouté des hooks pour visualisation à différentes étapes. On peut dumper la grille d'images pour chaque image transformée ou visualiser live avec pylab.imshow() (pas encore essayé cette façon... j'ai un problème avec GIMP+python sur mon laptop).
fsavard
parents: 41
diff changeset
189 yield load_image(path)
fabf910467b2 Ajouté des hooks pour visualisation à différentes étapes. On peut dumper la grille d'images pour chaque image transformée ou visualiser live avec pylab.imshow() (pas encore essayé cette façon... j'ai un problème avec GIMP+python sur mon laptop).
fsavard
parents: 41
diff changeset
190 '''
fabf910467b2 Ajouté des hooks pour visualisation à différentes étapes. On peut dumper la grille d'images pour chaque image transformée ou visualiser live avec pylab.imshow() (pas encore essayé cette façon... j'ai un problème avec GIMP+python sur mon laptop).
fsavard
parents: 41
diff changeset
191
41
fdb0e0870fb4 Beaucoup de modifications à pipeline.py pour généraliser et un début de visualisation, et créé un wrapper (run_pipeline.py) pour appeler avec GIMP.
fsavard
parents: 15
diff changeset
192 class NistData():
fdb0e0870fb4 Beaucoup de modifications à pipeline.py pour généraliser et un début de visualisation, et créé un wrapper (run_pipeline.py) pour appeler avec GIMP.
fsavard
parents: 15
diff changeset
193 def __init__(self, ):
fdb0e0870fb4 Beaucoup de modifications à pipeline.py pour généraliser et un début de visualisation, et créé un wrapper (run_pipeline.py) pour appeler avec GIMP.
fsavard
parents: 15
diff changeset
194 nist_path = DEFAULT_NIST_PATH
fdb0e0870fb4 Beaucoup de modifications à pipeline.py pour généraliser et un début de visualisation, et créé un wrapper (run_pipeline.py) pour appeler avec GIMP.
fsavard
parents: 15
diff changeset
195 self.train_data = open(nist_path, 'rb')
fdb0e0870fb4 Beaucoup de modifications à pipeline.py pour généraliser et un début de visualisation, et créé un wrapper (run_pipeline.py) pour appeler avec GIMP.
fsavard
parents: 15
diff changeset
196 self.dim = tuple(ft._read_header(self.train_data)[3])
10
faacc76d21c2 Basic new pipeline script for the images tranforms
Arnaud Bergeron <abergeron@gmail.com>
parents:
diff changeset
197
41
fdb0e0870fb4 Beaucoup de modifications à pipeline.py pour généraliser et un début de visualisation, et créé un wrapper (run_pipeline.py) pour appeler avec GIMP.
fsavard
parents: 15
diff changeset
198 def just_nist_iterator(nist, batch_size, stop_after=None):
fdb0e0870fb4 Beaucoup de modifications à pipeline.py pour généraliser et un début de visualisation, et créé un wrapper (run_pipeline.py) pour appeler avec GIMP.
fsavard
parents: 15
diff changeset
199 for i in xrange(0, nist.dim[0], batch_size):
50
ff59670cd1f9 Ajouté l'enregistrement de la complexité, et un strict minimum pour reloader les fichiers d'images et de paramètres
fsavard
parents: 48
diff changeset
200 if not stop_after is None and i >= stop_after:
ff59670cd1f9 Ajouté l'enregistrement de la complexité, et un strict minimum pour reloader les fichiers d'images et de paramètres
fsavard
parents: 48
diff changeset
201 break
ff59670cd1f9 Ajouté l'enregistrement de la complexité, et un strict minimum pour reloader les fichiers d'images et de paramètres
fsavard
parents: 48
diff changeset
202
41
fdb0e0870fb4 Beaucoup de modifications à pipeline.py pour généraliser et un début de visualisation, et créé un wrapper (run_pipeline.py) pour appeler avec GIMP.
fsavard
parents: 15
diff changeset
203 nist.train_data.seek(0)
fdb0e0870fb4 Beaucoup de modifications à pipeline.py pour généraliser et un début de visualisation, et créé un wrapper (run_pipeline.py) pour appeler avec GIMP.
fsavard
parents: 15
diff changeset
204 yield ft.read(nist.train_data, slice(i, i+batch_size)).astype(numpy.float32)/255
fdb0e0870fb4 Beaucoup de modifications à pipeline.py pour généraliser et un début de visualisation, et créé un wrapper (run_pipeline.py) pour appeler avec GIMP.
fsavard
parents: 15
diff changeset
205
50
ff59670cd1f9 Ajouté l'enregistrement de la complexité, et un strict minimum pour reloader les fichiers d'images et de paramètres
fsavard
parents: 48
diff changeset
206
ff59670cd1f9 Ajouté l'enregistrement de la complexité, et un strict minimum pour reloader les fichiers d'images et de paramètres
fsavard
parents: 48
diff changeset
207
ff59670cd1f9 Ajouté l'enregistrement de la complexité, et un strict minimum pour reloader les fichiers d'images et de paramètres
fsavard
parents: 48
diff changeset
208 # Mostly for debugging, for the moment, just to see if we can
ff59670cd1f9 Ajouté l'enregistrement de la complexité, et un strict minimum pour reloader les fichiers d'images et de paramètres
fsavard
parents: 48
diff changeset
209 # reload the images and parameters.
ff59670cd1f9 Ajouté l'enregistrement de la complexité, et un strict minimum pour reloader les fichiers d'images et de paramètres
fsavard
parents: 48
diff changeset
210 def reload(output_file_path, params_output_file_path):
ff59670cd1f9 Ajouté l'enregistrement de la complexité, et un strict minimum pour reloader les fichiers d'images et de paramètres
fsavard
parents: 48
diff changeset
211 images_ft = open(output_file_path, 'rb')
ff59670cd1f9 Ajouté l'enregistrement de la complexité, et un strict minimum pour reloader les fichiers d'images et de paramètres
fsavard
parents: 48
diff changeset
212 images_ft_dim = tuple(ft._read_header(images_ft)[3])
ff59670cd1f9 Ajouté l'enregistrement de la complexité, et un strict minimum pour reloader les fichiers d'images et de paramètres
fsavard
parents: 48
diff changeset
213
ff59670cd1f9 Ajouté l'enregistrement de la complexité, et un strict minimum pour reloader les fichiers d'images et de paramètres
fsavard
parents: 48
diff changeset
214 print "Images dimensions: ", images_ft_dim
ff59670cd1f9 Ajouté l'enregistrement de la complexité, et un strict minimum pour reloader les fichiers d'images et de paramètres
fsavard
parents: 48
diff changeset
215
ff59670cd1f9 Ajouté l'enregistrement de la complexité, et un strict minimum pour reloader les fichiers d'images et de paramètres
fsavard
parents: 48
diff changeset
216 params = numpy.load(params_output_file_path)
ff59670cd1f9 Ajouté l'enregistrement de la complexité, et un strict minimum pour reloader les fichiers d'images et de paramètres
fsavard
parents: 48
diff changeset
217
ff59670cd1f9 Ajouté l'enregistrement de la complexité, et un strict minimum pour reloader les fichiers d'images et de paramètres
fsavard
parents: 48
diff changeset
218 print "Params dimensions: ", params.shape
ff59670cd1f9 Ajouté l'enregistrement de la complexité, et un strict minimum pour reloader les fichiers d'images et de paramètres
fsavard
parents: 48
diff changeset
219 print params
ff59670cd1f9 Ajouté l'enregistrement de la complexité, et un strict minimum pour reloader les fichiers d'images et de paramètres
fsavard
parents: 48
diff changeset
220
41
fdb0e0870fb4 Beaucoup de modifications à pipeline.py pour généraliser et un début de visualisation, et créé un wrapper (run_pipeline.py) pour appeler avec GIMP.
fsavard
parents: 15
diff changeset
221
fdb0e0870fb4 Beaucoup de modifications à pipeline.py pour généraliser et un début de visualisation, et créé un wrapper (run_pipeline.py) pour appeler avec GIMP.
fsavard
parents: 15
diff changeset
222 ##############################################################################
fdb0e0870fb4 Beaucoup de modifications à pipeline.py pour généraliser et un début de visualisation, et créé un wrapper (run_pipeline.py) pour appeler avec GIMP.
fsavard
parents: 15
diff changeset
223 # MAIN
fdb0e0870fb4 Beaucoup de modifications à pipeline.py pour généraliser et un début de visualisation, et créé un wrapper (run_pipeline.py) pour appeler avec GIMP.
fsavard
parents: 15
diff changeset
224
fdb0e0870fb4 Beaucoup de modifications à pipeline.py pour généraliser et un début de visualisation, et créé un wrapper (run_pipeline.py) pour appeler avec GIMP.
fsavard
parents: 15
diff changeset
225 def usage():
fdb0e0870fb4 Beaucoup de modifications à pipeline.py pour généraliser et un début de visualisation, et créé un wrapper (run_pipeline.py) pour appeler avec GIMP.
fsavard
parents: 15
diff changeset
226 print '''
fdb0e0870fb4 Beaucoup de modifications à pipeline.py pour généraliser et un début de visualisation, et créé un wrapper (run_pipeline.py) pour appeler avec GIMP.
fsavard
parents: 15
diff changeset
227 Usage: run_pipeline.sh [-m ...] [-z ...] [-o ...] [-p ...]
fdb0e0870fb4 Beaucoup de modifications à pipeline.py pour généraliser et un début de visualisation, et créé un wrapper (run_pipeline.py) pour appeler avec GIMP.
fsavard
parents: 15
diff changeset
228 -m, --max-complexity: max complexity to generate for a batch
fdb0e0870fb4 Beaucoup de modifications à pipeline.py pour généraliser et un début de visualisation, et créé un wrapper (run_pipeline.py) pour appeler avec GIMP.
fsavard
parents: 15
diff changeset
229 -z, --probability-zero: probability of using complexity=0 for a batch
fdb0e0870fb4 Beaucoup de modifications à pipeline.py pour généraliser et un début de visualisation, et créé un wrapper (run_pipeline.py) pour appeler avec GIMP.
fsavard
parents: 15
diff changeset
230 -o, --output-file: full path to file to use for output of images
fdb0e0870fb4 Beaucoup de modifications à pipeline.py pour généraliser et un début de visualisation, et créé un wrapper (run_pipeline.py) pour appeler avec GIMP.
fsavard
parents: 15
diff changeset
231 -p, --params-output-file: path to file to output params to
fdb0e0870fb4 Beaucoup de modifications à pipeline.py pour généraliser et un début de visualisation, et créé un wrapper (run_pipeline.py) pour appeler avec GIMP.
fsavard
parents: 15
diff changeset
232 '''
fdb0e0870fb4 Beaucoup de modifications à pipeline.py pour généraliser et un début de visualisation, et créé un wrapper (run_pipeline.py) pour appeler avec GIMP.
fsavard
parents: 15
diff changeset
233
fdb0e0870fb4 Beaucoup de modifications à pipeline.py pour généraliser et un début de visualisation, et créé un wrapper (run_pipeline.py) pour appeler avec GIMP.
fsavard
parents: 15
diff changeset
234 # See run_pipeline.py
fdb0e0870fb4 Beaucoup de modifications à pipeline.py pour généraliser et un début de visualisation, et créé un wrapper (run_pipeline.py) pour appeler avec GIMP.
fsavard
parents: 15
diff changeset
235 def get_argv():
fdb0e0870fb4 Beaucoup de modifications à pipeline.py pour généraliser et un début de visualisation, et créé un wrapper (run_pipeline.py) pour appeler avec GIMP.
fsavard
parents: 15
diff changeset
236 with open(ARGS_FILE) as f:
fdb0e0870fb4 Beaucoup de modifications à pipeline.py pour généraliser et un début de visualisation, et créé un wrapper (run_pipeline.py) pour appeler avec GIMP.
fsavard
parents: 15
diff changeset
237 args = [l.rstrip() for l in f.readlines()]
fdb0e0870fb4 Beaucoup de modifications à pipeline.py pour généraliser et un début de visualisation, et créé un wrapper (run_pipeline.py) pour appeler avec GIMP.
fsavard
parents: 15
diff changeset
238 return args
10
faacc76d21c2 Basic new pipeline script for the images tranforms
Arnaud Bergeron <abergeron@gmail.com>
parents:
diff changeset
239
41
fdb0e0870fb4 Beaucoup de modifications à pipeline.py pour généraliser et un début de visualisation, et créé un wrapper (run_pipeline.py) pour appeler avec GIMP.
fsavard
parents: 15
diff changeset
240 # Might be called locally or through dbidispatch. In all cases it should be
fdb0e0870fb4 Beaucoup de modifications à pipeline.py pour généraliser et un début de visualisation, et créé un wrapper (run_pipeline.py) pour appeler avec GIMP.
fsavard
parents: 15
diff changeset
241 # passed to the GIMP executable to be able to use GIMP filters.
fdb0e0870fb4 Beaucoup de modifications à pipeline.py pour généraliser et un début de visualisation, et créé un wrapper (run_pipeline.py) pour appeler avec GIMP.
fsavard
parents: 15
diff changeset
242 # Ex:
48
fabf910467b2 Ajouté des hooks pour visualisation à différentes étapes. On peut dumper la grille d'images pour chaque image transformée ou visualiser live avec pylab.imshow() (pas encore essayé cette façon... j'ai un problème avec GIMP+python sur mon laptop).
fsavard
parents: 41
diff changeset
243 def _main():
41
fdb0e0870fb4 Beaucoup de modifications à pipeline.py pour généraliser et un début de visualisation, et créé un wrapper (run_pipeline.py) pour appeler avec GIMP.
fsavard
parents: 15
diff changeset
244 max_complexity = 0.5 # default
fdb0e0870fb4 Beaucoup de modifications à pipeline.py pour généraliser et un début de visualisation, et créé un wrapper (run_pipeline.py) pour appeler avec GIMP.
fsavard
parents: 15
diff changeset
245 probability_zero = 0.1 # default
fdb0e0870fb4 Beaucoup de modifications à pipeline.py pour généraliser et un début de visualisation, et créé un wrapper (run_pipeline.py) pour appeler avec GIMP.
fsavard
parents: 15
diff changeset
246 output_file_path = None
fdb0e0870fb4 Beaucoup de modifications à pipeline.py pour généraliser et un début de visualisation, et créé un wrapper (run_pipeline.py) pour appeler avec GIMP.
fsavard
parents: 15
diff changeset
247 params_output_file_path = None
fdb0e0870fb4 Beaucoup de modifications à pipeline.py pour généraliser et un début de visualisation, et créé un wrapper (run_pipeline.py) pour appeler avec GIMP.
fsavard
parents: 15
diff changeset
248 stop_after = None
50
ff59670cd1f9 Ajouté l'enregistrement de la complexité, et un strict minimum pour reloader les fichiers d'images et de paramètres
fsavard
parents: 48
diff changeset
249 reload_mode = False
48
fabf910467b2 Ajouté des hooks pour visualisation à différentes étapes. On peut dumper la grille d'images pour chaque image transformée ou visualiser live avec pylab.imshow() (pas encore essayé cette façon... j'ai un problème avec GIMP+python sur mon laptop).
fsavard
parents: 41
diff changeset
250
41
fdb0e0870fb4 Beaucoup de modifications à pipeline.py pour généraliser et un début de visualisation, et créé un wrapper (run_pipeline.py) pour appeler avec GIMP.
fsavard
parents: 15
diff changeset
251 try:
50
ff59670cd1f9 Ajouté l'enregistrement de la complexité, et un strict minimum pour reloader les fichiers d'images et de paramètres
fsavard
parents: 48
diff changeset
252 opts, args = getopt.getopt(get_argv(), "rm:z:o:p:s:", ["reload","max-complexity=", "probability-zero=", "output-file=", "params-output-file=", "stop-after="])
41
fdb0e0870fb4 Beaucoup de modifications à pipeline.py pour généraliser et un début de visualisation, et créé un wrapper (run_pipeline.py) pour appeler avec GIMP.
fsavard
parents: 15
diff changeset
253 except getopt.GetoptError, err:
fdb0e0870fb4 Beaucoup de modifications à pipeline.py pour généraliser et un début de visualisation, et créé un wrapper (run_pipeline.py) pour appeler avec GIMP.
fsavard
parents: 15
diff changeset
254 # print help information and exit:
fdb0e0870fb4 Beaucoup de modifications à pipeline.py pour généraliser et un début de visualisation, et créé un wrapper (run_pipeline.py) pour appeler avec GIMP.
fsavard
parents: 15
diff changeset
255 print str(err) # will print something like "option -a not recognized"
fdb0e0870fb4 Beaucoup de modifications à pipeline.py pour généraliser et un début de visualisation, et créé un wrapper (run_pipeline.py) pour appeler avec GIMP.
fsavard
parents: 15
diff changeset
256 usage()
fdb0e0870fb4 Beaucoup de modifications à pipeline.py pour généraliser et un début de visualisation, et créé un wrapper (run_pipeline.py) pour appeler avec GIMP.
fsavard
parents: 15
diff changeset
257 sys.exit(2)
50
ff59670cd1f9 Ajouté l'enregistrement de la complexité, et un strict minimum pour reloader les fichiers d'images et de paramètres
fsavard
parents: 48
diff changeset
258
41
fdb0e0870fb4 Beaucoup de modifications à pipeline.py pour généraliser et un début de visualisation, et créé un wrapper (run_pipeline.py) pour appeler avec GIMP.
fsavard
parents: 15
diff changeset
259 for o, a in opts:
fdb0e0870fb4 Beaucoup de modifications à pipeline.py pour généraliser et un début de visualisation, et créé un wrapper (run_pipeline.py) pour appeler avec GIMP.
fsavard
parents: 15
diff changeset
260 if o in ('-m', '--max-complexity'):
fdb0e0870fb4 Beaucoup de modifications à pipeline.py pour généraliser et un début de visualisation, et créé un wrapper (run_pipeline.py) pour appeler avec GIMP.
fsavard
parents: 15
diff changeset
261 max_complexity = float(a)
fdb0e0870fb4 Beaucoup de modifications à pipeline.py pour généraliser et un début de visualisation, et créé un wrapper (run_pipeline.py) pour appeler avec GIMP.
fsavard
parents: 15
diff changeset
262 assert max_complexity >= 0.0 and max_complexity <= 1.0
50
ff59670cd1f9 Ajouté l'enregistrement de la complexité, et un strict minimum pour reloader les fichiers d'images et de paramètres
fsavard
parents: 48
diff changeset
263 elif o in ('-r', '--reload'):
ff59670cd1f9 Ajouté l'enregistrement de la complexité, et un strict minimum pour reloader les fichiers d'images et de paramètres
fsavard
parents: 48
diff changeset
264 reload_mode = True
41
fdb0e0870fb4 Beaucoup de modifications à pipeline.py pour généraliser et un début de visualisation, et créé un wrapper (run_pipeline.py) pour appeler avec GIMP.
fsavard
parents: 15
diff changeset
265 elif o in ("-z", "--probability-zero"):
fdb0e0870fb4 Beaucoup de modifications à pipeline.py pour généraliser et un début de visualisation, et créé un wrapper (run_pipeline.py) pour appeler avec GIMP.
fsavard
parents: 15
diff changeset
266 probability_zero = float(a)
fdb0e0870fb4 Beaucoup de modifications à pipeline.py pour généraliser et un début de visualisation, et créé un wrapper (run_pipeline.py) pour appeler avec GIMP.
fsavard
parents: 15
diff changeset
267 assert probability_zero >= 0.0 and probability_zero <= 1.0
fdb0e0870fb4 Beaucoup de modifications à pipeline.py pour généraliser et un début de visualisation, et créé un wrapper (run_pipeline.py) pour appeler avec GIMP.
fsavard
parents: 15
diff changeset
268 elif o in ("-o", "--output-file"):
fdb0e0870fb4 Beaucoup de modifications à pipeline.py pour généraliser et un début de visualisation, et créé un wrapper (run_pipeline.py) pour appeler avec GIMP.
fsavard
parents: 15
diff changeset
269 output_file_path = a
fdb0e0870fb4 Beaucoup de modifications à pipeline.py pour généraliser et un début de visualisation, et créé un wrapper (run_pipeline.py) pour appeler avec GIMP.
fsavard
parents: 15
diff changeset
270 elif o in ('-p', "--params-output-file"):
fdb0e0870fb4 Beaucoup de modifications à pipeline.py pour généraliser et un début de visualisation, et créé un wrapper (run_pipeline.py) pour appeler avec GIMP.
fsavard
parents: 15
diff changeset
271 params_output_file_path = a
fdb0e0870fb4 Beaucoup de modifications à pipeline.py pour généraliser et un début de visualisation, et créé un wrapper (run_pipeline.py) pour appeler avec GIMP.
fsavard
parents: 15
diff changeset
272 elif o in ('-s', "--stop-after"):
fdb0e0870fb4 Beaucoup de modifications à pipeline.py pour généraliser et un début de visualisation, et créé un wrapper (run_pipeline.py) pour appeler avec GIMP.
fsavard
parents: 15
diff changeset
273 stop_after = int(a)
fdb0e0870fb4 Beaucoup de modifications à pipeline.py pour généraliser et un début de visualisation, et créé un wrapper (run_pipeline.py) pour appeler avec GIMP.
fsavard
parents: 15
diff changeset
274 else:
fdb0e0870fb4 Beaucoup de modifications à pipeline.py pour généraliser et un début de visualisation, et créé un wrapper (run_pipeline.py) pour appeler avec GIMP.
fsavard
parents: 15
diff changeset
275 assert False, "unhandled option"
10
faacc76d21c2 Basic new pipeline script for the images tranforms
Arnaud Bergeron <abergeron@gmail.com>
parents:
diff changeset
276
41
fdb0e0870fb4 Beaucoup de modifications à pipeline.py pour généraliser et un début de visualisation, et créé un wrapper (run_pipeline.py) pour appeler avec GIMP.
fsavard
parents: 15
diff changeset
277 if output_file_path == None or params_output_file_path == None:
fdb0e0870fb4 Beaucoup de modifications à pipeline.py pour généraliser et un début de visualisation, et créé un wrapper (run_pipeline.py) pour appeler avec GIMP.
fsavard
parents: 15
diff changeset
278 print "Must specify both output files."
fdb0e0870fb4 Beaucoup de modifications à pipeline.py pour généraliser et un début de visualisation, et créé un wrapper (run_pipeline.py) pour appeler avec GIMP.
fsavard
parents: 15
diff changeset
279 print
fdb0e0870fb4 Beaucoup de modifications à pipeline.py pour généraliser et un début de visualisation, et créé un wrapper (run_pipeline.py) pour appeler avec GIMP.
fsavard
parents: 15
diff changeset
280 usage()
fdb0e0870fb4 Beaucoup de modifications à pipeline.py pour généraliser et un début de visualisation, et créé un wrapper (run_pipeline.py) pour appeler avec GIMP.
fsavard
parents: 15
diff changeset
281 sys.exit(2)
fdb0e0870fb4 Beaucoup de modifications à pipeline.py pour généraliser et un début de visualisation, et créé un wrapper (run_pipeline.py) pour appeler avec GIMP.
fsavard
parents: 15
diff changeset
282
50
ff59670cd1f9 Ajouté l'enregistrement de la complexité, et un strict minimum pour reloader les fichiers d'images et de paramètres
fsavard
parents: 48
diff changeset
283 if reload_mode:
ff59670cd1f9 Ajouté l'enregistrement de la complexité, et un strict minimum pour reloader les fichiers d'images et de paramètres
fsavard
parents: 48
diff changeset
284 reload(output_file_path, params_output_file_path)
48
fabf910467b2 Ajouté des hooks pour visualisation à différentes étapes. On peut dumper la grille d'images pour chaque image transformée ou visualiser live avec pylab.imshow() (pas encore essayé cette façon... j'ai un problème avec GIMP+python sur mon laptop).
fsavard
parents: 41
diff changeset
285 else:
50
ff59670cd1f9 Ajouté l'enregistrement de la complexité, et un strict minimum pour reloader les fichiers d'images et de paramètres
fsavard
parents: 48
diff changeset
286 if DEBUG_IMAGES_PATH:
ff59670cd1f9 Ajouté l'enregistrement de la complexité, et un strict minimum pour reloader les fichiers d'images et de paramètres
fsavard
parents: 48
diff changeset
287 '''
ff59670cd1f9 Ajouté l'enregistrement de la complexité, et un strict minimum pour reloader les fichiers d'images et de paramètres
fsavard
parents: 48
diff changeset
288 # This code is yet untested
ff59670cd1f9 Ajouté l'enregistrement de la complexité, et un strict minimum pour reloader les fichiers d'images et de paramètres
fsavard
parents: 48
diff changeset
289 debug_images = DebugImages(DEBUG_IMAGES_PATH)
ff59670cd1f9 Ajouté l'enregistrement de la complexité, et un strict minimum pour reloader les fichiers d'images et de paramètres
fsavard
parents: 48
diff changeset
290 num_batches = 1
ff59670cd1f9 Ajouté l'enregistrement de la complexité, et un strict minimum pour reloader les fichiers d'images et de paramètres
fsavard
parents: 48
diff changeset
291 batch_size = len(debug_images.filelist)
ff59670cd1f9 Ajouté l'enregistrement de la complexité, et un strict minimum pour reloader les fichiers d'images et de paramètres
fsavard
parents: 48
diff changeset
292 pl = Pipeline(modules=MODULE_INSTANCES, num_batches=num_batches, batch_size=BATCH_SIZE, image_size=(32,32))
ff59670cd1f9 Ajouté l'enregistrement de la complexité, et un strict minimum pour reloader les fichiers d'images et de paramètres
fsavard
parents: 48
diff changeset
293 batch_it = debug_images_iterator(debug_images)
ff59670cd1f9 Ajouté l'enregistrement de la complexité, et un strict minimum pour reloader les fichiers d'images et de paramètres
fsavard
parents: 48
diff changeset
294 '''
ff59670cd1f9 Ajouté l'enregistrement de la complexité, et un strict minimum pour reloader les fichiers d'images et de paramètres
fsavard
parents: 48
diff changeset
295 else:
ff59670cd1f9 Ajouté l'enregistrement de la complexité, et un strict minimum pour reloader les fichiers d'images et de paramètres
fsavard
parents: 48
diff changeset
296 nist = NistData()
ff59670cd1f9 Ajouté l'enregistrement de la complexité, et un strict minimum pour reloader les fichiers d'images et de paramètres
fsavard
parents: 48
diff changeset
297 num_batches = nist.dim[0]/BATCH_SIZE
ff59670cd1f9 Ajouté l'enregistrement de la complexité, et un strict minimum pour reloader les fichiers d'images et de paramètres
fsavard
parents: 48
diff changeset
298 if stop_after:
ff59670cd1f9 Ajouté l'enregistrement de la complexité, et un strict minimum pour reloader les fichiers d'images et de paramètres
fsavard
parents: 48
diff changeset
299 num_batches = stop_after
ff59670cd1f9 Ajouté l'enregistrement de la complexité, et un strict minimum pour reloader les fichiers d'images et de paramètres
fsavard
parents: 48
diff changeset
300 pl = Pipeline(modules=MODULE_INSTANCES, num_batches=num_batches, batch_size=BATCH_SIZE, image_size=(32,32))
ff59670cd1f9 Ajouté l'enregistrement de la complexité, et un strict minimum pour reloader les fichiers d'images et de paramètres
fsavard
parents: 48
diff changeset
301 batch_it = just_nist_iterator(nist, BATCH_SIZE, stop_after)
48
fabf910467b2 Ajouté des hooks pour visualisation à différentes étapes. On peut dumper la grille d'images pour chaque image transformée ou visualiser live avec pylab.imshow() (pas encore essayé cette façon... j'ai un problème avec GIMP+python sur mon laptop).
fsavard
parents: 41
diff changeset
302
50
ff59670cd1f9 Ajouté l'enregistrement de la complexité, et un strict minimum pour reloader les fichiers d'images et de paramètres
fsavard
parents: 48
diff changeset
303 cpx_it = range_complexity_iterator(probability_zero, max_complexity)
ff59670cd1f9 Ajouté l'enregistrement de la complexité, et un strict minimum pour reloader les fichiers d'images et de paramètres
fsavard
parents: 48
diff changeset
304 pl.run(batch_it, cpx_it)
ff59670cd1f9 Ajouté l'enregistrement de la complexité, et un strict minimum pour reloader les fichiers d'images et de paramètres
fsavard
parents: 48
diff changeset
305 pl.write_output(output_file_path, params_output_file_path)
41
fdb0e0870fb4 Beaucoup de modifications à pipeline.py pour généraliser et un début de visualisation, et créé un wrapper (run_pipeline.py) pour appeler avec GIMP.
fsavard
parents: 15
diff changeset
306
48
fabf910467b2 Ajouté des hooks pour visualisation à différentes étapes. On peut dumper la grille d'images pour chaque image transformée ou visualiser live avec pylab.imshow() (pas encore essayé cette façon... j'ai un problème avec GIMP+python sur mon laptop).
fsavard
parents: 41
diff changeset
307 _main()
fabf910467b2 Ajouté des hooks pour visualisation à différentes étapes. On peut dumper la grille d'images pour chaque image transformée ou visualiser live avec pylab.imshow() (pas encore essayé cette façon... j'ai un problème avec GIMP+python sur mon laptop).
fsavard
parents: 41
diff changeset
308
fabf910467b2 Ajouté des hooks pour visualisation à différentes étapes. On peut dumper la grille d'images pour chaque image transformée ou visualiser live avec pylab.imshow() (pas encore essayé cette façon... j'ai un problème avec GIMP+python sur mon laptop).
fsavard
parents: 41
diff changeset
309 if DEBUG_X:
fabf910467b2 Ajouté des hooks pour visualisation à différentes étapes. On peut dumper la grille d'images pour chaque image transformée ou visualiser live avec pylab.imshow() (pas encore essayé cette façon... j'ai un problème avec GIMP+python sur mon laptop).
fsavard
parents: 41
diff changeset
310 pylab.ioff()
fabf910467b2 Ajouté des hooks pour visualisation à différentes étapes. On peut dumper la grille d'images pour chaque image transformée ou visualiser live avec pylab.imshow() (pas encore essayé cette façon... j'ai un problème avec GIMP+python sur mon laptop).
fsavard
parents: 41
diff changeset
311 pylab.show()
41
fdb0e0870fb4 Beaucoup de modifications à pipeline.py pour généraliser et un début de visualisation, et créé un wrapper (run_pipeline.py) pour appeler avec GIMP.
fsavard
parents: 15
diff changeset
312
fdb0e0870fb4 Beaucoup de modifications à pipeline.py pour généraliser et un début de visualisation, et créé un wrapper (run_pipeline.py) pour appeler avec GIMP.
fsavard
parents: 15
diff changeset
313 pdb.gimp_quit(0)
fdb0e0870fb4 Beaucoup de modifications à pipeline.py pour généraliser et un début de visualisation, et créé un wrapper (run_pipeline.py) pour appeler avec GIMP.
fsavard
parents: 15
diff changeset
314