comparison transformations/Occlusion.py @ 148:72a2d431d047

Rajout d'un seed random et d'une fonction get_seed
author SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
date Wed, 24 Feb 2010 13:14:02 -0500
parents a507adba0ce3
children 7640cb31cf1f
comparison
equal deleted inserted replaced
147:51b531226557 148:72a2d431d047
22 22
23 from pylearn.io import filetensor as ft 23 from pylearn.io import filetensor as ft
24 24
25 class Occlusion(): 25 class Occlusion():
26 26
27 def __init__(self): 27 def __init__(self,seed=9854):
28 #Ces 4 variables representent la taille du "crop" sur l'image2 28 #Ces 4 variables representent la taille du "crop" sur l'image2
29 #Ce "crop" est pris a partie de image1[15,15], le milieu de l'image1 29 #Ce "crop" est pris a partie de image1[15,15], le milieu de l'image1
30 self.haut=2 30 self.haut=2
31 self.bas=2 31 self.bas=2
32 self.gauche=2 32 self.gauche=2
45 self.opacite=0.5 #C'est completement arbitraire. Possible de le changer si voulu 45 self.opacite=0.5 #C'est completement arbitraire. Possible de le changer si voulu
46 46
47 #Sert a dire si on fait quelque chose. 0=faire rien, 1 on fait quelque chose 47 #Sert a dire si on fait quelque chose. 0=faire rien, 1 on fait quelque chose
48 self.appliquer=1 48 self.appliquer=1
49 49
50 self.seed=seed
51 numpy.random.seed(self.seed)
52
50 f3 = open('/data/lisa/data/ift6266h10/echantillon_occlusion.ft') #Doit etre sur le reseau DIRO. 53 f3 = open('/data/lisa/data/ift6266h10/echantillon_occlusion.ft') #Doit etre sur le reseau DIRO.
51 #f3 = open('/home/sylvain/Dropbox/Msc/IFT6266/donnees/echantillon_occlusion.ft') 54 #f3 = open('/home/sylvain/Dropbox/Msc/IFT6266/donnees/echantillon_occlusion.ft')
52 #Il faut arranger le path sinon 55 #Il faut arranger le path sinon
53 w=ft.read(f3) 56 w=ft.read(f3)
54 f3.close() 57 f3.close()
57 self.d=(w.astype('float'))/255 60 self.d=(w.astype('float'))/255
58 61
59 62
60 def get_settings_names(self): 63 def get_settings_names(self):
61 return ['haut','bas','gauche','droite','x_arrivee','y_arrivee','endroit','rajout','appliquer'] 64 return ['haut','bas','gauche','droite','x_arrivee','y_arrivee','endroit','rajout','appliquer']
65
66 def get_seed(self):
67 return self.seed
62 68
63 def regenerate_parameters(self, complexity): 69 def regenerate_parameters(self, complexity):
64 self.haut=min(15,int(numpy.abs(numpy.random.normal(int(8*complexity),2)))) 70 self.haut=min(15,int(numpy.abs(numpy.random.normal(int(8*complexity),2))))
65 self.bas=min(15,int(numpy.abs(numpy.random.normal(int(8*complexity),2)))) 71 self.bas=min(15,int(numpy.abs(numpy.random.normal(int(8*complexity),2))))
66 self.gauche=min(15,int(numpy.abs(numpy.random.normal(int(8*complexity),2)))) 72 self.gauche=min(15,int(numpy.abs(numpy.random.normal(int(8*complexity),2))))
142 print transfo.get_settings_names() 148 print transfo.get_settings_names()
143 print transfo.regenerate_parameters(complexite) 149 print transfo.regenerate_parameters(complexite)
144 150
145 img_trans=transfo.transform_image(img.reshape((32,32))) 151 img_trans=transfo.transform_image(img.reshape((32,32)))
146 152
153 print transfo.get_seed()
147 pylab.imshow(img_trans.reshape((32,32))) 154 pylab.imshow(img_trans.reshape((32,32)))
148 pylab.show() 155 pylab.show()
149 156
150 157
151 if __name__ == '__main__': 158 if __name__ == '__main__':