annotate misc.py @ 229:d7250ee86f72

Added speed test for ArraDataSet
author Frederic Bastien <bastienf@iro.umontreal.ca>
date Fri, 16 May 2008 16:40:26 -0400
parents e9a95e19e6f8
children 9e96fe8b955c
rev   line source
175
e9a95e19e6f8 Added a Print Op
Yoshua Bengio <bengioy@iro.umontreal.ca>
parents: 49
diff changeset
1
e9a95e19e6f8 Added a Print Op
Yoshua Bengio <bengioy@iro.umontreal.ca>
parents: 49
diff changeset
2 import theano
e9a95e19e6f8 Added a Print Op
Yoshua Bengio <bengioy@iro.umontreal.ca>
parents: 49
diff changeset
3
e9a95e19e6f8 Added a Print Op
Yoshua Bengio <bengioy@iro.umontreal.ca>
parents: 49
diff changeset
4 class Print(theano.Op):
e9a95e19e6f8 Added a Print Op
Yoshua Bengio <bengioy@iro.umontreal.ca>
parents: 49
diff changeset
5 def __init__(self,message=""):
e9a95e19e6f8 Added a Print Op
Yoshua Bengio <bengioy@iro.umontreal.ca>
parents: 49
diff changeset
6 self.message=message
e9a95e19e6f8 Added a Print Op
Yoshua Bengio <bengioy@iro.umontreal.ca>
parents: 49
diff changeset
7 self.view_map={0:[0]}
e9a95e19e6f8 Added a Print Op
Yoshua Bengio <bengioy@iro.umontreal.ca>
parents: 49
diff changeset
8
e9a95e19e6f8 Added a Print Op
Yoshua Bengio <bengioy@iro.umontreal.ca>
parents: 49
diff changeset
9 def make_node(self,xin):
e9a95e19e6f8 Added a Print Op
Yoshua Bengio <bengioy@iro.umontreal.ca>
parents: 49
diff changeset
10 xout = xin.type.make_result()
e9a95e19e6f8 Added a Print Op
Yoshua Bengio <bengioy@iro.umontreal.ca>
parents: 49
diff changeset
11 return theano.Apply(op = self, inputs = [xin], outputs=[xout])
e9a95e19e6f8 Added a Print Op
Yoshua Bengio <bengioy@iro.umontreal.ca>
parents: 49
diff changeset
12
e9a95e19e6f8 Added a Print Op
Yoshua Bengio <bengioy@iro.umontreal.ca>
parents: 49
diff changeset
13 def perform(self,node,inputs,output_storage):
e9a95e19e6f8 Added a Print Op
Yoshua Bengio <bengioy@iro.umontreal.ca>
parents: 49
diff changeset
14 xin, = inputs
e9a95e19e6f8 Added a Print Op
Yoshua Bengio <bengioy@iro.umontreal.ca>
parents: 49
diff changeset
15 xout, = output_storage
e9a95e19e6f8 Added a Print Op
Yoshua Bengio <bengioy@iro.umontreal.ca>
parents: 49
diff changeset
16 xout[0] = xin
e9a95e19e6f8 Added a Print Op
Yoshua Bengio <bengioy@iro.umontreal.ca>
parents: 49
diff changeset
17 print self.message,xin
e9a95e19e6f8 Added a Print Op
Yoshua Bengio <bengioy@iro.umontreal.ca>
parents: 49
diff changeset
18
e9a95e19e6f8 Added a Print Op
Yoshua Bengio <bengioy@iro.umontreal.ca>
parents: 49
diff changeset
19 def grad(self,input,output_gradients):
e9a95e19e6f8 Added a Print Op
Yoshua Bengio <bengioy@iro.umontreal.ca>
parents: 49
diff changeset
20 return output_gradients
e9a95e19e6f8 Added a Print Op
Yoshua Bengio <bengioy@iro.umontreal.ca>
parents: 49
diff changeset
21
49
718befdc8671 Miscellaneous general-purpose functions
bengioy@grenat.iro.umontreal.ca
parents:
diff changeset
22
718befdc8671 Miscellaneous general-purpose functions
bengioy@grenat.iro.umontreal.ca
parents:
diff changeset
23 def unique_elements_list_intersection(list1,list2):
718befdc8671 Miscellaneous general-purpose functions
bengioy@grenat.iro.umontreal.ca
parents:
diff changeset
24 """
718befdc8671 Miscellaneous general-purpose functions
bengioy@grenat.iro.umontreal.ca
parents:
diff changeset
25 Return the unique elements that are in both list1 and list2
718befdc8671 Miscellaneous general-purpose functions
bengioy@grenat.iro.umontreal.ca
parents:
diff changeset
26 (repeated elements in listi will not be duplicated in the result).
718befdc8671 Miscellaneous general-purpose functions
bengioy@grenat.iro.umontreal.ca
parents:
diff changeset
27 This should run in O(n1+n2) where n1=|list1|, n2=|list2|.
718befdc8671 Miscellaneous general-purpose functions
bengioy@grenat.iro.umontreal.ca
parents:
diff changeset
28 """
718befdc8671 Miscellaneous general-purpose functions
bengioy@grenat.iro.umontreal.ca
parents:
diff changeset
29 return list(set.intersection(set(list1),set(list2)))
229
d7250ee86f72 Added speed test for ArraDataSet
Frederic Bastien <bastienf@iro.umontreal.ca>
parents: 175
diff changeset
30 import time
d7250ee86f72 Added speed test for ArraDataSet
Frederic Bastien <bastienf@iro.umontreal.ca>
parents: 175
diff changeset
31 #http://www.daniweb.com/code/snippet368.html
d7250ee86f72 Added speed test for ArraDataSet
Frederic Bastien <bastienf@iro.umontreal.ca>
parents: 175
diff changeset
32 def print_timing(func):
d7250ee86f72 Added speed test for ArraDataSet
Frederic Bastien <bastienf@iro.umontreal.ca>
parents: 175
diff changeset
33 def wrapper(*arg):
d7250ee86f72 Added speed test for ArraDataSet
Frederic Bastien <bastienf@iro.umontreal.ca>
parents: 175
diff changeset
34 t1 = time.time()
d7250ee86f72 Added speed test for ArraDataSet
Frederic Bastien <bastienf@iro.umontreal.ca>
parents: 175
diff changeset
35 res = func(*arg)
d7250ee86f72 Added speed test for ArraDataSet
Frederic Bastien <bastienf@iro.umontreal.ca>
parents: 175
diff changeset
36 t2 = time.time()
d7250ee86f72 Added speed test for ArraDataSet
Frederic Bastien <bastienf@iro.umontreal.ca>
parents: 175
diff changeset
37 print '%s took %0.3f ms' % (func.func_name, (t2-t1)*1000.0)
d7250ee86f72 Added speed test for ArraDataSet
Frederic Bastien <bastienf@iro.umontreal.ca>
parents: 175
diff changeset
38 return res
d7250ee86f72 Added speed test for ArraDataSet
Frederic Bastien <bastienf@iro.umontreal.ca>
parents: 175
diff changeset
39 return wrapper