view misc.py @ 230:4d1bd2513e06

more test speed
author Frederic Bastien <bastienf@iro.umontreal.ca>
date Fri, 23 May 2008 10:21:52 -0400
parents d7250ee86f72
children 9e96fe8b955c
line wrap: on
line source


import theano

class Print(theano.Op):
    def __init__(self,message=""):
        self.message=message
        self.view_map={0:[0]}

    def make_node(self,xin):
        xout = xin.type.make_result()
        return theano.Apply(op = self, inputs = [xin], outputs=[xout])

    def perform(self,node,inputs,output_storage):
        xin, = inputs
        xout, = output_storage
        xout[0] = xin
        print self.message,xin

    def grad(self,input,output_gradients):
        return output_gradients


def unique_elements_list_intersection(list1,list2):
    """
    Return the unique elements that are in both list1 and list2
    (repeated elements in listi will not be duplicated in the result).
    This should run in O(n1+n2) where n1=|list1|, n2=|list2|.
    """
    return list(set.intersection(set(list1),set(list2)))
import time
#http://www.daniweb.com/code/snippet368.html
def print_timing(func):
    def wrapper(*arg):
        t1 = time.time()
        res = func(*arg)
        t2 = time.time()
        print '%s took %0.3f ms' % (func.func_name, (t2-t1)*1000.0)
        return res
    return wrapper