Mercurial > ift6266
annotate data_generation/transformations/PermutPixel.py @ 266:1e4e60ddadb1
Merge. Ah, et dans le dernier commit, j'avais oublié de mentionner que j'ai ajouté du code pour gérer l'isolation de différents clones pour rouler des expériences et modifier le code en même temps.
author | fsavard |
---|---|
date | Fri, 19 Mar 2010 10:56:16 -0400 |
parents | 1f5937e9e530 |
children |
rev | line source |
---|---|
46
48a21d19b8eb
Effectue une permutation aleatoire de certains pixels choisit avec un voisin
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents:
diff
changeset
|
1 #!/usr/bin/python |
48a21d19b8eb
Effectue une permutation aleatoire de certains pixels choisit avec un voisin
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents:
diff
changeset
|
2 # coding: utf-8 |
48a21d19b8eb
Effectue une permutation aleatoire de certains pixels choisit avec un voisin
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents:
diff
changeset
|
3 |
48a21d19b8eb
Effectue une permutation aleatoire de certains pixels choisit avec un voisin
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents:
diff
changeset
|
4 ''' |
48a21d19b8eb
Effectue une permutation aleatoire de certains pixels choisit avec un voisin
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents:
diff
changeset
|
5 Un echange de pixels est effectue entre certain pixels choisit aleatoirement |
48a21d19b8eb
Effectue une permutation aleatoire de certains pixels choisit avec un voisin
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents:
diff
changeset
|
6 et un de ses 4 voisins, tout aussi choisi aleatoirement. |
48a21d19b8eb
Effectue une permutation aleatoire de certains pixels choisit avec un voisin
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents:
diff
changeset
|
7 |
48a21d19b8eb
Effectue une permutation aleatoire de certains pixels choisit avec un voisin
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents:
diff
changeset
|
8 Le nombre de pixels permutes est definit pas complexity*1024 |
48a21d19b8eb
Effectue une permutation aleatoire de certains pixels choisit avec un voisin
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents:
diff
changeset
|
9 |
91
6696391273ab
Il y a maintenant une proba 0.2 d'effectuer des permutations. Cette nouvelle fonctionnalite demande un parametre non deterministe, ce qui fait que maintenant, les fonctions 'determined_by_complexity' ont ete abandonees. Le module se comporte comme un module normal
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents:
78
diff
changeset
|
10 Il y a proba 20% d'effectuer le bruitage |
6696391273ab
Il y a maintenant une proba 0.2 d'effectuer des permutations. Cette nouvelle fonctionnalite demande un parametre non deterministe, ce qui fait que maintenant, les fonctions 'determined_by_complexity' ont ete abandonees. Le module se comporte comme un module normal
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents:
78
diff
changeset
|
11 |
46
48a21d19b8eb
Effectue une permutation aleatoire de certains pixels choisit avec un voisin
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents:
diff
changeset
|
12 Sylvain Pannetier Lebeuf dans le cadre de IFT6266, hiver 2010 |
48a21d19b8eb
Effectue une permutation aleatoire de certains pixels choisit avec un voisin
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents:
diff
changeset
|
13 |
48a21d19b8eb
Effectue une permutation aleatoire de certains pixels choisit avec un voisin
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents:
diff
changeset
|
14 ''' |
48a21d19b8eb
Effectue une permutation aleatoire de certains pixels choisit avec un voisin
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents:
diff
changeset
|
15 |
48a21d19b8eb
Effectue une permutation aleatoire de certains pixels choisit avec un voisin
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents:
diff
changeset
|
16 import numpy |
48a21d19b8eb
Effectue une permutation aleatoire de certains pixels choisit avec un voisin
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents:
diff
changeset
|
17 import random |
48a21d19b8eb
Effectue une permutation aleatoire de certains pixels choisit avec un voisin
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents:
diff
changeset
|
18 |
48a21d19b8eb
Effectue une permutation aleatoire de certains pixels choisit avec un voisin
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents:
diff
changeset
|
19 class PermutPixel(): |
48a21d19b8eb
Effectue une permutation aleatoire de certains pixels choisit avec un voisin
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents:
diff
changeset
|
20 |
151
c25435ee72a8
Rajout d'un seed random et d'une fonction get_seed
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents:
103
diff
changeset
|
21 def __init__(self,seed=7152): |
46
48a21d19b8eb
Effectue une permutation aleatoire de certains pixels choisit avec un voisin
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents:
diff
changeset
|
22 self.nombre=10 #Le nombre de pixels a permuter |
48a21d19b8eb
Effectue une permutation aleatoire de certains pixels choisit avec un voisin
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents:
diff
changeset
|
23 self.proportion=0.3 |
91
6696391273ab
Il y a maintenant une proba 0.2 d'effectuer des permutations. Cette nouvelle fonctionnalite demande un parametre non deterministe, ce qui fait que maintenant, les fonctions 'determined_by_complexity' ont ete abandonees. Le module se comporte comme un module normal
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents:
78
diff
changeset
|
24 self.effectuer=1 #1=on effectue, 0=rien faire |
151
c25435ee72a8
Rajout d'un seed random et d'une fonction get_seed
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents:
103
diff
changeset
|
25 self.seed=seed |
c25435ee72a8
Rajout d'un seed random et d'une fonction get_seed
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents:
103
diff
changeset
|
26 |
c25435ee72a8
Rajout d'un seed random et d'une fonction get_seed
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents:
103
diff
changeset
|
27 #Les deux generateurs sont de types differents, avoir la meme seed n'a pas d'influence |
155
7640cb31cf1f
Enlevé les re-seed constants, interfère avec les autres modules
boulanni <nicolas_boulanger@hotmail.com>
parents:
151
diff
changeset
|
28 #numpy.random.seed(self.seed) |
7640cb31cf1f
Enlevé les re-seed constants, interfère avec les autres modules
boulanni <nicolas_boulanger@hotmail.com>
parents:
151
diff
changeset
|
29 #random.seed(self.seed) |
151
c25435ee72a8
Rajout d'un seed random et d'une fonction get_seed
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents:
103
diff
changeset
|
30 |
c25435ee72a8
Rajout d'un seed random et d'une fonction get_seed
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents:
103
diff
changeset
|
31 def get_seed(self): |
c25435ee72a8
Rajout d'un seed random et d'une fonction get_seed
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents:
103
diff
changeset
|
32 return self.seed |
46
48a21d19b8eb
Effectue une permutation aleatoire de certains pixels choisit avec un voisin
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents:
diff
changeset
|
33 |
48a21d19b8eb
Effectue une permutation aleatoire de certains pixels choisit avec un voisin
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents:
diff
changeset
|
34 def get_settings_names(self): |
102
ae9152581b09
Parametre stochastique retourne par fonctions habituelles et le parametre deterministe retourne par fonctions 'determined_by_complexity'
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents:
91
diff
changeset
|
35 return ['effectuer'] |
78
9936c4886299
Mise a niveau specifications parametres deterministes, bruitage moins aggressif et transformations toutes pareilles tant qu'on ne rappelle pas regenerate_parameters()
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents:
46
diff
changeset
|
36 |
103
ebf8b438362e
corrige nom de la methode get_settings_names_determined_by_complexity(self,complexity)
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents:
102
diff
changeset
|
37 def get_settings_names_determined_by_complexity(self,complexity): |
102
ae9152581b09
Parametre stochastique retourne par fonctions habituelles et le parametre deterministe retourne par fonctions 'determined_by_complexity'
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents:
91
diff
changeset
|
38 return ['nombre'] |
46
48a21d19b8eb
Effectue une permutation aleatoire de certains pixels choisit avec un voisin
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents:
diff
changeset
|
39 |
48a21d19b8eb
Effectue une permutation aleatoire de certains pixels choisit avec un voisin
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents:
diff
changeset
|
40 def regenerate_parameters(self, complexity): |
78
9936c4886299
Mise a niveau specifications parametres deterministes, bruitage moins aggressif et transformations toutes pareilles tant qu'on ne rappelle pas regenerate_parameters()
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents:
46
diff
changeset
|
41 self.proportion=float(complexity)/3 |
46
48a21d19b8eb
Effectue une permutation aleatoire de certains pixels choisit avec un voisin
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents:
diff
changeset
|
42 self.nombre=int(256*self.proportion)*4 #Par multiple de 4 (256=1024/4) |
78
9936c4886299
Mise a niveau specifications parametres deterministes, bruitage moins aggressif et transformations toutes pareilles tant qu'on ne rappelle pas regenerate_parameters()
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents:
46
diff
changeset
|
43 self.echantillon=random.sample(xrange(0,1024),self.nombre) #Les pixels qui seront permutes |
91
6696391273ab
Il y a maintenant une proba 0.2 d'effectuer des permutations. Cette nouvelle fonctionnalite demande un parametre non deterministe, ce qui fait que maintenant, les fonctions 'determined_by_complexity' ont ete abandonees. Le module se comporte comme un module normal
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents:
78
diff
changeset
|
44 self.effectuer =numpy.random.binomial(1,0.2) ##### On a 20% de faire un bruit ##### |
46
48a21d19b8eb
Effectue une permutation aleatoire de certains pixels choisit avec un voisin
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents:
diff
changeset
|
45 return self._get_current_parameters() |
48a21d19b8eb
Effectue une permutation aleatoire de certains pixels choisit avec un voisin
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents:
diff
changeset
|
46 |
48a21d19b8eb
Effectue une permutation aleatoire de certains pixels choisit avec un voisin
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents:
diff
changeset
|
47 def _get_current_parameters(self): |
102
ae9152581b09
Parametre stochastique retourne par fonctions habituelles et le parametre deterministe retourne par fonctions 'determined_by_complexity'
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents:
91
diff
changeset
|
48 return [self.effectuer] |
46
48a21d19b8eb
Effectue une permutation aleatoire de certains pixels choisit avec un voisin
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents:
diff
changeset
|
49 |
102
ae9152581b09
Parametre stochastique retourne par fonctions habituelles et le parametre deterministe retourne par fonctions 'determined_by_complexity'
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents:
91
diff
changeset
|
50 def get_parameters_determined_by_complexity(self, complexity): |
ae9152581b09
Parametre stochastique retourne par fonctions habituelles et le parametre deterministe retourne par fonctions 'determined_by_complexity'
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents:
91
diff
changeset
|
51 return [int(complexity*256)*4] |
46
48a21d19b8eb
Effectue une permutation aleatoire de certains pixels choisit avec un voisin
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents:
diff
changeset
|
52 |
48a21d19b8eb
Effectue une permutation aleatoire de certains pixels choisit avec un voisin
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents:
diff
changeset
|
53 def transform_image(self, image): |
91
6696391273ab
Il y a maintenant une proba 0.2 d'effectuer des permutations. Cette nouvelle fonctionnalite demande un parametre non deterministe, ce qui fait que maintenant, les fonctions 'determined_by_complexity' ont ete abandonees. Le module se comporte comme un module normal
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents:
78
diff
changeset
|
54 if self.effectuer==0: |
6696391273ab
Il y a maintenant une proba 0.2 d'effectuer des permutations. Cette nouvelle fonctionnalite demande un parametre non deterministe, ce qui fait que maintenant, les fonctions 'determined_by_complexity' ont ete abandonees. Le module se comporte comme un module normal
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents:
78
diff
changeset
|
55 return image |
6696391273ab
Il y a maintenant une proba 0.2 d'effectuer des permutations. Cette nouvelle fonctionnalite demande un parametre non deterministe, ce qui fait que maintenant, les fonctions 'determined_by_complexity' ont ete abandonees. Le module se comporte comme un module normal
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents:
78
diff
changeset
|
56 |
46
48a21d19b8eb
Effectue une permutation aleatoire de certains pixels choisit avec un voisin
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents:
diff
changeset
|
57 image=image.reshape(1024,1) |
48a21d19b8eb
Effectue une permutation aleatoire de certains pixels choisit avec un voisin
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents:
diff
changeset
|
58 temp=0 #variable temporaire |
78
9936c4886299
Mise a niveau specifications parametres deterministes, bruitage moins aggressif et transformations toutes pareilles tant qu'on ne rappelle pas regenerate_parameters()
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents:
46
diff
changeset
|
59 |
9936c4886299
Mise a niveau specifications parametres deterministes, bruitage moins aggressif et transformations toutes pareilles tant qu'on ne rappelle pas regenerate_parameters()
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents:
46
diff
changeset
|
60 for i in xrange(0,self.nombre,4): #Par bonds de 4 |
46
48a21d19b8eb
Effectue une permutation aleatoire de certains pixels choisit avec un voisin
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents:
diff
changeset
|
61 #gauche |
78
9936c4886299
Mise a niveau specifications parametres deterministes, bruitage moins aggressif et transformations toutes pareilles tant qu'on ne rappelle pas regenerate_parameters()
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents:
46
diff
changeset
|
62 if self.echantillon[i] > 0: |
9936c4886299
Mise a niveau specifications parametres deterministes, bruitage moins aggressif et transformations toutes pareilles tant qu'on ne rappelle pas regenerate_parameters()
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents:
46
diff
changeset
|
63 temp=image[self.echantillon[i]-1] |
9936c4886299
Mise a niveau specifications parametres deterministes, bruitage moins aggressif et transformations toutes pareilles tant qu'on ne rappelle pas regenerate_parameters()
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents:
46
diff
changeset
|
64 image[self.echantillon[i]-1]=image[self.echantillon[i]] |
9936c4886299
Mise a niveau specifications parametres deterministes, bruitage moins aggressif et transformations toutes pareilles tant qu'on ne rappelle pas regenerate_parameters()
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents:
46
diff
changeset
|
65 image[self.echantillon[i]]=temp |
46
48a21d19b8eb
Effectue une permutation aleatoire de certains pixels choisit avec un voisin
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents:
diff
changeset
|
66 #droite |
78
9936c4886299
Mise a niveau specifications parametres deterministes, bruitage moins aggressif et transformations toutes pareilles tant qu'on ne rappelle pas regenerate_parameters()
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents:
46
diff
changeset
|
67 if self.echantillon[i+1] < 1023: |
9936c4886299
Mise a niveau specifications parametres deterministes, bruitage moins aggressif et transformations toutes pareilles tant qu'on ne rappelle pas regenerate_parameters()
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents:
46
diff
changeset
|
68 temp=image[self.echantillon[i+1]+1] |
9936c4886299
Mise a niveau specifications parametres deterministes, bruitage moins aggressif et transformations toutes pareilles tant qu'on ne rappelle pas regenerate_parameters()
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents:
46
diff
changeset
|
69 image[self.echantillon[i+1]+1]=image[self.echantillon[i+1]] |
9936c4886299
Mise a niveau specifications parametres deterministes, bruitage moins aggressif et transformations toutes pareilles tant qu'on ne rappelle pas regenerate_parameters()
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents:
46
diff
changeset
|
70 image[self.echantillon[i+1]]=temp |
46
48a21d19b8eb
Effectue une permutation aleatoire de certains pixels choisit avec un voisin
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents:
diff
changeset
|
71 #haut |
78
9936c4886299
Mise a niveau specifications parametres deterministes, bruitage moins aggressif et transformations toutes pareilles tant qu'on ne rappelle pas regenerate_parameters()
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents:
46
diff
changeset
|
72 if self.echantillon[i+2] > 31: |
9936c4886299
Mise a niveau specifications parametres deterministes, bruitage moins aggressif et transformations toutes pareilles tant qu'on ne rappelle pas regenerate_parameters()
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents:
46
diff
changeset
|
73 temp=image[self.echantillon[i+2]-32] |
9936c4886299
Mise a niveau specifications parametres deterministes, bruitage moins aggressif et transformations toutes pareilles tant qu'on ne rappelle pas regenerate_parameters()
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents:
46
diff
changeset
|
74 image[self.echantillon[i+2]-32]=image[self.echantillon[i+2]] |
9936c4886299
Mise a niveau specifications parametres deterministes, bruitage moins aggressif et transformations toutes pareilles tant qu'on ne rappelle pas regenerate_parameters()
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents:
46
diff
changeset
|
75 image[self.echantillon[i+2]]=temp |
46
48a21d19b8eb
Effectue une permutation aleatoire de certains pixels choisit avec un voisin
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents:
diff
changeset
|
76 #bas |
78
9936c4886299
Mise a niveau specifications parametres deterministes, bruitage moins aggressif et transformations toutes pareilles tant qu'on ne rappelle pas regenerate_parameters()
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents:
46
diff
changeset
|
77 if self.echantillon[i+3] < 992: |
9936c4886299
Mise a niveau specifications parametres deterministes, bruitage moins aggressif et transformations toutes pareilles tant qu'on ne rappelle pas regenerate_parameters()
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents:
46
diff
changeset
|
78 temp=image[self.echantillon[i+3]+32] |
9936c4886299
Mise a niveau specifications parametres deterministes, bruitage moins aggressif et transformations toutes pareilles tant qu'on ne rappelle pas regenerate_parameters()
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents:
46
diff
changeset
|
79 image[self.echantillon[i+3]+32]=image[self.echantillon[i+3]] |
9936c4886299
Mise a niveau specifications parametres deterministes, bruitage moins aggressif et transformations toutes pareilles tant qu'on ne rappelle pas regenerate_parameters()
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents:
46
diff
changeset
|
80 image[self.echantillon[i+3]]=temp |
46
48a21d19b8eb
Effectue une permutation aleatoire de certains pixels choisit avec un voisin
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents:
diff
changeset
|
81 |
48a21d19b8eb
Effectue une permutation aleatoire de certains pixels choisit avec un voisin
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents:
diff
changeset
|
82 |
48a21d19b8eb
Effectue une permutation aleatoire de certains pixels choisit avec un voisin
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents:
diff
changeset
|
83 return image.reshape((32,32)) |
48a21d19b8eb
Effectue une permutation aleatoire de certains pixels choisit avec un voisin
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents:
diff
changeset
|
84 |
48a21d19b8eb
Effectue une permutation aleatoire de certains pixels choisit avec un voisin
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents:
diff
changeset
|
85 |
48a21d19b8eb
Effectue une permutation aleatoire de certains pixels choisit avec un voisin
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents:
diff
changeset
|
86 #---TESTS--- |
48a21d19b8eb
Effectue une permutation aleatoire de certains pixels choisit avec un voisin
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents:
diff
changeset
|
87 |
48a21d19b8eb
Effectue une permutation aleatoire de certains pixels choisit avec un voisin
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents:
diff
changeset
|
88 def _load_image(): |
48a21d19b8eb
Effectue une permutation aleatoire de certains pixels choisit avec un voisin
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents:
diff
changeset
|
89 f = open('/home/sylvain/Dropbox/Msc/IFT6266/donnees/lower_test_data.ft') #Le jeu de donnees est en local. |
48a21d19b8eb
Effectue une permutation aleatoire de certains pixels choisit avec un voisin
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents:
diff
changeset
|
90 d = ft.read(f) |
48a21d19b8eb
Effectue une permutation aleatoire de certains pixels choisit avec un voisin
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents:
diff
changeset
|
91 w=numpy.asarray(d[random.randint(0,100)]) |
48a21d19b8eb
Effectue une permutation aleatoire de certains pixels choisit avec un voisin
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents:
diff
changeset
|
92 return (w/255.0).astype('float') |
48a21d19b8eb
Effectue une permutation aleatoire de certains pixels choisit avec un voisin
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents:
diff
changeset
|
93 |
48a21d19b8eb
Effectue une permutation aleatoire de certains pixels choisit avec un voisin
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents:
diff
changeset
|
94 def _test(complexite): |
48a21d19b8eb
Effectue une permutation aleatoire de certains pixels choisit avec un voisin
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents:
diff
changeset
|
95 img=_load_image() |
48a21d19b8eb
Effectue une permutation aleatoire de certains pixels choisit avec un voisin
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents:
diff
changeset
|
96 transfo = PermutPixel() |
48a21d19b8eb
Effectue une permutation aleatoire de certains pixels choisit avec un voisin
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents:
diff
changeset
|
97 pylab.imshow(img.reshape((32,32))) |
48a21d19b8eb
Effectue une permutation aleatoire de certains pixels choisit avec un voisin
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents:
diff
changeset
|
98 pylab.show() |
48a21d19b8eb
Effectue une permutation aleatoire de certains pixels choisit avec un voisin
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents:
diff
changeset
|
99 print transfo.get_settings_names() |
48a21d19b8eb
Effectue une permutation aleatoire de certains pixels choisit avec un voisin
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents:
diff
changeset
|
100 print transfo.regenerate_parameters(complexite) |
48a21d19b8eb
Effectue une permutation aleatoire de certains pixels choisit avec un voisin
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents:
diff
changeset
|
101 |
48a21d19b8eb
Effectue une permutation aleatoire de certains pixels choisit avec un voisin
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents:
diff
changeset
|
102 img_trans=transfo.transform_image(img) |
48a21d19b8eb
Effectue une permutation aleatoire de certains pixels choisit avec un voisin
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents:
diff
changeset
|
103 |
48a21d19b8eb
Effectue une permutation aleatoire de certains pixels choisit avec un voisin
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents:
diff
changeset
|
104 pylab.imshow(img_trans.reshape((32,32))) |
48a21d19b8eb
Effectue une permutation aleatoire de certains pixels choisit avec un voisin
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents:
diff
changeset
|
105 pylab.show() |
48a21d19b8eb
Effectue une permutation aleatoire de certains pixels choisit avec un voisin
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents:
diff
changeset
|
106 |
48a21d19b8eb
Effectue une permutation aleatoire de certains pixels choisit avec un voisin
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents:
diff
changeset
|
107 |
48a21d19b8eb
Effectue une permutation aleatoire de certains pixels choisit avec un voisin
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents:
diff
changeset
|
108 if __name__ == '__main__': |
48a21d19b8eb
Effectue une permutation aleatoire de certains pixels choisit avec un voisin
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents:
diff
changeset
|
109 from pylearn.io import filetensor as ft |
48a21d19b8eb
Effectue une permutation aleatoire de certains pixels choisit avec un voisin
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents:
diff
changeset
|
110 import pylab |
48a21d19b8eb
Effectue une permutation aleatoire de certains pixels choisit avec un voisin
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents:
diff
changeset
|
111 for i in xrange(0,5): |
91
6696391273ab
Il y a maintenant une proba 0.2 d'effectuer des permutations. Cette nouvelle fonctionnalite demande un parametre non deterministe, ce qui fait que maintenant, les fonctions 'determined_by_complexity' ont ete abandonees. Le module se comporte comme un module normal
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents:
78
diff
changeset
|
112 _test(0.5) |
46
48a21d19b8eb
Effectue une permutation aleatoire de certains pixels choisit avec un voisin
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents:
diff
changeset
|
113 |
48a21d19b8eb
Effectue une permutation aleatoire de certains pixels choisit avec un voisin
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents:
diff
changeset
|
114 |