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