# -*- coding: utf-8 -*- # Generated by codesnippet sphinx extension on 2016-03-08 import mdp import numpy as np np.random.seed(0) import mdp import numpy import os import matplotlib matplotlib.rcParams['examples.directory'] = os.path.join(os.path.dirname(matplotlib.rcParams['datapath']), 'sample_data') import pylab from matplotlib.cbook import get_sample_data im = pylab.imread(get_sample_data("ada.png")) im = numpy.sqrt((im[:,:,:3]**2.).mean(2)) pi = numpy.pi orientations = [0., pi/4., pi/2., pi*3./4.] freq = 1./10 # frequency phi = pi/2. # phase size = (20, 20) # in pixels sgm = (5., 3.) # standard deviation of the axes nfilters = len(orientations) gabors = numpy.empty((nfilters, size[0], size[1])) for i, alpha in enumerate(orientations): gabors[i,:,:] = mdp.utils.gabor(size, alpha, phi, freq, sgm) node = mdp.nodes.Convolution2DNode(gabors, mode='valid', boundary='fill', fillvalue=0, output_2d=False) cim = node.execute(im[numpy.newaxis,:,:]) x = mdp.utils.lrep(im, 3) from timeit import Timer timer = Timer("node.execute(x)", "from __main__ import node, x") print timer.repeat(1, 1), 'sec' # Expected: ## 6.91 sec with mdp.caching.cache(cache_classes=[mdp.nodes.Convolution2DNode]): print timer.repeat(1, 1), 'sec' print timer.repeat(1, 1), 'sec' # Expected: ## 7.05 sec ## 39.6 msec